Sunday, February 06, 2011

Richard M Stallman: Code Guru Mahatma

The Mahatma was always part of life and the CD below, produced by Dr. Natesan of Krea was of great interest when it was released in the 1990s:

Walnut Creek CDROM published it. I first came to know of 'Linux' from the title card of this CD:

The CD on the Mahatma provided the first step in connecting to another rare modern Mahatma, Richard M Stallman, better known as 'RMS'. I would know about RMS and his work much later, but this was the start. The 'Gandhi' CDROM title card advertised 'Linux Slackware 96' as "Internet's favourite. Full PC UNIX", that left me curious about this UNIX for the PC.

The Internet was not ubiquitous a decade ago and CDROM was the main source for obtaining software. The first book I could lay my hands on the subject was Sam's "Learn Linux in 24 Hours". A free CD came with it:
The CD simply did not work. The book was interesting though. I very much wanted to see what the running 'Linux' OS screen looked like. The first opportunity to do that came at the Bangalore IT.COM fair, in 2000:

There was this large pavilion full of software systems, people, distros, shops and events - all busy at the same time. There was even a cluster running at a corner from a dozen mini-frames. Some stressed they were free and open. At the GT enterprises stall I got myself a couple of distros to try at home:

The pavilion filled my hands with pamphlets like this:

I tried installing Mandrake Linux and the screen came alive with the installation instructions. I never quite finished installing as there was some problem at the final step - I think I did not have a supported graphics card. I decided to shop for more distros, until I had a working system. After some time I visited Bangalore again, and had these options:

I decided I would give the SuSE 7.0 Professional edition a try. I carefully got a graphics card that was supported this time. YaST did a fine job installing the operating system, x server, applications and all - in about three hours time! I finally had a free operating system!

With free software, so many options and tools were available, and I spent most of my free time trying them out. Finally, after a month or so, I settled for the Apache Web Server with PHP for web scripting and PostgreSQL for data storage. The StarOffice package fulfilled all my word processing needs. There was a lot of excitement with graphics tools like GIMP and the load of games that came. It was initially tedious to work on the console most of the time but after getting a hang of it, it was clearly the way to do things. Man[ual] pages of many commands declared:
This is free software: you are free  to  change  and  redistribute  it.
There is NO WARRANTY, to the extent permitted by law.

Author names like Paul Rubin, David MacKenzie, Richard Stallman, and Jim Meyaering came up on the console window. The SuSE 7.0 Handbook included a copy of the GNU General Public License in Appendix F:

The SuSE 7.0 box included this Oracle phamplet:

Oracle has done a lot for the free software movement in the past decade showing deep interest in Java, MySQL, OpenOffice etc. I also tried other distros that came my way. Charles Fisher wrote "Red Hat Linux 6.0 Administration Tools" and the book came with 2 CDs:
The book taught many installation procedures in a straight forward way.
Meanwhile, I had registered the 'Gandhi' CD with Walnut Creek CDROM, and they sent me their catalog:

I tried FreeBSD too, but the availability of applications on BSD was restricted by your ability to install and configure it correctly. I gave up even trying it after a while.

The Linux For You magazine was launched sometime in 2002 or so, and I came to know of ilugc from its lug listing and subscribed to the ilugc mailing list. I mostly lurked there, and sometime asked questions - and often got responses that helped a lot. I came to know of the fsf-friends mailing list through ilugc and joined there. RMS used to post occasionally to the fsf-friends mailing list, and soon I got involved in fsf-india activities. There was always one freedom issue or the other that was interesting. Communicating with RMS over email is one of the intellectual pleasures life had to offer, and to say the least, it was very useful and productive. I wrote to him about a JavaScript code I wrote, to calculate fair rent in accordance with the local rules here, as an example of the kind of coding I was doing to port law to computers. He was kind in replying as follows:

If this includes implementation of human-style common-sense
reasoning, you may have tackled a problem that the Artificial
Intelligence field has been struggling with for 35 years.

AI was the last on my mind then and it encouraged me to study about the struggle there. Soon, it took me to Lisp, AI by Winston, and the problem remained on my back-burner. The greatest advantage I derived from communicating with RMS was this innocuous line on AI that got me hooked to programming like never before. Incidentally, ancient Indian philosophical works started to appear very modern and relevant from the AI angle.

RMS had planned to come down to Chennai in Feb, 2005. It was my pleasure to plan some of the events for him here - mainly, the talk on 'Software Patents' here in Chennai. Bharati, AB, myself and other friends received RMS at the Chennai Airport. The flight was delayed by half an hour, and that gave Bharati and myself, time to go up to Pammal to get a couple of garlands for the code guru. We were delighted to meet him in person - he enjoyed the fragrance of the champangi garland! After the perfunctory introductions, RMS quickly got to opening his laptop and started working.

The first thing I noticed was his mastery over the keyboard. His hands just played over the laptop - I have never seen anyone else so proficient on the keyboard. The control, alt, function and every single key is naturally used so well in emacs. No time is wasted while coding. RMS is known for being the original author of the great 2Gs in the software spectrum: GCC and GPL. The road from Chennai to Vellore was under construction, and the journey was naturally tedious. It was not easy to stop by the road side for a tea break. RMS took all these little discomforts in his stride and stayed focused on work at hand punctuated by mail transfers. He spoke on software freedom at VIT and did his 'St. Ignucious-I bless your computer, my child' bit at the end of the the speech. He also played his recorder (pocket sized flute like pipe) both at VIT during dinner and at MIT after his short talk. RMS spoke on the dangers of 'Software Patents' at the IIT-M. The auditoriums were packed with students everywhere he went! A few pics from the events at VIT, IIT and MIT:

At the OLT, IIT-M:

At MIT, Chrompet:

He would have liked to listen to a carnatic recital that Chennai is so famous for - I hope that is part of the program the next time he visits Chennai. As he left, he gave me a firm hand shake and wished "Happy hacking".

In the Indian context, it is useful to distinguish between free and non-free systems:

Non-free Software Adharma:
● Non-free software system is
– unethical
– anti-social
– simply wrong
● Works by keeping users divided
● A co-operating community is forbidden
● Users are not allowed to change or share the software they use

Free Software Dharma
● Freedom to use the program for any purpose
● Freedom to study and modify its source code
● Freedom to redistribute copies to others
● Freedom to distribute modified versions to others

"Dharma" has no exact equivalent word in English (say, "Aram" அறம் in Tamil). It encompasses virtue , morality, good works according to right or rule, rightly, justly, according to the nature of anything. Adharma is unrighteousness, injustice, wickedness. Mahatma Gandhi said, "When adharma spreads, some men undertake tapascharya (penance) and through their tapascharya, generate dharma in the world". Free Software is a response to the non-free software adharma, and it very naturally explains work of the free software community to others. The free software movement has been led by the code guru very successfully and the burning desire for freedom inheres code development.

Over the past decade, free software systems have grown phenomenally from strength to strength. After the new version of the GPL came in 2007, I lost interest in fsf activities. The future programs are more likely to lie centered around stack based ones like forth in the public domain. Postscript and its derivatives like PDF are living proof for that. Given the massive parallel GPUs and CPUs rapidly moving towards exascale machines capable of 1018 calculations per second, it is very likely that simple stack based applications get priority because they are small, fast, secure, open and free. Maybe they would be hard too but other programs and tools should make the task of maintaining them easy.

The road to freedom is a hard one. I had the opportunity to travel along with RMS - the code guru mahatma - on the road to freedom for a short while, and I hope it would lead to solving the AI problem and end the long struggle.