Auto-compile LESS file to CSS in emacs

LESS CSS is a great way of writing CSS code, thanks to its set of extended features that are not at all possible with CSS. Nested rules, variables, color functions, etc make it very handy. As the final output seen by the browser is plain CSS, there is no need for any third-party library or whatever.

Being a emacs user for a while, I’ve been looking for a way to compile LESS files to CSS, as and when they are saved. It would be even better if I could bind it to a keyboard shortcut, say F9. (This is not something big, just that I didn’t do it so far.)

My directory structure is like this:
LESS files in /some/path/less/
CSS files in /some/path/css/

So compiling a LESS file, say /some/path/less/style.less should output to /some/path/css/style.css

Here is the code that you have to add to .emacs

;; Function to compile current buffer (if it's a LESS file) to CSS
(defun compile-less-css ()
  "Compile LESS to CSS"
  (interactive)
  (if (string-match "\.less$" (buffer-file-name))
    (async-shell-command (concat "lessc -x " (buffer-file-name) " "
      (file-name-directory (directory-file-name (file-name-directory buffer-file-name)))
      "css/" (file-name-sans-extension (file-name-nondirectory buffer-file-name)) ".css") nil nil))
  (delete-other-windows))

;; HotKey  to compile LESS to CSS
(global-set-key '[f9] 'compile-less-css)

;; To compile whenever the file is saved, uncomment the following line:
;(add-hook 'after-save-hook 'compile-less-css)

After saving the file, load the file so that the changes take effect. To load the file,
M-xload-file.

Enter .emacs in the prompt. Done! Now open a LESS file in emacs and press F9.

Happy hacking :)

Transcript of RMS’ talk at MIT, Chrompet on March 13 2002

Well, this post is related to quite an old event (happened in 2002). It was always exciting to me that RMS had visited my college (Madras Institute of Technology) twice. And I have been curious to read/see his talks here, but unfortunately I could not find any article or transcript until some noble soul in ILUGC asked for it. It was surprising to me to find the transcript at http://pastebin.com/W1rqU8mm. Thanks to the other noble soul who preserved it and shared in pastebin. I’m just sharing a slightly modified version (mostly formatting and punctuation corrections) of it. Here it goes…

RMS at MIT, Chrompet

RMS at MIT, Chrompet

After the welcome address (which was unfortunately not recorded on the tape) the Chief Guest, Mr. Richard M Stallman took his hands off his laptop and came forward to deliver his speech. Here is the transcript:

So I guess I have to stand exactly here in order for it to work right. please raise your hands if you cannot hear me. Oh oh, nobody is laughing I guess that means the sound system is not working. [Laughter] Now what is *this* microphone for? oic. So I can use *this* instead. There’s only one. This is not *stereo*. Well, ok. We’ll see what happens.

If I hunt around enough I should be able to play music with this. [Laughter] well, The subject of this talk is the free software movement. but really this subject is an ethical, political question. The question is “what rules should society have for using software?”.

But now well it sounds like its still working. Alright. I’m hoping to find a place where we won’t have the feedback going on. I’m going to get feedback from you at the end of the speech but I don’t want feedback from the speakers. I don’t think their opinion is very thoughtful and I don’t think they have much useful to add to what I’m saying. [Laughter]

So the question is “what rules should the society have for using software?”. Now most of the time when people consider this question they work for software companies and they address it from a self serving point of view. They ask “what rules can we impose on every one else to make them pay or sell their money?”. Now I’m sure you are familiar with the answers that they come up with.

Now, I had the good fortune in the 1970s to be part of a community of programmers who shared software. And because of that I was led to address that question from a different direction to ask “What rules make for a good society for the people who use software?” and so I reached completely different answers. Let me tell you a little bit about what life in that community was like. The community included programmers at some of the best universities. Even programmers of computer companies sometimes participated. And in this community if you wrote a program, you shared it. That was our way of life. Nobody forced this. Nobody demanded this. But it was our way of life and so everybody did it.

The lab where I worked, the AI lab at the other MIT, was perhaps the… in a way the deepest part of this community because there, all the software we used was the community software. It was all free software. we had an entire Operating System. The Incompatible Time Sharing system or ITS for short was developed by the community and mostly by us and therefore all the software that we used, we could and would share with anybody we wanted. So if you walked past another hackers console and you saw something interesting you’d say “hey what is that?” and he’d say “oh this is the new foobar program that we just got from Stanford and its in the foobar directory.” so you’d look in that directory and you’d find the executable you could run with also the source code. Which you could study to learn how they solved those problems. And if you ran the program you might…[interrupts]

To the MIC-TESTER: can you do anything about this feedback. There’s so much. There’s got to be a way to solve this problem. Maybe if you turn of those microphones? He should be able to turn them off… ok we’ll see if this helps.

..so in running the program you might encounter bugs or you might have ideas for new features. So you could go to the source code and fix the bugs and add more features. You could even cut out a piece of that program and put it into some other program that you were writing. We used to call this “cannibalising” the old program which was a joke because it doesn’t destroy the old program when you do this. So you could use the program not just by running it but in all the various ways it could be useful. The software we developed was available to everyone. It was part of human knowledge and because of that I could feel that I was on humanity’s team. I was not working against other people, trying to beat them or stop them. I was working for the good of everyone. And that enabled me to feel good about my work.

And so.. over the years the system grew the way a city grows. you know, you see some lines of code and say “oh by their style I can tell these were written in the 1960s”. Well, in other areas you see whole neighbourhoods that have been built recently and a program would be passed from one person to another to another they would keep on improving it over the years.

But then we got a taste of what life was like for most computer users. the people who did not belong to a community like ours. That happens when XEROX gave MIT a laser printer. Now this was a very handsome gift. it was the first time anybody outside XEROX had a laser printer. It was actually a high speed copier that had been turned into a laser printer by adding a laser attachment. Now this was a very fast printer and it printed a page a second and it had high resolution and straight lines came out nice and straight. But it had a flaw. It frequently got a paper jam. Now then if it was a copier maybe that was okay cause there would have been somebody to fix it when it jammed. So it wouldn’t have been jammed for long. But as a printer it was off by itself and often no body would pass by and fix it for a long time. So it would stay jammed for maybe an hour. It was a real problem. Now when we discovered, when we recognized that this problem existed we knew a solution. Because our previous printer which was slow and low resolution and tended to make straight lines come out crooked also got paper jams. And since we couldn’t improve the printer itself, we being programmers not printer engineers, we added features to the software to compensate for the problems. For instance there was a feature that every time a file finished printing the system would display a message on that user’s screen saying “your file foo has been printed”. So you had to wait because the printer was slow but you didn’t have to wait extra just because you didn’t know that your job was finished. And there was the second feature that I recall adding which was: anytime the printer got in trouble the system would search the print queue and make a list of people waiting for printing and it would display a message to each one of them saying “The printer is in trouble. Go fix it.” now if you got that message you were not going to ignore it because you would know that only a few people are going to get that message and you didn’t to want to take the risk that the printer would stay jammed. So you would go straight to the printer. The printer is still jammed. But a minute later 2 or 3 people would arrive. One of them at least would know how to fix the problem and would teach the others. So essentially the system became self-correcting. We treated the user as a part of the system. And we added end-to-end feedback and we obtained reliable operation for the entire system even though the printer components were still unreliable. After all that’s what feedback is for.

So we solved the problem and when we saw that the new printer had a similar problem we thought of using a similar solution. But there we ran into a stone wall. Because we were able to add these features to the old printer because the old printer was controlled by a free program. We had the source code. We could make any changes at all limited by our skill as programmers. But the new printer was controlled by a proprietary Xerox program. We couldn’t add any features. We were stuck completely. we were prisoners of our software. So we just had to suffer with it. So you’d type the command to print a file and you’d go back to work cause you know its going to take a long time. A while later you’d notice the time oh its been half-an-hour… well, I don’t desperately need it yet and its probably not printed yet so I’d go back to work. A while later you’d notice the time. Oh its been a whole hour. Maybe its printed now. so you walk upstairs. you go to the printer and see its been jammed the whole time. So at that point you fix the jam and you go back to work. and a while later you’d notice the time oh its been half-an-hour and now I really need the print-out. I’d better go and see. So you go upstairs to the printer and see it printed 200 pages of other people’s stuff which was about 3 minutes of printing for this fast printer and then it jammed again. And at that point you’d say “I’m going to stand here and fix it every time it jams and so I’d get my output”. Constant frustration.

But what made it even more boring was to realize that we could have fixed the problem except that XEROX was not letting us fix the problem because they wouldn’t let us have the source code. Then I heard that somebody at Carnegie Mellon had a copy of that source code. Eventually I was visiting Carnegie Mellon for some other reason. So I went to his office and said “Hi, I’m from MIT. Could I have a copy of the printer’s source code”. And he said “No. I promised not to give you a copy”. [Laughter]. I was so stunned as well as angry that I couldn’t think of a way to express it and do justice to my anger. All I could think of was to walk out of his office without another word.

But I thought of that afterwards. you see… his refusal to help us. essentially his denial of co-operation with his colleagues was very bad for us at the AI lab at the other MIT. Because we never got that source code, we were never able to solve this problem and the printer just was frustrating to use for several more years until we replaced it.

But it was very good for me in a paradoxical way because it taught me an important lesson. A lesson which is important because most programmers fail to learn it. you see.. he had promised to refuse to co-operate with us, his colleagues at MIT but he didn’t just refuse to co-operate with us. Chances are he refused to co-operate with you too. And chances are he did the same thing to you as well. And I’d expect he also refused to cooperate with you. In fact, he prolly refused to co-operate with most of you here today. The exceptions being some of you who weren’t born yet. Because that was in 1980 or so. Because he had promised to refuse to co-operate with just about everybody alive on earth at that time, he had signed a non-disclosure agreement. Now this was my first direct encounter with a non-disclosure agreement. I was the victim. I and my Whole lab were the victims. And the lesson I learnt was that non-disclosure agreements have victims. They are not innocent. They are not harmless. They are hurting somebody.

Now I was lucky to learn this lesson. Most programmers first encounter a non-disclosure agreement when they are invited to sign one. And there’s always some kind of goodies, some temptation … something they are going to get when they sign. So they make up excuses to ignore the ethical issue of what they are doing. They say “He’ll never get a copy anyway so who shouldn’t I join a conspiracy to deprive him”. They say “this is the way its always done. Who am I to question it?” they say “If I don’t sign this. Somebody else will”. Various excuses to gag their consciences. But when somebody invited me to sign a non-disclosure agreement my conscience was already sensitized. Because it couldn’t forget how angry I was when somebody had refused to share with _me_ the source code the source code that my lab needed. And I couldn’t turn around and do the same thing to somebody else who didn’t deserve it anymore than we did. So I said. Thank you very much for offering me this nice piece of software. But I cannot accept it in good conscience on the conditions that you have set. So I’m going to do without it. No thank you. And so I have never knowingly signed a non-disclosure agreement for generally useful technical information such as software.

Now there are other kinds of information which raise different ethical issues. For instance there is personal information. A totally different subject. you know if you wanted to talk with me about what was happening between you and your girlfriend and you ask me would I please not tell it to anybody That I could agree to. Because that is not generally useful technical information. At least it probably isn’t. Now I could imagine that you might reveal to me some wonderful new sex technique [Laughter] and then I might feel a moral duty to pass it on to the rest of humanity so that somebody could make use of it. But if you just wanted to talk with me about the usual soap opera stuff.. you know… who hurt, who’s feeling how and how the the other one responded and who’s angry and things like that those details that your life are those are not something that other people need to know to in order to see how to live their lives better. So its okay for me to keep those secret for you.

But when it comes to generally useful technical information. The stuff of science and engineering. The mission of these fields is to develop that information for humanity. If we conceal it we are betraying that information of our field. This after a few years of thought I came to the conclusion that this was wrong and that I decided that I would not do it. But during the same period of time a serious of calamities fell on my community and ultimately wiped it out. My community was destroyed. perhaps the final blow was when digital discontinued the PDP-10 computer. Because the entire time sharing system was written in assembler language for the PDP-10. So when the PDP-10 was discontinued our 15 years of work turned into dust and blew away. Now that’s a pretty bad blow in itself but the consequences were even worse. Because the only operating systems of any kind from modern computers were proprietary. To get a copy you had to sign a non-disclosure agreement. so the only way you could get a modern computer and use it was to betray every one else in the field. To do exactly what I had concluded people shouldn’t do. So that put me in a moral dilemma. I could not go on working on my field the way I had been doing it before because that path had been blocked off. It was no longer being available. It depended on being a part of a community that had its own body of software that it could share.

So what was I going to do? the most obvious option was to accept that the world had changed. To adapt myself to it. To start signing non-disclosure agreement and start using these non-free operating systems. And I’m sure MIT would have had me developing non-free software as well. I thought about that and I realized in that way I could have fun programming and I could make money but at the end and I had to look back at my career and say “I’ve spent my life building life to divide people”. And I would have been ashamed of everything I had achieved. So I looked for another option. And it was easy to find one. I could leave the software field and do something else. To many programmers that seems to be unthinkable. They say “The people who hire programmers demand this, this and this. If I don’t do it I’ll starve.” That’s literally the word they use. “starve”. Well, I had no other special skills. But I’m sure I could have become a waiter. Not at a fancy restaurant but I could have been a waiter somewhere. There are two things to know about being a waiter. One is as a waiter you are not doing anything wrong. There’s nothing evil about being a waiter. Well at most restaurants. [Laughter] and the second thing to know is as a waiter you are not going to starve. But I realized that for me being a waiter would be no fun. And it would be wasting my skills as an operating system developer. It avoid misusing the skills. Developing a non-free software would be misusing my skills. Its better to waste them than to misuse them. But still its not the best thing. So I decided to look around for some other option. What could an Operating System developer do that would be ethical? that would make the world a better place? And I realized that an Operating System developer was what we exactly needed.

The moral dilemma existed for me and any other computer user because all the other existing operating systems were proprietary. If an Operating System developer were to write another Operating System, this is your free to share. This would give everybody a way out of the moral dilemma. I concluded that I had been elected by circumstances to do this job. The job had to be done. I knew that. Nobody else was paying attention. nobody was going to do the job if I did not. And I had the skills necessary to do the job. So I realized I had to do it. I decided I would develop a free Operating System or die trying. Presumably of old age. So this led to a bunch of technical design decisions. What kind of system should it be? well I had seen one entire Operating System turn into dust and blow away because it was written for a particular kind of computer that got discontinued. I didn’t know what kind of computers would be popular in 5 years or 10 years. I knew it would take years to get this job done. And I didn’t want to take the risk that the same thing would happen again. Clearly the system had to be portable. Well, I knew of portable Operating System that was a success and that was UNIX. So I decided to follow the design of UNIX. That way there would be a good chance. I could write a system that could work and be portable.

And further more I decided to make the system upward compatible with Unix. Why? because users don’t like incompatible changes. I knew that if I took all the best ideas seen in various system and added my own favourite ideas I could have developed my dream operating system. But that would have been incompatible with other systems. I knew what users would say. They would have said “well this is very nice but it would be too much work to switch over and we can’t afford. So we are not going to use your system.” now at that point I could have made an excuse and I could have said “Well I offered them freedom and they didn’t take it so its their fault”. That would have been sufficient as an excuse. But I wanted more than an excuse. I wanted to start a community where people would actually come and enjoy the benefits of living in liberty and having a community. So to do that I had to make a system that people would decide to use. Compatibility with a popular system was a good way to make it easy for people to switch to this system once it was done.

Now UNIX consists of many components which communicate through documented interfaces or more or less document. So to be compatible with UNIX you had to replace each component one by one. Which means that the initial design decisions were all made. Except for one: What range of target machines would we aim for?. Now UNIX was designed to run on 16 bit machines. But that the small address space of those machines made it extra hard work to get all the programs to run in that small address space. Well I realised this was going to be a big job and we have to make it try to make it easier. One way to make it easier was not to support 16 bit machines. I figured that by the time this is done 32 bit machines would be the norm and so it would be okay if we didn’t support 16 bit machines. And indeed that’s what ultimately happened. By the time we had a GNU system that could run everybody was getting 32 bit machines.

So the design decisions were made so all that we needed was a name. well, we hackers, generally look for funny or mischievous names because think of people being amused by the name is half the fun of writing the program. So we also had a hacker tradition when you are writing a program that’s similar to some existing program which is something we often had to do back before the days of portable programming. you know there was an existing program for some other computer system and you wanted something like it you had to write another one. So when you were doing that, writing a program similar to an existing one, you could give it a name that was a “recursive acronym”. Which said “This program is not that one”. So there were many TECO text editors. And they were generally called something or the other TECO. But one hacker called his program TINT for TINT Is Not TECO. The first recursive acronym. Well, we thought that was so much fun, we started making more. In 1975 I developed the first EMACS text editor. The programmable, extensible display editor. And there were many imitations of EMACS and some were called something or the other EMACS. But one was called FINE. For FINE Is Not EMACS. And there was SINE for SINE Is Not EMACS. And EINE for EINE Is Not EMACS. And MINCE for Mince Is Not Complete Emacs. And then EINE was almost completely rewritten by not quite and the new version was called SWEI for Swei Was EINE Initially. [Laughter].

So I decided to look for a recursive for ‘Something Is Not Unix’, because I didn’t have any cleverer idea. So I tried the obvious four letter approach and I discovered that none of them was a word. They didn’t seem funny. So I tried a contraction so I could make a three letter acronym. I started substituting letters. ANU, BNU, CNU, DNU, ENU, FNU, GNU!. Well GNU is the funniest word in the English language… so that had to be it. Now why is the word GNU used for so many jokes? The Reason is according to the dictionary the ‘G’ is silent. So its sounds like ‘New’. So in fact when people were asking the question “What is GNU?” long before there was a GNU system. But now it has a new answer when someone asks you “What is GNU?” you can answer ‘GNU’s Not Unix’. And look at this you see it sounds like you are being obnoxious telling the person what it is not instead of what it is. But in fact you are giving the one and only correct answer [Laughter] . Anyway when it’s the name of our Operating System please pronounce a hard ‘G’ pronounce it ‘gah-nu’. If you talk operating the ‘new’ operating system you would get people very confused. You see we’ve working on it for 18 years now so its not new anymore! [Laughter] but its still is and always will be ‘Gah-NU’ no matter how many call it Linux by mistake.

So we had a name. We could start work. In January 1984 I quit my job at the other MIT. And started working on pieces of GNU. Now I had to quit my job because if I’d kept work at MIT, the MIT administration could have said they owned everything I wrote and I would have had to beg and plead with them about precisely how to release the software. I wouldn’t want that to happen. I didn’t want to take any risk that my software would not be free. So I took them out of the equation by quitting my job. And I’ve never had a job since then. But the head of the AI lab was nice enough to let me keep using the facilities.

So I began using the one and only Unix machine at the AI lab to start developing GNU. Now at the time I thought we would develop all of these pieces and only then would people start to use it. That’s not how it happened. In September 1984, I started working on GNU Emacs. Which was my second implementation of the programmable text editor. By early 85 it working well enough that I could use it for all my editing and that was very convenient you see I had no intentions of learning to use ‘vi’. So until that point I did my editing on other computers and transferred the files through the network to the UNIX machines to test them. Once GNU Emacs was running I could actually do my editing on the Unix machine. and so in fact had been other people. Other people who had been emacs users wanted to have an emacs to run on their unix machines started asking me for copies. So I had to work out the full details of how to do distribution.

Well, Of Course I put a copy in the FTP server directory and that way people on the net could get copies but in 1985 most programmers were not on the Internet. So they were asking me how could they get copies. I could have said “I want to spend my time writing more pieces of GNU. Not writing Mag Tapes. So please find a friend who is on the Internet who will download it and put it on tape for you.” And they would have found somebody sooner or later. Every programmer knows every other programmers. But I had no job. And I was looking for some way I could make money through my work on Free software. So I announced “Send me a 150 Dollars. And I’ll mail you a copy of GNU Emacs”. And the orders began dribbling in. By the middle of the year they were trickling in. I was beginning to get 8 to 10 orders a month. Which if necessary I could have lived on. So I had a free software business that was successful enough for me.

Now part of the reason I could have lived on that is that I have always made a practice of living cheaply. Most Americans if they start making ‘this’ much money they immediately look for how they can spend ‘this’ much money. [Laughter] so they start buying houses and cars and boats and airplanes and rare stamps and art work and adventure travel and… children… [Laughter] all sorts of expensive luxury and of course once they get them they don’t think they can live without them anymore. so the result is they become puppets of money. Whoever has the money they have to obey. They’ve lost the freedom in their lives. But if you resist getting accustomed to these expensive habits then you can decide what you want to do with your life. you can do what you think is important. you can make a contribution to the world. Instead of just struggling all the time for money.

But people sometimes used to ask me before I started forestalling them: “What do you mean its free software if it costs 150 dollars”. Well, the English word free has multiple meanings. One meaning refers to price and another meaning refers to “freedom”. When I speak of Free Software I’m referring to freedom not price. So think of free speech, not free beer. [Laughter] . When you start talking about free software to people it doesn’t hurt the first time to explain that I mean ‘free as in freedom’. to help prevent any confusion. So some people got their copies of GNU Emacs and they didn’t pay me because there was nothing on the FTP server to collect any money from anyone anybody could download it. Some got their copies on a tape from me and they paid me. And some got their copies indirectly from somebody else who had a copy and maybe they paid that somebody else I don’t know but they didn’t pay me. Whether they paid the somebody else that was between them and it was not in my business. so GNU Emacs was gratis for some users and paid for for some users. But for all of the users it was free as in freedom.

Because all of them had certain crucial freedoms which makes the definition of free software. So let me now in fact get to the hard issue and give you the detailed definition of Free software. Because its after all its easy to say I believe in freedom but you are not addressing the hard issue that way. The hard issue is which are the freedoms that are important – the freedoms that we should safeguard and which are the secondary freedoms which have to give way when they conflict with the primary ones. Because different ideas of freedom _can_ conflict. you know your freedom to swing your fist ends ends where my nose begins. because that’s the matter of which freedoms are primary and which are secondary. So the definition of free software represents a conclusion about which freedoms are primary. Let me give it to you now. A program is free software for you a particular user if you have all of the following freedoms.

  • Freedom #0 is the freedom to run the program for any purpose in any way.
  • Freedom #1 is the freedom to help yourself by studying the code to see what it does and then changing to suit your needs as you wish.
  • Freedom #2 is the freedom to help your neighbour by distributing copies to others.
  • Freedom #3 is the freedom to help build your community by publishing improved versions so others can get the benefits of your improvements.

If you have all of these freedoms the program is free software for you. Now freedom#0 doesn’t require much comment. Its pretty clear that if you are not even allowed to run the program anyway you like that’s a rather restricted program. Even most most software will let you run it anyway you like, even though its restricted in other ways. And also the way the law is set up, if you have freedoms 1, 2 and 3 then freedom 0 follows as a consequence. So the freedoms that really distinguish Free Software from typical software are Freedoms 1, 2 and 3. So I’ll go into more depth explaining why those freedoms are more important and what they need:

Freedom#1 is the freedom to help yourself by studying the code to see what the program really does and then changing it if you like to suit your needs. To make this freedom feasible you have to be able to get the source code. yes its true its possible to study the binary by disassembling but that’s terribly hard and people only do it as a last resort of desperation. So For this freedom to be really be meaningful you must have access to the source code. So access to the source code is a free condition of Free Software. Now who can make use of this freedom?

Well first of all, what changes do I need? well you could fix bugs, you could add new features. you could translate all the error messages and output into Tamil. you could port it to a different computer system. Any change you want to make, you should be free to make. Who can take advantage of this freedom. Clearly any skilled programmer can make use of this freedom. But not only they. Any business that uses software can directly take advantage of this freedom. Now maybe there are no programmers in the company because what they do is make clothing. That doesn’t matter if they want the program changed they can go to a programming company and say “How much will you charge for these changes and when can I have it done?” and if they don’t like the answer they get over there they can go ask another company and say “When can you have it done?”. Because one of the consequences of Free Software is that there is a free market for all kinds of supports and services. And the result is you can expect better support and service for free software. For a proprietary program, support is a monopoly. Because only the company that owns the program in general can give you any support. Except for the most superficial kinds. So the result they don’t have to care and they know it. They’ll tell you “Pay us and we’ll let you report a bug”. and if you do that they’ll tell you “in six months there will be an upgrade. Buy the upgrade and you’ll see if we’ve fixed this bug and you’ll see what new bugs we gave you” [Laughter] .

So the support for proprietary software is typically lousy and its interesting to note that even if there’s a choice of several different proprietary programs to do the job, once you’ve chosen a program the support for that program is always a monopoly. So you are choosing between several monopolies. Well, with Free Software you’ll get a free market for support. Of Course, in general you have to pay for it. Free software doesn’t mean zero price. That is not the issue at all. Were not to eliminate paying for things and we think its fine when programmers get paid to provide support for programs. In fact that’s the kind of free software business that I did for the second half of 80s. But the important thing is that every body has got the freedom the use the program, to get support from wherever they like, to offer support when they wish. People can also benefit from this freedom if they value security and privacy on their computer systems. Because when you have the freedom to check what the program does you can see if it has a Trojan Horse. you can see if it has a surveillance feature, now if you don’t have the time to check every program you use, but there’s a community of users and people are checking various parts at various times. The result is if there’s a malicious feature, it might get caught. And if there are accidental bugs because most programmers wont put in malicious features but we all make mistakes. So bugs are always to be expected. If there’s a bug, people can catch that too and fix it.so the result is that you can trust the software better because it is not blind trust.

With a proprietary program all you can do is put blind faith in the developer and often they don’t deserve it. Microsoft put a surveillance in some version of Windows. It would report what was on your hard disk. and I think people got very angry and they took it out. And I heard there are other proprietary programs that are popular which has surveillance features in them too. There’s also suspicion that there’s a back door in windows because there are symbols called NSAKEY1 and NSAKEY2. People suspect that, maybe, these have to do with a backdoor that was provided for the NSA. No one knows and there’s no way to find out either. And finally any intelligent person can take advantage of this freedom.

Now most people are not going to learn to be skilled programmers but anybody can learn a little programming which is enough to make simple changes. And that’s useful by itself. And if you are the kind of person whose strength is getting along with people you are not a technical person well then you probably have a lot of friends. And some of those friends are programmers so when you want a change made in your program you can convince one of your friends to do it. So everybody can take advantage of the freedom to change programs. Now if you don’t have this freedom that causes practical material harm to the society. Because people are stuck using software that doesn’t do what they want and maybe even snoops on them. And they cant fix it. They are prisoners of their software. But it also causes Psycho-Social harm. That affects people’s morale, their enthusiasm for their work. you see, if you have to use a program that’s painful to use its not good. And you are not allowed to improve it, its going to be frustrating. Its going to be frustrating over and over. Well people who’ve experience this repeated frustration they tend to learn to stop caring that’s the way you can protect yourself from feeling frustrated. If you don’t care whether you don’t get any work done or not then you are not going to get frustrated when you can’t get any work done. But when …

[Audio tape flipped over.. A few minutes of speech is lost]

For beings that can think and learn sharing useful knowledge is the fundamental act of friendship, when these beings use computers these acts take the form of sharing software. If you don’t have this freedom, if a program has a owner and this owner and this owner by whatever method has set up a situation that every user has to pay to use the program

[someone leaves]

RMS: leaving so soon? I hope it wasn’t something I said

Audience: [Laughter]

Well, if the program has an owner who has established a situation where every user must pay to use the program then this creates a financial disincentive, discouraging the user of the program. Because some users will say “Alright, I’ll pay” and they will use the program and the others will say, “Its too much I’ll never mind. I’ll do without it”. And everytime somebody says “Never Mind, I’ll do without it”, the program is going partly to waste. But the work it takes to write the program to any given level of power and quality is the same regardless of the number of users. In fact it might be even harder if you have fewer users helping you by reporting bugs. So, the same work is done. But only a part of the potential benefit is achieved.

The rest is deliberately inflicted waste which is practical material harm to the society. But because its inflicted by forbidding people to help each other it causes a psycho social harm which affects the spirit of co-operation, the spirit of good-will, benevolence, the willingness to help other people, just because you see that they could use your help. This spirit of good will is society’s most important resource. We depend on this so that we can have a liveable society instead of a doggy-dog jungle. And because this resource is so important the world’s major religions all talk about the importance of this spirit of good will of helping other people. For thousands of years moral leaders have encouraged the spirit of benevolence. So what does it mean when we see major social institutions telling you that you are not supposed to help your neighbour. They are polluting the society’s most important resource which is something that society cannot afford.

What does it mean when they say that if you share knowledge with your neighbour you are a “pirate”. They are saying that helping your neighbour is the moral equivalent of attacking a ship. If you don’t believe that, reject that word; its a propaganda word. And what does it mean when they start making harsh punishments for anyone who shares with his neighbour how much fear is it going to take to get people to stop helping their neighbours. Do you want your country to be pervaded by that level of fear? I certainly don’t. I hope you don’t either. This i think is the most important reason why software should be free. Because we must encourage people to help their neighbours, not discourage them. When I was a child going to school, the teachers were trying to teach us to share. They said, If you bring candy to school you can’t keep it all for yourself, you have to share with the other kids. They were trying to teach us to share with other people. Now the US today is the world leader in trying to stop people from sharing useful information with their neighbours. [Applause].

But the US is not the first country to make an effort to stop sharing. The soviet union did that too. Trying to crush the forbidden copying and sharing which was known as “Samisda”[?] You know dissidence did the same. You get a copy you put six carbons in your typewriter and you a copy and then you hand out those six copies to other people and they would type up more copies. The soviet union despite all its vicious repression was never able to completely stop the underground sharing that their people did. But they tried hard and they used several different methods. First guards checking all copying equipment, that’s why people had to it with carbon papers with typewriters because for every piece of copying equipment there was a guard check what you copied. Second : harsh punishments. Those who were caught doing forbidden copying could be sent to Siberia for years, were put in prison. Third: To help catch people they ask for informers, They ask everyone to wrap on their co-worker’s and their neighbours to the information police. Fourth to help catch people collective responsibility. “You. You are going to watch that group. If I catch any of them doing forbidden copying, you are going to prison. So watch them carefully.” And fifth, Propaganda starting in Childhood: To teach everyone that only a vicious enemy of the people would do this forbidden copying.

The US today is using all five of these methods to crush forbidden copying and sharing. First: Guards checking copying equipment. Well in copy store they have guards checking what you copy, to make sure you don’t do forbidden copying. But to have human labour checking what you are copying would be too expensive in the US. I guess they didn’t think of hiring people from India to do it. [Laughter] . So they are using robot guards. Programs that go in your computer and are designed to check what you are going to copy and stop you. Its a crime to bypass these robot guards.

Second, harsh punishments: Well, ten years ago if you made copies of something and handed out them to your friends just to be nice, that was not a crime in the US. It had never been a crime. And then they made it a felony. You could be put in prison for years for helping your neighbours. In Britain now they are proposing a ’10 year’ punishment. 10 year prison for sharing with your neighbours. That shows how far the repression can go when you try to stop people from sharing with their neighbours. When you try to prohibit their natural tendency.

And Third: Asking for Informers, In the US, there have been Ads on Television there were ads in the subways in Boston asking people to ??? on their co-workers to the information police, which there is called the “Business Software alliance” – a Terror organisation. And I say that after careful thought. In Argentina the business software organisation sent people letters threatening them with being raped in prison, if they shared with their neighbours.

Fourth – Collective Responsibilty: In the US this was done by Constricting Internet Service Providers to keep track of, they’ve been made legally responsible for everything their customers post. And the only way they can escape being punished is if they have an automatic procedure of taking down anything within two weeks of a complaint. So nowadays if somebody accuses, you don’t even get your day in court. your psych just gets unplugged. And that’s it.

Fifth – propaganda starting in childhood: That is what the word ‘pirate’ is for. When I went to school, the teachers tried to teach us the habit of sharing. Today according to the US government, teachers are supposed to teach, quote, Say Yes to Licensing, Unquote. So instead of saying “Oh you brought candy to school, well you have to share it with the other kids”. they say, “Oh you brought software to school, well, don’t share it. Oh no! sharing is wrong. Sharing means you are a pirate”. The US laws don’t apply in other countries. But the US is trying to push the same kind of laws in every other country. I hope you will spread the word that the India should _not_ adopt a law like the DMCA in the US. That is a tyrannical law. Its an Oppressive law and _you_ should save yourselves. Even if you can’t save us. So that is freedom 2: The Freedom to help your neighbour by distributing copies of the program.

Freedom3 – is the freedom to help build your community by publishing an improved version so others can benefit from your work. Now people used to tell me if the software is free that means no body will get paid to work on it, so nobody will work on it. They were confused by the two meanings of the word ‘free’. Because they thought it meant gratis which is not the case but none the less that was their theory. Today we can compare that theory with observed fact. And we see that hundreds of people or maybe thousands are being paid to develop free software and tens of thousands are developing free software as volunteers. And in fact we are developing large amounts of free software. What could possibly motivate these people? Well, I tell you I’ll tell you some of the motivations that I’ve heard people tell me.

One of them is political idealism. And the desire to contribute to a good decent society where people can help each other instead of to divide people and to keep them helpless. That is the important motivation for me but not everybody in our community has that motivation.

Second – Another motivation is fun. Programming is great fun. Not for everybody. But for some people and especially for some of the best programmers, programming is fun. That is why so many people after they do their job, which is software development want to develop some free software in their spare time. Because its especially fun, where you are your own master and no one can tell you what to do.

Another reason is to get appreciation. If you develop a free program that a hundred thousand people use you can feel really good. A lot of people will be appreciating you.

Another is profession reputation. If a hundred thousand people are using your free program that’s gonna impress anybody who might want to hire you.

Another reason is gratitude. If you’ve been using the community’s free software for years and appreciating how useful it is, then when you write a program, that could be an opportunity for you to contribute something back to that community to express your appreciation.

And there may be other motivations that I haven’t thought of and don’t know about. Any given person might feel a combination of several other motivations. Because human nature and human motivation are complex and money can also be a part of the motivation for some people those who are getting paid. When I released GNU Emacs after I while I got a message saying “I think I found a bug and here’s a fix”. And then I got a message saying “I thought this feature was missing so I wrote it and here it is” and then I got another bug fix and another new feature and another and another and another until they were pouring in on me so fast that just using all of this help was a big job. Microsoft doesn’t have this problem. [Laughter] [Applause]. You know I’ve never understood why that is so funny but people always do find it funny.

So, after a while people began noting the phenomenon that when a free program becomes so popular you often get a community of developers helping to improve it and free software started to get a reputation for being powerful, reliable software from the reports of the people who used it. And this was both good and bad. It led a lot more people to start using the free software especially in the 1990s. But at the same time we got lots of people coming into our community purely because the software was practically advantageous. It was expedient and they didn’t appreciate the freedom. They didn’t care and when they talked about the software to other people they didn’t even mention freedom as an advantage. They didn’t say the fact that you are free to co-operate with other people is an advantage. They just mentioned that it was powerful, reliable software and you could get it cheap. So then we got millions of more people coming into our community who never even heard anyone say that there is an ethical issue here. And eventually they formed a different movement called the “open source movement”.

Now I’ve been telling you the philosophy of the free software movement and as you can hear we sight both practical benefits and ethical benefits of having these freedoms in your use of software. The open source movement has practices close to ours, not identical. But the big difference is that they only sight the practical benefits. They don’t say that morally speaking this is the way it should be. They go to companies and say we think it would be advantageous for you if you do things this way. Well that is useful, they’ve persuaded some companies to release important pieces of software as free software. So practically speaking they contribute to our community but at the same time in the fundamental questions of the community we disagree completely.

What your views are that’s for you to decide. You might agree with the FSF, you might agree with the open source movement, you might disagree with us both; it’s up to you. But I’d like to invite you to support the Free software movement. After you’ve had a chance to think about the issues. and if you _do_ support us, please wave our banner. Our banner is the term “free software”. If you support the movement free software, say so by using the term free software. Its one of the ways to keep us in the public awareness so that our views and principles will be visible to people and they will have the chance to think whether they agree or not. Because the open source movement tends to get more support and businesses and those businesses tend to use their terminology and because they don’t criticise the practice of proprietary software their views are easier. They are less challenging ethically. So they get a lot of supporters who are not prepared to consider the ethical issues that we in the free software movement raise. So the result is that their name is heard more and we often get forgotten. If we were to raise this ethical issues so that people can think about it we need to get heard and you can help us with that by raising our banner the term “Free software”. So if you don’t have this freedom, the Freedom 3, the freedom to publish an improved version. That causes practical material harm because this phenomenon of community improvement if we don’t get powerful, reliable software. But it also causes psycho-social harm. Which affects the spirit of scientific co-operation. The idea that we have to work together to advance human knowledge if we are going to do it effectively. So that is freedom 3. The freedom to help build a community by publishing an improved version so that others can benefit from your work.

If you have all of these freedoms and the program is free software for you now why do I formulate the definition in this complicated way? Why do I not just say the program is free software if it comes with all these freedoms? The reason is that sometimes the same code can be free for some people and non-free for others. Now that might seem strange so let me give an example to explain how that happens. The biggest example of this that I know of is the X Window System which was developed at the MIT in, the Other MIT, in the 1980s and released as Free Software. So if you got their version you had all these freedoms. It was free software for you. But among those who got copies were various computer manufacturers who distributed Unix systems. So they took X Windows and they made the necessary changes to get X to run on their platform and then they compiled it. They made binaries and they put the binaries in their Unix systems and distributed just the binaries under the same non-disclosure agreement as all the rest of Unix. And then millions of users got copies of these binaries with no freedom at all. This created a paradoxical situation. If you asked “Is X Windows Free Software or Not?” the answer depended on where you made the measurement. If you made the measurement coming out of the developer’s group, you’d say “Here I observe all these freedoms. Its a free Software” If you made the measurement among the users you’d say “Umm… most of these users do not have these freedoms. Its _not_ free software.”. Well, the developers of X Windows did _not_ consider this a problem. Because they were not aiming to give the users freedom. They were aiming to have a big professional success. It was a big success. It set the de-facto standard. But in the GNU project, our goal was to give users freedom. To give you freedom. If the same thing that happened to X had happened to GNU, GNU would be a failure.

So I looked for a way to stop that from happening and the method that I developed was called “copyleft”. You can think of this a taking copyright and flipping it over. Opposite results. you see, copy left is based on copyright. We use copyright law in order to get these opposite results. Because normally copyright is used to stop people from sharing; to deny them the freedom to share. Whereas we when we use copyleft, we guarantee everybody the freedom to share in order to make sure that all of you get the freedom to share we have to make sure that those middle men cannot strip the freedom away. So here’s how we do it. First we put on a Copyright notice which says “This program is copyrighted” and then and by default you are not allowed to change or share the program. But then we say you are explicitly authorised to modify this program. You are explicitly authorised to redistribute copies of this program. You are explicitly authorised to publish a modified or extended version. But there is a condition. This condition is the reason why we go to all this trouble. The condition says: “Any modified or extended version or any version of this program you distribute must as a whole carry with it the same freedom that you got from us”. And so the result is that everywhere the code goes the freedom goes with it. Even if the program changes it still carries with it the freedom. So all the users get the freedom. The X Windows Problem did not happen for us. In effect these crucial freedoms that I explained to you becomes inalienable rights of users of our software.

So copyleft is a general idea. You can’t use copyleft like you can’t use the concept of a text editor. You have that specific text editor, then you can run it. and likewise to use the idea of a copyleft you have to have a specific license that you use. The license we use for most GNU software is called the GNU General Public License or the GNU GPL for short. Note that the ‘G’ in ‘GPL’ stands for General. Not GNU. We also have a couple of other copyleft licenses that are other more permissive in special situations. But mostly we use the GNU GPL. And in fact about 2/3rd of all free software use the GNU GPL. We also have a kind of copyleft license for manuals and text books called the GNU Free Documentation License. So if are writing a text book on any subject at all, I hope you’ll release it as Free Documentation under the GNU Free Documentation license. This license was designed to make it possible for commercial publishers to profitably publish free manuals and in fact there are some six free books that have been published commercially under this license. That’s not counting the manuals that we publish in the free software foundation.

So there is copylefted free software and there is non-copylefted free software. Both of them are free. The developers of the non copylefted free software like the X windows have respected your freedom. They are not trying to deny you any important freedom. The difference is with copyleft we go even further and we actively try and stop anybody from taking away your freedom. With a non-copylefted free software they are not actively defending you your freedom but they do not attack your freedom. So they are respecting your freedom. They are not doing anything wrong. They are just not doing as much right as they could do. It’s a very big difference. We don’t say that they are doing wrong. But we just say that they could do better, so that non-copylefted free software can be used in a free operating system like GNU.

And in fact I did decide to use X Windows in the late 1980s. I felt we should have a window system in GNU but before we wrote one there was one X. It was becoming popular, it did the job, it was technically suitable. So I said alright we’ll save trouble. We won’t write a window system of our own. we use X. So we started the other making the other pieces of the GNU system work together with X. And we put into the coding standards that if your program is graphical it should work with X. Through out the 1980s our mission was to come up with all the pieces we needed to make a complete Operating System. Now sometimes we were lucky and somebody else wrote the piece we needed or something that could do the job like X Windows. And when that happened we said “good we don’t have to write this piece”. We’d just use the piece that we found. But that happened or didn’t happen by chance. Because those other projects, they were not aiming to make a free Operating System. They had various different goals of their own. So it was just accident whether their software was useful for us and whether they made it free. Well, we were looking for opportunities to save the effort by using some existing software that we could find. Because the job of developing a whole unix like system was very big. Many people said it was so big we’d never finish it. Well, I thought we’d finish it but clearly we had to look for short-cuts. But when we didn’t find this existing software to use then we had to develop those programs or recruit people to develop them. And that’s what we did during the 1980s.

In October 1985 we founded the Free software foundation, which is a charity whose purpose is to raise money to promote Free software and in the 80s a lots of its activity was hiring people to work on developing GNU. Some important pieces of this system like the Shell and the C library were by the staff of the Free software foundation. But most of the work was done by volunteers. For instance I’m a full time volunteer for the free software foundation. Because the foundation doesn’t pay me. Now there’s a reason for that when the foundation first had enough money to hire one person, I, as the president had to decide who to hire. And it was my responsibility to spend the money effectively. So I realised that paying st(.*)nous[?] salary would be like throwing the money away because we could get st\\1n to work for nothing. So I decided to hire someone else instead. And now a days though there are many full time volunteers for the GNU project, most of them are getting paid by somebody else. So for the FSF they are volunteers. There are also thousands of part time volunteers who are contributing their spare time and don’t get paid for it but they still get a large amount of work done. In the 80s and in the early 90s it was possible to doubt whether free software could actually develop the full spectrum of software to fill the public’s needs. But nowadays we are pretty close to doing the whole thing already. So there’s no long any possible doubt that we can’t do the job.

The only question is whether we will be allowed to do the job. But that’s getting ahead of things. By 1991 the job was almost done. We had almost all the pieces necessary but there was one major gap still – the kernel. Now we started developing our kernel in 1990. Again we were looking for a way to save time by finding something we could start with that was already working and we found an already working micro kernel called ‘MACH’, developed at Carnegie Mellon University. So MACH did the lower level part of the Unix kernel’s job. So we had to write the upper half and we were going to do that by writing a collection of servers that communicate through message passing. And this provides all sorts of technical advantages, greater power. And we thought that because these were effectively user programs it would be easier to debug them unfortunately that’s not so. That wasn’t so. The Debugging facilities were lousy and these programs were asynchronous so they can have timing errors that were not reproducible. It took many many years to get this collection of servers which is called the GNU/Hurd to run. We call it the GNU/Hurd by the way, because Gnu’s in Africa live in Herds. So this is a herd of GNU servers or GNU/Hurd.

Fortunately we didn’t have to wait that long, because in 1991-92 a Finnish college student called Linus Torvalds wrote another free kernel, well he wrote a kernel and at the end he decided to make it free software and he released it under the name “Linux”. He used to monolithic approach that had been used before. Well we didn’t know about Linux. Because he never contacted us to tell us about it. But he announced it on the network somewhere and people who knew about it said “Let’s see if we can find all the other parts of an operating system so that we can make a complete system.” So they looked around and lo and behold, everything they needed was already there. What good fortune, they said its already available, but there was no rock about it. What they had found were all the pieces that were going to be the pieces of GNU! So in fact what they were doing was fitting linux into that gap in that GNU system to make the combination of GNU + Linux. The GNU/Linux system. But they didn’t realise that. They didn’t that they were finding all the pieces of the GNU system. Therefore they were starting with Linux and finding these other pieces and putting them on top of Linux. So they call that a Linux system which they really shouldn’t have done. They had no business calling this version of our operating system by some other name. But that’s what they did. And the misnormer got imitated by other people, and that’s how it happened.

That we developed an Operating System that’s used by some 20 million people and most of them don’t know its our system. They think it’s Linux. They think it was all started in 1991 by Linus Torvalds. Well, the development of Linux, the kernel was a major contribution to our Community because that was the step that took us across the finish line. Because before that we had 95% of the system but it wasn’t capable of running by itself. So you take parts of that system and install them on top of another operating system but you had to get another operating system to start with once that last gap was filled that made it an entire operating system. So you could put it on a bare PC. You didn’t have to have some other operating system first. And in fact that meant that the goal we had set out for in 1984 had been reached. It was a Free Operating System that you could run on a modern computer. So you could actually live in Freedom. You could install this free software, you could refuse to use any proprietary software and then you would have freedom and you would have the freedom to form a community with other people the freedom to cooperate with others. So you could live an upright life – a happy life as a computer user.

But, the error of calling the entire system Linux, was a major blow to the Free software movement. Because it broke the connection from our software to our philosophy. Before that people who used these pieces of GNU on other system they knew they were using pieces of GNU. So they thought of themselves as GNU users. They became the fans of GNU. And so when they saw the things we had put in there to describe the philosophy they would think about it seriously at least sometimes they would. Because they realised that this was the philosophy behind the software that they liked. So that was the reason to at least give it a serious consideration. And that philosophy I had been telling you today. Well, after thinking about it, some of them would agree. And if they agreed they then feel a motivation to develop more software for GNU. So the software helped to spread the philosophy and the philosophy helped to extend the software. But when people started calling this entire GNU system Linux, this connection was broken and instead the software lead people to a different philosophy. The philosophy associated with the name “Linux”. Which was the apolitical philosophy of Linus Torvalds. He didn’t like considering these things as ethical or political issues. He just put that it in terms of what’s practical. He didn’t say that software should be free. He sometimes develops and uses non-free software. So the result was here was this system that’s basically GNU and it was attracting people over to the other philosophy and not to ours anymore. It was a real problem. By the way, the other philosophy was the one that later on became the philosophy of the open source movement.

So the result is that if you look around on our community, most of the users of this version of this GNU system have never even come across the philosophy that motivated us to do all this work. Sometimes people say to me when they hear me making efforts to ask people “please call the system GNU/Linux”, they say to me it looks bad to ask for credit. It looks like you’re just being selfish. So it would be much wiser to let it drop and when people call the system linux, smile to yourself and take pride in the job well done for this would be a very wise advise except for one mistaken premise. The idea that the job is done. We have a lot of work to do. We’ve made a great beginning but we haven’t finished the job. You see we’ve developed free systems that are used on some 20 million or so computers but that’s a fraction of all the computers that there are maybe 5% I think I heard. And that means we have a lot more to go. We have a large range of free software now, but there’s still other programs that users would like. We have to develop those. We have to make sure that you have free software for every job.

And there are laws being passed in some countries that prohibit us from developing free software for certain jobs. We have to do what it takes to overcome those obstacles, repeal those laws whatever is needed. It is going to take determination. Some of these jobs can be done just by writing software and people will do that because its fun in many cases. But overcoming these obstacles takes more than just fun, it takes the kind of determination people show when they know that they are fighting for their freedom and for their communities. So we have to teach people that.

But if you look around in your community today you’ll see every where you look most of the institutions in our community are calling these systems linux and not presenting freedom as the goal and the result is when I talk about the importance of freedom I get responses like “This idealism is bad for the success of Linux”. They say “what does this got to do with me? I’m a linux user”. People call themselves Linux users that means people use the GNU/Linux system but when they hear about the philosophy behind GNU they say “What does this have to do with me?” because they don’t see any connection between themselves and GNU. If they knew the origin of the system that they’re using they would see the connection and the name GNU/Linux shows people that connection. And then there’s the others that say “This Idealism must be impractical and its bad for the success of Linux”. There’s so many ironies in that. One of them is What do they mean by success of Linux? Well they are really talking about the success of the GNU/Linux system, but what does it mean for that system to succeed? They think it means just to have a lot of people running it. And never mind how. Never mind if these people run it together with non-free software. Because they are thinking of success as nothing but popularity, which is irrational. It’s actually an example of mental inertia. You see, they copy that idea of success from the proprietary software world. In the proprietary software world at least its rational. Why do they want their software to be popular? Because every user is supposed to pay them! so more users means more money. It’s an evil system but at least they’re being rational in that part of it.

When you copy this definition of success over to free software it doesn’t make any sense at all! You know why does it matter how many people use that free kernel linux? It’s a kernel, it does its job, but is the number of users of that kernel really important? I don’t think so… And why does it matter how many users are using the GNU/Linux system or any variant of the GNU/Linux system? Now I might feel something about it because I launched it. But that’s just ego. Really is it important how many users this system has? I don’t think its of any real importance. The important thing is to spread freedom to as many people as possible and ultimately to everyone. That’s the goal that’s worth striving for. We have to remember that goal. Because the most important thing for reaching a distant goal is to remember the goal. If you forget where you’ve headed you’re going to end-up somewhere else! and is idealism really impractical? Not at all. If you are a distant goal, there are only two ways to reach it. One of them is to have a lot of money. And the other is idealism. Because idealism will enable you to keep on going until you get there, otherwise you’d just give it up. So we don’t have a lot of money. So we have to have this idealism instead. there’s nothing more practical like idealism. The GNU system and the GNU/Linux variants are our idealism made real. But, very few people are saying this to the users of GNU/Linux. Most of the institutions in our community call this system as Linux and they don’t say these things.

Consider, for instance, the companies that package this system, that package this GNU/Linux system. Well, they all put some non-free software on the CDs, Yes, its true that you can get a free Operating System to run on your PC, but its not easy to find one. If you go to the store and buy something that says a version of the GNU/Linux system which says “Linux” on it, it will always have non-free software as well. You have to be an expert to know what to get rid of. And then what about the magazines dedicated to the use of the GNU/Linux system. Typically these magazines call themselves Linux Something…..

So I have a different term, I call them freedom subtracted packages. Because if you have installed a free GNU/Linux system, if you are enjoying the benefits of freedom that we’ve worked so many years to give you, those packages give you the opportunity to buckle on a chain. And what about the trade shows about the GNU/Linux system, they typically call themselves Linux-something or the other and they host companies advertising non-free software so when in effect the trade show gives a seal of approval to non-free software. And what about the user groups for the use of the GNU/Linux system most of them call themselves linux user groups and they typically invite salesmen to come in and present non-free software in effect giving the group’s seal of approval to the use of the non-free software. Now I would like any linux user groups to become GNU/Linux user groups and to take a stand on freedom. To stand up for freedom and give GNU the credit for launching this system. Now I believe that there’s a Linux users group here in Chennai and I hope that you will become a GNU/Linux User group. Please tell me if you do. We have a page where we list GNU users groups and GNU/Linux user groups. So if you become a GNU/Linux User group, we will list you there.

But in any case in our community therefore most of the institutions are talking about Linux and they are not standing up for the philosophy of the GNU. So the only place you see this free software philosophy generally is in association with the GNU name. This is why it makes a difference when you call the system GNU/Linux because it shows people a connect between them and their system and GNU and the Free software philosophy. It will help people lead people to this philosophy so that they can think about it and may be get motivated to get help work for freedom. And we’re gonna need a lot of work. In the US today, there are too different kinds of laws prohibiting free software. One is the Digital Millenium Copyright Act, which has been used to prohibit free software for jobs like playing a DVD, listening to an audio stream, reading an e-book. Its a narrow range of jobs but they are very important jobs. If users can’t do that with free software, free software is in danger.

And the other problem, the even bigger problem, comes when patents are applied to software ideas. When software ideas can be patented and this is dangerous for free software development because its dangerous for all software developments. Programs tend to be complicated these days. One program will have a hundred ideas in it. Well, if ideas can be patented, if software ideas can be patented then any one of those hundred ideas might be patented by somebody. So even then you get sued if you wrote the program yourself. Without software patents you can be confident. If you wrote the software program yourself, if you didn’t copy the code then its legal and you’re not gonna get sued for writing it. But with software patents you are quite likely to get sued for writing it or at least get threatened. You can’t do this, you can’t write such a program. And the worst thing is if there are a 100 ideas 5 or 10 of them might be patented by 5 or 10 different companies. So you get one of them and when you’re finished with doing it one another comes along. So it’s constant trouble for any software developer and even for software users. So all the companies in India that use software have to recognise that software patents are a danger. All the companies in India that develop custom software, because it’s typically custom software that’s developed by Indian companies they have to fear software patents because those custom programs sometimes use many ideas too. And they could get sued for writing those programs. So software patents are a danger.

Fortunately the Indian Government seems to be aware of this. So there’s a good chance that India will resist the danger of software patents. But don’t leave it to chance. Make sure to spread the word, especially if you know companies that develop software or companies that use computers and software. Make sure they understand how dangerous software patents can be. Now why do we in the free software movement particularly pay attention to this goal, to this issue? Because we want to write a full range of software to do all the jobs that published software does. Custom software are a different area. We’re talking about published software. But we want to do all the jobs that published software does. So that means we gotta be allowed to do every job. If many of the jobs are prohibited for us, we can never attain our goal. We can never attain our freedom all across the globe. I should explain that the issue of free vs. proprietary software arises for published software. It doesn’t arise for typically custom software; there you know if you write the program for one company and they use it in-house. Well, they do have, presumably, they do have full freedom. They are not obligated to ever release it. But they have the freedom to do so. So it’s fine.

The ethical issue I’ve been talking about arises when software is published – when its available for users to get copy. And by the way, one consequence of this is that most of the jobs in the software industry are not really going to be affected by free software. It’s true that some jobs that involve developing proprietary published software may go away. There would be a certain number of free software jobs replacing them and we don’t know how many there’s going to be in the future. But then there are going to be all the custom software jobs and they may remain or a large fraction of them are likely to remain unchanged. And this is, by the way, an answer to the question of how a programmer is going to make a living when all published software is free. Well one way is if worse came to worse, they could have jobs writing custom software and they could write the free software in their spare time for fun. But in fact there are jobs writing free software and companies support these jobs in various ways. We don’t really know whether a free software will have more jobs or fewer jobs developing published software than today’s world. There’s no way to tell except to try it. But I believe, because there’s an ethical issue here, software must be free in order to treat the users decently. That we are better off having free software even if it’s less software.

A non-free program is not a contribution to society. Its a pit for users to fall into with bay at the bottom. Because it looks attractive. If you are thinking short term, if you don’t value your freedom, you might be attracted to that bay and then you might get into the trap. And then you might starting other people to get into the trap. And when you are in the trap you’re divided from every body else. you know its not a trap where you are all in there together and you can work to get out. Its a trap where you are divided. And you are kept helpless. That’s what makes it a trap. So we have to recognise just the fact that you can make money, there’s nothing wrong with making money in enough itself. But just making money doesn’t justify mistreating other people. Developing non-free software is mistreating other people. So don’t make a living that way. Find some other way to make a living. A way that involves ethical behaviour. So, sometimes people have criticised me for my ‘holier than thou’ attitude. Well they are right. I’m supposed to be holy. Oh, oh, I’m attached to this. Its my job because I’m a saint (wears the black robe and the halo hat). I’m not going to be able to keep this on for a very long time in this hot weather.

I bless your computer my child [Laughter]. I’m saint IGNUcius of the church of Emacs.

Emacs started out as a text editor but it became a way of life for many computer users and then a religion.

In fact there was an alt.religion.emacs newsgroup back around 1990. I don’t know what it was used for because I never read net news.

But so, emacs became a religion. We even have a great sism[?] between two different versions of emacs.

And now we have saints, fortunately no Gods yet. [Laughter]

To join the church of emacs you must repeat the confession of the faith three times. You must say, “There’s no system other than the GNU. And Linux is one of its kernels.” [Laughter]

The church of Emacs has some advantages compared with some other churches because to be a saint in the church of Emacs does not require celibacy [Laughter]

However it does require making a moral commitment to live a life of purity and then living by it.

You must exorcise the evil proprietary operating systems from all the computers you control. And then install a wholly free operating system instead. Because wholly can be spelled in more than one ways.

And then only install free software on top of that.

If you make this commitments and live by it, then you too would be a saint and you too may eventually have a halo, if you can find one because we don’t make them any more. [Laughter]

Now sometimes people ask me “In the Church of Emacs, is it a sin to use vi?”. The answer is that “Using a free version of vi is not a sin its a penance.”

And people sometimes ask me if my halo is really an old computer disk. [Laughter] this is no computer disk. This is my halo. But it was a computer disk in a previous life. [Laughter]

So, ‘happy hacking’ every one, and now I’ll answer, oh by the way, I have some stickers here to give out. So let me put the stickers somewhere over at this side and then you can take some as you’re going or whenever and take as many as you can make good use of. Who wants to take these and hand out giving them out. Ok you can do it [Srini comes up]

Basically go stand somewhere in the back and as people are leaving, if you have to leave now, you can get some stickers. There are a few different kinds. The best use of them is to put them in a place where they will stay permanently, so people will keep on seeing them and keep on doing some good. So lets see if this will reach here. So how are we going to do this? is there are spare microphone for the audience?

What we should do is everybody should come down and stand here. Get in a line to ask questions. In that way whenever we’re done with one question the next person would be right there ready to ask. So please if you want to ask a question form a line over here in the middle. And then we’ll have the microphone right there for you.

Or you can leave. You’re free. And please speak as loud and as clear as you can. Looks like we’re having technical difficulties. [Laughter].. Let’s see if he can fix them.

[RMS yawns] MIC-TESTER: Hello… testing… testing…

Questioner: RMS, I’m just curious to know what is powering your laptop?

RMS: I’m sorry I couldn’t understand what you said. Please try to speak as clearly and slowly as you can. Try to make every sound be heard.

Questioner: I was just curious to know right now what is powering your laptop.

RMS: What is running on my laptop?

Questioner: exactly.

RMS: I’m running Debian GNU/Linux

Questioner: That’s great!

Audience: [Applause, Whistles]

Questioner: I sometimes wonder whether these strong division between GNU on one hand as a philosophy, moral standing and Linux on the other hand really lets say puts the whole community thinking forward or whether it hinders it on the other hand. See I give you a question: We had right, in Germany,[…][inaudible]

RMS: I’m having trouble understanding, could you speak a bit slower and try to make sounds clear?

Questioner: Okay. I wonder whether the attempt to show the strong differences from your view point between GNU on one hand and the [inaudible] Linux and the Open Source movement on the other hand whether this way of separation helps the community at all in the moral standing you are trying to promote? We had in Germany for example, the last week the problem that our govt had to go for new operation system for its complete set up and it was something Microsoft versus the open source linux community. The…the… moral undertuned[?] [inaudible] between the whole thing … uh… sounded almost the way like you tried to explain… GNU here. So is it really fair to try to separate these so strongly or wouldn’t it be better to try to work on the similarities between both ideas.

RMS: Oh. I’ll tell you why its vital to express the differences. The reason is that we who talk about freedom as a goal are a minority. And we’re easily forgotten we could be completely ignored if we don’t work to spread these ideas. And you can see that happening constantly. There are constantly articles being published in the press about the use of this version of the GNU system. Which treated just as a commercial alternative and never mention freedom at all. There are many people talking about it that way. And those people generally use the term open source that’s the term they chose for their, for what they choose to say. Well, we who want to work towards the goal of freedom, we have to make our ideas heard. If we use the term open source. If we call the system linux, we’re going to be confused with every body else. I’ve seen this happen many many times.

Questioner: You mentioned Freedom 0. Which is the right to use…

RMS: Right to run it.

Questioner: …run for whatever you wish to. Now we have something called the SCCA. I could be wrong with the number of ‘C’s in there. Which makes it mandatory for any program to build copy protection…

RMS: [interrupts] basically the SSSCA is a proposed law in the US which has a substantial amount of opposition and which we think will not pass. But we’re working on opposing it. Some big companies are also trying to oppose it. We’ll see what happens. But indeed that law would be an… A vicious offence and it would prohibit free operating systems. Yeah, basically there’s no limit to how bad a law can be.

Questioner: Ok, I have this [inaudible] […] freedom zero.

RMS: I’m having trouble hearing you at all because the sounds are not clear. Try to enunciate the sounds clearly.

Questioner: Again in conjunction with Freedom 0, there is for example, we know about… the ASP hole in the GPL as of now.

RMS: We don’t have a what?

Questioner: The ASP.

RMS: You are talking about the ASP issue. Let me explain what that is… The issue is the GPL says that you can release the modified version to the public but you are not required to. you can make a version and use it privately yourself. And that’s important. That’s an important freedom. but there are come programs which are designed [coughs] to provide network services to the public. And there, [coughs] the original developer can feel very bad if somebody else gets a copy modifies and improves and sets up a network service himself. And then you see he’s never releasing his improved version. So the result is that his improvements never become available to the initial developer. So we are about to try out a clause that can help with this problem. Which says that if you are using the program to provide network services to the public, then you must have a command in the server which allows the user to download the source code from your server, because you see, we believe that you have the right to make modifications for your private use, but setting up a public network server is not really private use. its a different kind of a publication. you can think of it as being analogous to public performance of a piece of music. And so, it seems legitimate in that case to say, if you are inviting the public to come and use your server you must also let the same public get your modified source code. Now this would be an option. This wouldn’t apply to any existing software. Because in order to make it apply you have to release your initial version so that it has this download command.

Questioner: My…

RMS: [interrupts] So this were thinking of putting this version into GPL version 3, and when we do it not change anything for any existing software. But it would mean people can develop programs that activate this clause and then it would apply, but only in that narrow situation.

Questioner: My question was actually analogous to the ASP situation. Actually what can you do… what can the… uhh… FSF do if somebody takes a version of the GNU/Linux kernel and puts it in an embedded system and adds various copy protection routines to that system and distributed as… you know… Effectively as ICs or even as devices which people can buy like the playstation or [inaudible]

RMS: Well, they are allowed to do that. And if you can’t, you know the hardware doesn’t give you a way to install software well we don’t insist it has to give you a way to install a software. On the other hand they will be required to publish a modified version of their source code. So people could use it in making some other kind of device. I think its time now to give the next person a chance to ask questions.

Questioner: Umm… It is public information…

RMS: [interrupts] I’m sorry I cannot understand you. Please try to make every sounds clear. I’m hard of hearing and there’s a lot of noise here…

Questioner: ok. I’m sorry…

RMS: [interrupts] and […][inaudible] accent is very strange to me. With all those three things together it is almost impossible for me to understand any word you say.

Questioner: It is public information that you favour the Debian Project.

RMS: I’m sorry I can’t understand. Can you enunciate each sound clearly.

Questioner: It is public information that you favour the Debian project and you also run the Debian GNU/Linux operating system on your laptop and so it is… it… the Debian project has been happening for a very long time now. Why is it that you filed for a develop… Developer so late in november last year as opposed to earlier say…

RMS: [interrupts] I’m having trouble. I heard the first half, but when you started saying the actual question ‘why is’ I couldn’t hear it. could any one.. Can you repeat to me what he asked [pointing to Dr.P.Sriram]

DPS: [inaudible].. his question is basically why did wait so long to become a Debian developer.

RMS: It didn’t occur to me that it was a good thing to do [Laughter] unfortunately it looks like my application has been put on hold because I have not had the time to package a program and two overwhelmed with works so I can’t do it. Its unfortunate, I hope I’ll be able to get to it sometime soon.

Questioner: What do you think has been the impact of the Free software movement in India as such. What do you think needs to be addressed?

RMS: Did you say, what is the impact of free software movement in India?

Questioner: yeah

RMS: Well, some Indian govts are now starting to actively sponsor free software use and development. In… For instance govt departments in Kiosks, in schools. It’s just beginning. But we have hoped that this will spread a lot more. And it has the potentiality to help with the elimination of the digital divide. Because its hard to put very many computers into the hands of villager’s schools when you have to pay Microsoft and Adobe and all those companies for licenses. you know you could spend that same money on computers it would be much better and you could get a cheaper computer because GNU/Linux is more efficient that would be better too. And not only that, when you have free operating systems in the schools in these villages that provides a great opportunity for anyone who wants to learn to do system administration or.. or programming because they can actually read the existing programs and then they work on them. They can learn by doing. Learn by tinkering.

Questioner: therewasthisarticleyesterdayonslashdot…

RMS: Slow down please…

Questioner: There was this article yesterday on slashdot where you were quoted as saying that the HURD is of age. In the sense that the HURD is going to be independent and the HURD kernel….

RMS: [interrupts] Not that its going to be available, its likely to be available. That it… it… its a… its a.. An estimate, not a promise. I see so many people getting that wrong. The article said it right but various people repeated to me leaving out that crucial point. I don’t know. But what I’m saying is … its close.. its so close now already. but there’s not much further to go, the GNU/Hurd system which is the GNU system using the GNU Hurd as its kernel, its basically working now… and Anand Babu one of the main Hurd Developers, he is in Bangalore, his name is Anand Babu, he showed me his laptop with GNU/Hurd running on it. There were a couple of missing features that I think are pretty important but they… they… they wont be too hard. They should get done this year I expect.

Questioner: assumingthatthehurdsystemisready…

RMS: S L O W E R ! P L E A S E…

Questioner: Assuming that thehurdsystemisreadysoon…

RMS: I’m sorry could you repeat what he said? [pointing to Dr.P.Sriram]

Questioner explains to DPS and the first few words are heard… “Assuming that the hurd system is ready soon [inaudible]”

DPS: Assuming the Hurd system is ready soon do you see it competing with the Linux?

RMS: Well, the Hurd is not a _system_. The hurd is a _kernel_. The Hurd and Mach together are a kernel. And linux is also a kernel and yes, they _are_ alternatives. So it will in some ways compete. Both of these kernels are used in the GNU system

Questioner: Ah, good evening Mr.Stallman. My question to you is, How do I build a successful software model, business model based on free software because it has become increasingly difficult to convince the PC community about… Because the first quote […][inaudible] is do you have a software which is proprietary, which is close so that it can cause entry barriers for other people. So what would be your advise to people like us who can convince the PC community.

RMS: can you repeat it for me? [pointing to Dr.P.Sriram]

DPS: What would be your advise to developers who are looking for funding… who are looking for the… the… funding people… the.. the… venture capitalists.

RMS: oh, give up on venture capitalists… thats the wrong approach…

[Laughter]

RMS: But you don’t want to start a company funded by a venture capitalist anyway, because in a year or two they would take it away from you and kick you out. I mean its really a stupid way to do anything. The only reason anybody would do that, is money is the most important thing to that person and he’s desperate to get rich, which is stupid.

Questioner: Thanks

RMS: Now there are people who have found ways to make a living doing free software for instance there are companies that configure and set up machines for clients using free software and then writing additional stuff to do what the client wants. And that is the way people can make a living. And they support people developing free software so that’s.. you know, that’s something to consider. It doesn’t lead to getting rich. But of course most companies that people start are not successful anyway, they may think I’m going to get this venture capital and I’m going to make a big splash and I’d get very rich. And chances are it just goes broken in a few years. You know, over 90% of the time it fails within a few years, the cases that are successful are very few. So really, if you think of that as a way to succeed you are deluding yourself anyway.

Questioner: The GNU/[inaudible]…[inaudible]…[inaudible]…[inaudible]…

RMS: Okay could you please repeat the question? I didn’t hear anything.

Same questioner: The [inaudible]…[inaudible]…[inaudible]

RMS: No. Please, you repeat the question because you heard it. I know I can hear you.

DPS: The GNU Hurd and GNU linux. They share a lot of things. Why don’t they work together? including ideas. They share a lot of ideas. Why don’t you work together closely?

RMS: Now this time I couldn’t really hear _you_. Its really hard…

MIC-MAN: check…check…

DPS: I’ll try…one more try. The GNU Hurd system and the GNU Linux system share many things. Including ideals. Why aren’t they working closer together.

RMS: well, they are basically working pretty closer together. Most of them is the same. Its just the kernel that’s different. Well the… well the C library has to be fairly different as well.

Questioner: [inaudible]… the kernel groups to join together.

RMS: You know the… the user space programs are basically the same. The same source typically run with both kernels.

Questioner: [inaudible].. the kernels… the kernel groups to join together.

RMS: I can’t hear you at all. I’m sorry.

Questioner: The KERNEL GROUPS to join together.

RMS: Oh that wouldn’t work at all. And the reason is that the two kernels are totally different. They have so little in common it’s just not useful for these kernel groups to join together. The design is totally different. you know, one is a monolithic kernel and the other is a micro kernel design. Which Linus Torvalds doesn’t like. Also… [Laughter] So you can be sure he’s not going to wanna work on the Hurd.

Questioner: You were talking about patents for software ideas. Which you wanted to prevent. Are such patents currently in force in the US?

RMS: Yes. Software patents are… exists. They’re more than a hundred thousand in the US. There may be several hundred thousand by now. And its a big problem. There are a number of free programs that we don’t have. More at least in the US you can’t find them. Because they’ve been driven underground.

Questioner: What do you exactly mean by patents for software ideas? Ideas in the sense algorithms? data structures? and such things..

RMS: [inaudible] yes. An algorithm could be patented, or something more general than an algorithm could be patented. Or a feature could be patented. Or an idea for data format can be patented. Or an idea for a protocol can be patented. Uh… for instance the LZW data compression algorithm used in GIF format is patented. So you can’t write a program to generate compressed GIFs in the US without getting a permission from the patent holder. That’s just one example but there are many examples. there’s too many for me to keep track of.

Questioner: When there are too many things to keep track of, naturally there’s a possibility that somebody develops something on his own which by mistake, maybe similar to a patented thing, so how do I resolve such issues?

RMS: how would what? how… I didn’t hear the very end. I heard most of it. The last sentence I didn’t hear.

Questioner: How do you resolve? like accidentally… Because the ideas…

RMS: [interrupts] ok. Ok. Now I heard you. What happens is the patent holder will threaten you and either say, you just have to stop or he’ll say I’ll let you continue if you pay me a lot of money. And at that point you can either ‘give in’ you can either…[interrupts] when he just says stop, you have two choices. you either stop or you either go to court. If he says in order to do this you have to pay me a lot of money, you have three choices. you can stop. you can pay him they money or you can go to court. Now if you are doing this in a company then maybe you can afford to pay. But if you are doing this as a volunteer, you’ll probably don’t have the money to pay. And usually they demand a price per copy. Well, with free software its impossible to collect a price per copy because we can’t count the copies. Its literally impossible, even if it were one thousand of a rupee per copy, we couldn’t pay it because we can’t count the no. Of copies.

Questioner: I have two questions. The first one …

RMS: [interrupts] Please speak loud and clear!

Questioner: I have two questions with me. The first one is whenever I go in for a new system why is it that it always carries the tag “Microsoft Operating system Preloaded”.

RMS: Could you repeat… I couldn’t understand that. So could you repeat it?

DPS: Its really a hardware question.. When you buy a new PC, why does it say Microsoft Software Loaded.

RMS: Well, I mean… I don’t know. I mean… you know much about this as I do. I think the reason is that Microsoft effectively has a near monopoly and because of that the PC companies think that all the users are going to want Microsoft. I think its unfortunate, but I can’t tell them what to do. Your second question?

Questioner: Take for example IBM, ok? he says that some of his models are Linux compatible. But why is it that he does not favour a system which is shipped with Linux?

RMS: Oh, they are equipped with GNU/Linux. But IBM calls it Linux which is not right but I didn’t hear the other word so maybe you could repeat the question to me so I can answer that.

DPS: you know… IBM has both… Microsoft loaded and GNU/Linux compatible. Why aren’t they loading their machines as loaded with GNU/Linux.

RMS: Why aren’t they whatting their machines?

DPS: Labelling. Putting a tag.

RMS: Labelling them. I don’t know you have to ask them. But… you know… I know that they wouldn’t label them as GNU/Linux because they don’t call it that. They might label them as Linux if you ask them to but they might have some reason why they don’t. Who cares. I don’t know. you have to ask them.

Questioner: Many people argue that … the… the philosophy of the free software can be arbitrarily applied to any other areas as well. Like production of music… writing books… or even digital logic circuit design… so…

RMS: Oh I couldn’t hear that…

Questioner: Chip design. Chip design for example.

RMS: chip… oh Chip design. Oh well, yes and no. Basically you could try to apply it to any kind of information but its not equally important for all kinds of information basically the area for which it’s important is functional information. Information typic… basically that ordinary people could use to get something done. So that includes programs and recipes for cooking and dictionaries and encyclopedias and manuals and text books… Chip designs because they can only be used by Chip fabrication plants, I think they are a less important issue. But yeah they could be free… And there are people starting to work to some extent on free chip designs and on free hardware designs. I don’t think that free hardware designs are vital. However its nice. So we do say its a good thing when people work on free hardware designs. Because its a lot of work to build hardware from a design. You can’t just type ‘build’ and has something build the hardware for you. Well it doesn’t raise the same important ethical issue that the issue of free software raises. It’s just nice if the hardware design is free.

Questioner: and does that have anything to do with the fact that its a lot of money to develop hardware.

RMS: I didn’t hear any of that could you repeat it for me?

Questioner: Is it also because one has to spend a lot of money to develop hardware? to develop chips?

RMS: Not really. In that… that would not be a primary issue if that were the only one I don’t think it would convince me. But the fact that you need a lot of money to _build_ the hardware that its not the kind of things individuals typically can build. And if you do its a lot of work anyway. Because of that I think its a less important issue ethically.

Questioner: thank you very much.

Questioner: I have a question in the subject of kernels. The Linux kernel is a monolithic kernel. On the other hand the Hurd for example is a Micro Kernel. Now linux grew out of the Minix project. In 1991 when Torvalds posted to comp.Operating System.minix newgroup about linux, he was very severely criticised by Andrew Tannenbaum because he believed that Monolithic kernels… they are technically inferior…

RMS: I… I have a trou… I think I know what you are talking about but I can’t hear you most of the words. If you could make it brief and then he could repeat it then I could try to answer you.

Questioner: I’ll make it brief. A monolithic style was considered technically inferior, but it has proved to be a more practical style for kernels. Why is this so?

RMS: Could you repeat it now?

DPS: umm… Monolithic vs. Microkernels… the success points to you know that Monolithic kernel can work.

RMS: And therefore… what’s the question?

Questioner: A monolithic kernel style was considered to be technically far less inferior as early as 1991 but yet even 10 years later the most practical kernel that we have today is a monolithic kernel. Why is it that even in spite of being technically inferior it has proved to be practically more feasible alternative.

RMS: Ok, I didn’t hear it so you could …[inaudible]

DPS: The monolithic kernel would be considered technically inferior. Yet it is so popular why?

RMS: Well, I don’t have any …[inaudible] which one is superior. What I see is that the micro kernel design with multiple servers offers some advantages and power and flexibility. There are many things you can do with it that are hard to do with a monolithic kernel. On the other hand, Linux has had an advantage in speed and reliability. Now we have partly closed the gap in reliability, not totally. As for speed its less important now because the computers are so damn fast. So which one is really going to be technically better? I don’t know. But I’m glad that people are working on the hurd and make it as good as they can.

Questioner: I have one more question. You have said that people calling the GNU/Linux system as a Linux System and forgetting about the GNU philosophy is a very bad thing. But my question is how serious is this problem: For example there was a student in my class who believed that the linux kernel itself was actually written by the Free software foundation and he thought that all linux software are actually GNU software. So my belief is that people are not at all ignorant of the role of the GNU and of the philosophy of the GNU. So how serious is this…

RMS: [interrputs]… Very serious. And most of the users have heard of the philosophy of the GNU and most of them have barely heard the name of GNU. If they’ve learned about GNU the fraction who’ve learned about GNU at all they think… most of them think, that GNU was a project to develop some software tools. And that there was no particular overall reason why we were doing that. We just felt like doing that. Because you see, if you think at it that way, the whole logic is gone! there was a reason why we developed a free Operating System. Its because the Operating System is the first thing you need to run a computer. And with an Operating System you could run your computer. So that has to be… so everything we did was all arranged with a logic of making it possible to have freedom in community. But the picture… those fraction who hear about GNU at all… the picture they get is wrong. And it leaves out the most important logic of it which relates to the ethical philosophy a year ago I gave a speech in the Netherlands and someone came up to me afterward and said, I’ve been using this system for 5 years and this is the first time anyone told me that the purpose of it is for freedom. So if… he wasn’t just a new comer. He is a person who works in a free software company. And yet, he never heard of this. So I believe you that you heard a person who got the opposite misunderstanding. All sorts of misunderstandings are possible. But I can assure you that the most common misunderstanding is the idea that Linus Torvalds started everything in 1991 and that the purpose of it all is just to be powerful and reliable and that its fine if you use non-free software with it to make it more popular. And that this is more common than a correct understanding. The misunderstanding is more widespread than the truth.

Questioner: thank you

Questioner: yeah…ahh… There was a mention in the Linux Gazette of this month saying that the G N U… GNU will be stopping the manuals… the publishing of manuals in the distributions… it basically said something like…

RMS: we’ll be doing what?…

[tape exhausts]

This Documentation is released under the GNU Free Documentation license. Please take a look at http://www.gnu.org/copyleft/fdl.html for more information on the Free Documentation License.

Copyright © 2011 Vignesh Nandha Kumar.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

Make your Javascript work perfect anywhere

For the past few weeks, I had a chance to work closely with Javascript and to understand it better;). I hope this post on my discoveries will help someone. Note this post is only about the cross-browser issues in javascript those I came across; I hope to write another post on general javascript tips.

One very basic thing you should always keep in mind while javascripting is that,

The environment on which your code will run is not in your hands.

Yes, the javascript engine which is going to compile your code may be a Spider Monkey, a TraceMonkey, a JägerMonkey, a Carakan, a SquirrelFish, a V8, a Chakra or even the sucking WSH. So you have to make sure that your code runs smart with any browser. Understanding how each of these engines work takes quite a lot of time. When you want to develop a cross-platform highly interactive web app in a short time, the following things are good to keep in mind.

Event handling

  • To know in which element the event occurred, use event.target and fallback to event.srcElement
    elem = event.target || event.srcElement;

Keyboard events

  • To know which key was pressed, use event.keyCode and fall back to event.which
    key = event.keyCode || event.which;
  • Use onkeydown if you want the event handler to be called continuously while the key is pressed and held. Suitable for backspaces, arrow key navigation, etc. Otherwise use onkeyup.
  • Never rely on punctuation keys. (These keys are dependant not only on browser and operating system, but also on keyboard configuration and the official system language).
  • To detect Alt, Shift and Ctrl keys, check if event.altKey, event.shiftKey and event.ctrlKey respectively are true. The keyCodes for these are less reliable on Mac.

Note: keypress event always returns 0 in Firefox.

Reference: http://www.quirksmode.org/js/keys.html

Callbacks and this

  • Value of this pointer is lost in callback functions. So,
    function outerFunction() {
      function print() {
        console.log('viky');
      }
      setInterval(this.print, 1000);
    }
    

    won’t work. Because inside setInterval, the value of this is lost. You can overcome this by copying this to something else, say that.

    function outerFunction(that) {
      var that = this;
      function print() {
        console.log('viky'); 
      }
      setInterval(that.print, 1000);
    }
    

    This can make your code messy. I would suggest you use Underscore.js bind and bindAll methods to bind this to functions.

Miscellaneous

  • Accessing characters in a string using normal way of indexing arrays, as in
    str[i]

    works fine in all browsers except IE. So, always use

    str.charAt(i)
  • split function using regular expressions as below doesn’t work in IE.
    var str = 'somestring';
    str.split(/[sr]/);
  • Comma at the end of an array or any object as in
    var position = { x: 5, y: 10, };

    works fine in all browsers but throws error in IE.

The Letter by Students of MIT, Anna University, to the Vice Chancellor

I’m sharing this post from http://blog.akilan.in/2011/09/letter-by-students-of-mit-anna.html

This is an edited version of the letter written by Students of Madras Institute of Technology, Anna University, to the Vice Chancellor. Thanks to Gaurav and Mohan for editing it. This was originally posted in Facebook group, but since it is a closed space requiring login I’m parking it here.

It is very clear that the dean has been functioning in an autocratic and stupid fashion. All emphasis in text are mine. I hope my alma matter will get rid of her.

To the Respected Vice-Chancellor,

We the students of Anna University, MIT Campus are going to protest by staying inside our hostels until the Dean of MIT Campus is replaced. We will not come out of our hostels until our demands are fully accepted. We are subject to constant mental agony ever since the new Dean was sworn in. She has absolutely no idea about the traditions of MIT that have transcended the decades since when the institution was established. Our mental distress is so terrible that some of us are thinking about quitting our courses; some of us are even considering quitting the university since our career post Anna University has become a question mark. We feel that, with the college being an autonomous institution, the authorities feel they have every right to be dictatorial in their approach, especially our dean Dr. Thamarai Selvi. We wish to express displeasure with regard to the following things regarding our current dean:-
1) We are not treated like students in a professional degree course. Instead we are treated in a draconian manner not befitting even school students. A search for intellectual excellence through independent thinking cannot happen when we’re treated with utmost disrespect and disdain.
2) Dean is only concerned about her image and not about the students.
3) Thanks to the autonomy of the institute, our views are fully suppressed.
4) Even when our parents are called for any inquiries, they are treated rather poorly and our Dean has the habit of using unparliamentary words not befitting a head of such a prestigious institution. Not only was it totally uncalled for, it also tarnished the reputation of our university.
5) Our calls for proper treatment were met with threats of fines and arrears in exams. As a result, the unwritten rule in college is not to even clarify doubts in class taken by even the most unqualified faculty.
6) The Dean has also indulged in activities like entering boys hostels in person and disturbing students suffering from illnesses. Further infringement of our rights include the Dean actually entering the gents’ toilet under the pretext of catching rulebreakers. How can we function when we’re treated worse than inmates in a prison and our rights to such basic privacy aren’t guaranteed?
7) The Dean has threatened the first year students and asked them to readily lodge false complaints against their seniors even though there were no ragging incidents per se.
The Dean does not respect our rich college traditions such as the Junior-Senior relationship. Instead of allowing supervised interactions to prevent any instances of ragging, she has totally banned any mere act of even talking by putting it under the banner of ‘ragging’ in a move that would totally destroy what makes MIT so unique.
9) The hostel gates are locked every morning from 8.45 to 11.45 am. This is not specified anywhere in the university rules. As a result, even the students with legitimate excuses are not allowed into the hostel.
10) We are not allowed to use our mobiles and laptops after 9pm till morning (when classes aren’t even in session). Not every parent who wants to talk to their children away from home gets back after work before 9pm. What kind of technological institution bans laptops which are vital to any kind of research and studying that we need to do? This again is a rule that is not specified anywhere by the university in its regulations.
11. Students are excessively fined, for trivial issues, including and not limited to eating at college canteens (as opposed to the mess), not locking their rooms when they go even to a nearby restroom, for staying in their rooms when ill etc. The only gain from this is to those authorities at college who like seeing their bank balances go up.
12. The choice of the new Dean of MIT Campus, Anna University Chennai has also not been as per seniority. Money has certainly played a huge role apart from influence in making her dean. This is what’s happening at Anna University, MIT Campus and we’re fed up with many more such problems which we feel ashamed to reveal in detail for fear of the institution’s reputation taking a beating. We are however ready to share our grievances to a competent authority if given a forum where our views will actually be heard without malice from the people in power.
We hate seeing the culture of MIT taking a beating, a culture of seniors helping juniors they’ve never even met, helping them as if they were members of the same family. MIT’s fame and reputation are being degraded year by year by those with money and power. We conclude by affirming that we will not leave our hostels until the Dean, whose ill-will towards the students and inconsiderate actions that put a question mark on our careers, is changed. We are engineering students well on our way to becoming professionals, future builders of our nation’s infrastructure and would like to be treated with dignity.

Yours Sincerely,
The students of Madras Institute of Technology

கச்சத் தீவு … மூழ்காத உண்மைகள்!

நடந்து முடிந்த தமிழக சட்டமன்ற தேர்தலில் பங்கேற்ற இளைய தலைமுறையினரும் இனி வரப்போகின்ற தலைமுறைகளும் போற்றி பாராட்டும் வகையில், என்றும் நினைவு கூறும் விதமாக… முதல்வர் ஜெயலலிதா சட்டமன்றத்தில் வரலாற்று சிறப்பு மிக்க, வரலாற்றுத் தேவை மிக்க ஒரு தீர்மானத்தை நிறைவேற்றியிருக்கிறார்.

“கச்சத் தீவை இலங்கைக்கு தாரை வார்த்த இந்தியாவின் ஒப்பந்தத்தை ரத்து செய்யவேண்டும். கச்சத் தீவு தொடர்பாக உச்ச நீதிமன்றத்தில் ஜெயலலிதா தொடர்ந்த வழக்கில், தமிழக வருவாய் துறையையும் செர்த்துக் கொள்ளவேண்டும்” என்று தீர்மானம் நிறைவேற்றியிருக்கிறார்.

தீவு என்றாலே நீரில் மூழ்கியும் மூழ்காமலும் இருக்கும் நிலப்பகுதிதான். கச்சத் தீவு பற்றிய பல உண்மைகளையும் மூழ்கடித்து வந்தன. இந்நிலையில் கச்சத் தீவு பற்றிய வரலாற்று நிகழ்வுகளை அலசுவதற்கும் ஆராய்வதற்கும் ஜெயலலிதா சட்டமன்றத்தில் கொண்டுவந்த தீர்மானம் ஒரு வாசலாக இருக்கிறது.

கச்சத் தீவு பற்றி இந்தத் தலைமுறைக்கே தெரியாத உண்மைகள் இதோ…

தாரை ஒப்பந்தம்

28.06.1974-ல் கச்சத் தீவை இந்தியா இலங்கைக்கு தாரை வார்த்து, அந்த ஒப்பந்தத்தில் இந்தியா மற்றும் இலங்கை பிரதமர்கள் கையெழுத்திட்டனர். ஆனாலும், ‘தமிழக மீனவர்கள் கச்சத் தீவை ஒட்டி மீன் பிடித்துக் கொள்ளலாம். மீன் பிடிக்கும் வலைகளை கச்சத் தீவில் உலர வைக்கலாம், ஒய்வு எடுத்துக்கொள்ளலாம். இது தவிர, கச்சத்தீவில் உள்ள புனித அந்தோணியார் ஆலய ஆண்டு திருவிழாவில் கலந்து கொள்ளலாம் எனும் உரிமை தமிழகத்திற்கு உள்ளது’ என்றெல்லாம் விளக்கமளித்து, அப்போது தமிழக மக்களை சமாதானப்படுத்தியது அப்போதைய மத்திய காங்கிரஸ் அரசு. அந்த சமயத்தில் தமிழகத்தில் கருணாநிதி தலைமையிலான அரசு அமைந்திருந்தது.

இது தொடர்பான விவாதம் 23.07.1974 அன்று நாடாளுமன்றத்தில் நடந்தபோது அதில் பேசிய அப்போதைய வெளியுறவுத் துறை அமைச்சர் ஸ்வரன்சிங், “1921-ல் பிரிட்டிஷ் ஆட்சியில் மீன்பிடி எல்லை (FISHERY LINE) வகுக்கப்பட்டு கச்சத் தீவின் மேற்குப் பகுதியில் இந்திய மீனவர்களும், கிழக்குப் பகுதியில் இலங்கை மீனவர்களும் மீன் பிடித்து வந்துள்ளனர். இலங்கைக்கு அருகே உள்ளது கச்சத் தீவு. இலங்கைக்கும் கச்சத் தீவுக்கும் இடையே உள்ள தூரத்தை விட இந்தியாவுக்கும் கச்சத் தீவுக்கும் இடையே உள்ள தூரம் அதிகம்” என்று பல்வேறு விளக்கங்களைக் கொடுத்து, கச்சத் தீவு தாரை வார்க்கப்பட்டதற்கு சப்பைக் கட்டு கட்டினார்.

ஆனால் கச்சத் தீவு எவ்வாறெல்லாம் இந்தியாவோடு இணைந்த பகுதி என்பதற்கான வரலாற்று ஆதாரங்களை அவர் மறைத்துவிட்டார்.

கச்சத் தீவின் வரலாறு

கச்சத் தீவின் பரப்பளவு 285 ஏக்கர்கள் 20 சென்ட் ஆகும். கச்சத் தீவு தமிழகத்தின் ராமேஸ்வரத்திலிருந்து 17 கி.மீ. தூரத்தில் உள்ளது. அதாவது, சென்னை சென்ட்ரலுக்கும், தாம்பரத்துக்கும் உள்ள தூரத்தை விட குறைவானது. கடலோர எல்லை, நாட்டிக்கல் மைல் (NAUTICAL MILES) அளவு கொண்டு சர்வதேச அரங்கில் கணக்கிடப்படுகிறது. அதன்படி கச்சத் தீவு ராமேஸ்வரத்திலிருந்து 12 நாட்டிக்கல் மைல் அளவுக்கும் குறைவான தூரத்தில் அமைந்துள்ளது. முந்தைய காலத்தில் ராமநாதபுரம் அரசின் கட்டுப்பாட்டில் இருந்த 8 தீவுகளில் கச்சத் தீவும் ஒன்றாகும். ராமநாதபுரம் மன்னர் சேதுபதி அவர்களிடம் 1882-ம் ஆண்டு கிழக்கிந்திய கம்பெனி (THE EAST INDIA COMPANY) லீஸ் ஒப்பந்தத்தில் கச்சத் தீவை எடுத்துள்ளது. அதன் பின்னர் கீழக்கரையைச் சேர்ந்த அப்துல் காதர் என்பவர், மணலி தீவு, குத்துக்கல் தீவு மற்றும் கச்சத் தீவு மூன்றினையும் அப்போதைய, மெட்ராஸ் பிரசிடென்ஸி (MADRAS PRESIDENCY OF INDIA) யின் ராமநாதபுரம் கலக்டரிடம் லீஸ் ஒப்பந்தம் மூலம் பெற்றுள்ளார்.

1913-ல், மீண்டும் ஒரு லீஸ் ஒப்பந்தத்தை மெட்ராஸ் பிரசிடென்ஸி ஏற்படுத்தியது. அதன்படி, மெட்ராஸ் பிரசிடென்ஸியின் மீனவர்களுக்கு மீன் பிடிக்கும் உரிமை கச்சத் தீவின் மீது கொடுக்கப்பட்டுள்ளது. 1939-ல் புனித அந்தோணியார் ஆலயம் கச்சத் தீவில் கட்டப்பட்டது. அதன் தொடர்ச்சியாக, முகம்மது என்பவர் 1947-ல் கச்சத் தீவை ஒரு லீஸ் ஒப்பந்தம் மூலம் எடுத்துள்ளார். அந்த ஆவணம் எண் 278/1948 ஆக இராமேஸ்வரம் பதிவாளார் அலுவலகத்தில் பதிவு செய்யப்பட்டுள்ளது. ராமநாதபுரம் தாலுகாவில்… ஆங்கிலேய ஆட்சியிலிருந்து இந்தியா சுதந்திரம் பெற்ற பிறகு,       “கச்சத்தீவு இராமேஸ்வரத்தின் எல்லைக்குட்பட்ட வருவாய் கிராமம், கச்சத்தீவின் சர்வே எண் 1250” என ஒரு அரசாணை G.O. No. 2009: 11.08.1949-ல் வெளியிடப்பட்டுள்ளது.

இது எல்லாவற்றிற்கும் மேலாக 1531-ம் ஆண்டு எழுதப்பட்ட ஒரு செப்பு பட்டயத்தில், ‘கச்சத் தீவு சேதுபதி மன்னர்களின் ராஜ்ஜியத்துக்கு உட்பட்ட பகுதி” என குறிப்பிடப்பட்டுள்ளது. இது இந்திய தொல்பொருள் துறையின் அகழ்வாராய்ச்சியில் கிடைத்துள்ளது. சேதுபதி மன்னர் நினைவாகத்தான், பல நூறு ஆண்டுகளாக இன்று வரை அந்தக் கடல் பகுதியை அனைவரும் ‘சேது சமுத்திரம்’ என்று உலகளவில் அழைக்கின்றனர். அதனால்தான் இந்திய அரசே ‘சேது சமுத்திர திட்டம்’ என பெயரிடப்பட்டு ஒரு திட்டத்தை தொடங்கியது.

வாலி தீவு

கோடிக்கணக்கான இந்து மதத்தினர் நம்பும் ராமாயண இதிகாசத்தில் ஸ்ரீராமரும், வாலியும் போரிட்ட தீவுதான் கச்சத் தீவு என்ற நம்பிக்கையும் நிலவுகிறது. 23.07.1974-ல் நடைபெற்ற நாடாளுமன்ற விவாதத்தில், அப்போதைய குவாலியரின் நாடாளுமன்ற உறுப்பினராக இருந்த பிற்கால பிரதமர் அடல் பிகாரி வாஜ்பாய் கச்சத் தீவை, ‘வாலி தீவு’ என கூறியுள்ளார். எவ்வளவு பெரிய இந்து மத நம்பிக்கையை நாம் இழந்துள்ளோம்!

காரணங்கள்

இவ்வளவு வரலாற்று உண்மைகள் மற்றும் நம்பிக்கைகளை மறைத்தும் மறுத்தும் கச்சத் தீவு ஏன் இலங்கையிடம் தாரை வார்க்கப்பட்டது? முதன்மையானது 1974-ல் இலங்கை இந்தியாவிற்கு செய்த உதவிக்கான பிரதி உபகாரம். அந்தக் கால கட்டத்தில் இந்தியா அணுகுண்டு வெடித்து சோதனை நடத்தி, உலக நாடுகளின் கண்டனக் கணைகளை எதிர் கொண்டது. ஜ.நா. சபையில் பாகிஸ்தான், மேற்படி இந்தியாவின் அணு சோதனைக்குக் கண்டனத் தீர்மானம் கொண்டு வர முயன்றது.

இலங்கை அப்போது இந்தியாவுக்கு அளித்த ஆதரவால், பாகிஸ்தானின் அந்த முயற்சி தோல்வி அடைந்தது. இலங்கையின் பண்டார நாயகா பதவிக்கு வரும் வரையில் கச்சத் தீவு தொட்ர்பாக எந்த உரிமையையும் இலங்கை கோரவில்லை. ஆனால், பண்டார நாயகா பதவிக்கு வந்த பிறகே கச்சத் தீவின் மீது இலங்கை பல உரிமைகள் கோரியது. கோரிக்கைகளை சாக்காக வைத்து 1974-ல் இலங்கை இந்தியாவிடமிருந்து கச்சத்தீவை கேட்டு பெற்றது. 23.03.1976-ல் இந்தியாவின் வெளியுறவு செயலர் கிளிவல். சின்சிலும் இலங்கையின் வெளியுறவு மற்றும் ராணுவ செயலர் ஜெயசிங்கேயும் ஒரு சீராய்வு ஒப்பந்தத்தை இரு நாடுகள் சார்பாக ஏற்படுத்தினர். அதன்படி கச்சத்தீவின் அருகில் மீன்பிடிக்கும் உரிமை இந்தியாவிற்கு இல்லை என அறுதியிடப்பட்டுள்ளது.

கருணாநிதி செய்தது என்ன?

அப்போது தமிழ்நாட்டில் எமர்ஜென்ஸி அமலாக்கப்பட்டிருந்ததால், எங்களுக்கு இது பற்றி தெரிந்திருக்கவில்லை. கச்சத் தீவு மீட்கப் பட வேண்டும்’ என இன்று கூறுகிறார் கருணாநிதி. ‘பல முறை சொன்னால் பொய்யும் உண்மையாகும்’ என்பதை மனதில் கொண்டுதான்   அவர் இதை தொடர்ந்து சொல்கிறார். 1969 – லிருந்து 1971 வரை என்ற முதல் ஆட்சிக்காலத்தில் ஆரம்பித்து… 2006 முதல் 2011 வரையிலான ஐந்தாவது ஆட்சிக் காலம் வரை மேற்படி காலகட்டத்தில் கச்சத்தீவு விவகாரத்தில் உருப்படியாக ஒன்றுமே அவர் செய்யவில்லை.

‘தமிழர்களே, தமிழர்களே, என்னை கடலில் தூக்கிப் போட்டாலும், நான் கட்டுமரமாகத் தான் மிதப்பேன். என் மீது ஏறி பயணம் செய்யலாம்’ என்றெல்லாம் வாய் ஜாலம் காட்டுவதில் வல்லவர் கருணாநிதி. அதற்கு ஒரு உதாரணம் 09.12.2009 அன்று ‘கச்சத் தீவை மீட்கும் தீர்மானத்தை சட்டமன்றத்தில் கொண்டு வரத் தயார்’ என அறிவித்தார் கருணாநிதி. அதன் பிறகு, 09.12.2009 முதல் 28.02.2011 வரை கச்சத் தீவு பற்றி மூச்சு கூட விடவில்லை அவர். ஆனால், ‘கச்சத் தீவை மீட்போம்’ என 2011 தேர்தலிலும் வாக்குறுதி அளித்தார். இதுவும் வெறும் காகிதம் தான் என்று மக்கள் புரிந்துவைத்திருந்ததை தேர்தல் முடிவுகள் காட்டியிருக்கின்றன.

ஜெயலலிதா செய்தது என்ன?

நடந்து முடிந்த சட்டமன்றக் கூட்டத்தில் மட்டுமல்ல… 1991-ல் முதல் முறையாக தமிழக முதல்வராக பதவியேற்று ஆட்சி செய்தபோது, 1994-ல் கச்சத் தீவை நீண்ட கால லீஸ் மூலம் திரும்ப பெறவேண்டும் என மத்திய அரசை நிர்ப்பந்தம் செய்தார். பிறகு 2001-ல் மீண்டும் ஆட்சிக்கு வந்த போதும் கச்சத் தீவு தொடர்பாக உரிமை மீட்டெடுக்கப்பட வேண்டும் என்று 2004-ல் இந்திய பிரதமருக்கு கடிதம் எழுதினார்.
பிறகு ஜெயலலிதா எதிர்க்கட்சித் தலைவராக இருந்தபோது கூட, ஆகஸ்ட் 2008-ல் இந்திய உச்ச நீதீமன்றத்தில் ஒரு பொது நல வழக்கைத் தொடர்ந்தார். அந்த வழக்கில், ‘கச்சத் தீவு தொடர்பாக 1974 மற்றும் 1976-ல் ஏற்படுத்தப்பட்ட இரு ஒப்பந்தங்கள் ரத்து செய்து உத்தரவிடப்பட வேண்டும். கச்சத்தீவு மீண்டும் இந்தியாவின் அங்கமாக்கப்பட வேண்டும். ஏனெனில், மேற்படி கச்சத் தீவு தாரை வார்ப்புக்கு இந்திய நாடாளுமன்றத்தில் இரு அவைகளைக் கூட்டி ஒப்புதல் பெறப்படவில்லை’ என்று வழக்கு தொடுத்தார். இதில் 1960-ல் மேற்கு வங்காளத்தின் ஒரு பகுதியை பாகிஸ்தானுக்கு மத்திய அரசு கொடுக்க முயன்றபோது அதைத் தடுத்து உத்தரவிட்ட உச்ச நீதீமன்றத் தீர்ப்பை மேற்கோளும் காட்டியுள்ளார் ஜெயலலிதா. மேலும் CONVENTION OF LAW OF THE SEA ன் படி ஐ.நா. சபையின் முடிவுகளை தனது வழக்கில் சாதகமாக எடுத்து வைத்துள்ளார்.
ஏன் மீட்கவேண்டும் கச்சத் தீவை?

13.08.1983-ல் தமிழக மீனவர்கள் மீது இலங்கை கடற்படையின் முதல் தாக்குதல் நடைபெற்றது. 10.12.1984-ல் ராமேஸ்வரம் மீனவர் முனியசாமி எனும் அப்பாவி, இலங்கை கடற்படை நடத்திய துப்பாக்கிச் சூட்டில் இறந்து, முதல் கணக்கை ஆரம்பித்தார். கடந்த 27 ஆண்டுகளுக்கு மேலாக சுமார் 3000-த்திற்கும் மேலான இலங்கை கடற்படையினரின் தாக்குதல்களை தமிழக மீனவர்கள் சந்தித்துள்ளனர். தமிழக அரசின் அறிக்கைப்படி சுமார் 400 தமிழக மீனவர்கள் இலங்கை கடற்படையால் கொல்லப்பட்டுள்ளனர். பலி எண்ணிக்கை கணக்கு கூடுதலாகத்தான் இருக்க முடியும். மூவாயிரத்துக்கும் மேலான தமிழக மீனவர்களின் படகுகள் சேதப்படுத்தப்பட்டுள்ளன. இதற்கு எல்லாம் ஒரே தீர்வு, கச்சத்தீவை இந்திய அரசு திரும்பப் பெற துரித நடவடிக்கை எடுக்க வேண்டும் என்பதுதான்.

போருக்கு வித்திடும் கச்சத் தீவு

கச்சத்தீவு விவகாரத்தில் உச்ச நீதிமன்றம் 1974 மற்றும் 1976 ஒப்பந்தங்களை ரத்து செய்யும் பட்சத்தில், ஜக்கிய நாடுகளின் சபையில் இந்தியா சரியாக முயற்சிக்கும் சூழலில், கச்சத் தீவு எப்போதும் இந்தியாவின் அங்கம் எனும் பொதுமக்களின் கனவு நனவாகும். இல்லையென்றால், 1974-ல் ராமநாதபுரம் நாடாளுமன்ற உறுப்பினர் பார்வார்டு பிளாக் கட்சியைச் சேர்ந்த P.K.M. தேவர் நாடாளுமன்றத்தில் பேசியது நடந்து விடும்.

“இலங்கை தனது ராணுவத்தை கச்சத் தீவிற்கு திருப்பியுள்ளது. ஆயிரக்கணக்கான இந்திய மீனவர்களின் மோட்டார் படகுகள் கச்சத் தீவுக்கு முன்பாகவே நிறுத்தப்பட்டு விட்டன. தமிழக மீனவர்களின் உயிருக்கு ஆபத்து. தமிழக மீனவர்களைப் பற்றி கவலைப்பட ஆளிள்லை. கச்சத் தீவு விவகாரம் எதிர்காலப் போருக்கு அடித்தளமாக இருக்கப் போகிறது. நமது நாட்டின் உயிர் பிரச்சினைக்குச் சவாலாக இருக்க போகும் ஒரு விஷயத்திற்கு இது அடித்தளமாக இருக்கப் போகிறது. இந்தியாவின் பிரிவினைக்கு மகாத்மா காந்தியை பலி கொடுத்துள்ளோம். கச்சத்தீவை தமிழகத்தின் அங்கமாக பார்க்காதீர்கள். புனித இந்தியாவின் அங்கமாக கருதுங்கள். கச்சத்தீவை மீட்க நடவடிக்கை எடுங்கள்” என்று நாற்பது ஆண்டுகளுக்கு முன்னர் நாடாளுமன்றத்தில் பேசினார் தேவர்.

இன்றும் அந்த நிலைமை தமிழனுக்கு நீடிக்கிறது. சீன ராணுவம் கச்சத் தீவை தனது தளமாக பயன்படுத்த இலங்கை அனுமதித்துள்ளது என செய்திகள் வருகின்றன. அதன்படி பார்த்தால் கச்சத் தீவை நாம் மீட்காவிட்டால் எதிர்காலத்தில் இந்தியாவிற்கு – குறிப்பாக தமிழகத்திற்கு பெரும் அச்சுறுத்தலாக கச்சத்தீவு இருக்கப் போகிறது!

நன்றி: சவுக்குப் பதிவு http://www.savukku.net/home1/971-2011-06-22-07-52-38.html

Faster backup of MySQL database with XtraBackup tool

The most common way to export and import databases is using mysqldump. This is fine for databases of small or medium size. What about huge databases, in case of a social networking site, for example? It takes hours to days to backup such databases. This is because the databases are not copied. Instead, SQL statements are generated to re-create the database. While importing, these statements are executed to create the database from scratch.

What is the alternative?

Instead of running SQL queries to create a database identical to the original one, the binary data can be copied, then crash-recovery can be performed on this to make it consistent. This is what Percona‘s XtraBackup utility (used in a lot of  web applications, including facebook! ) does exactly.

How to install?

The Free Software for most of the platforms can be downloaded from here. Installing them is not a thing to explain at all. Just double clicking the downloaded file should work fine.

Prerequisites

  • MySQL should be installed (If not run sudo apt-get install mysql-server mysql-client for Ubuntu machines)
  • It is assumed that the MySQL version is 5.1 or more

Step-by-step

The following steps may help you trying out this, without crashing your database by doing something wrong. A set of scripts to implement this is available here.

  1. Start mysql server if it is not running. (sudo service mysql start should work in most GNU/Linux distros).
  2. Connect with the mysql server using mysql -u username -p
  3. Create a sample database, say test.
  4. Create a sample table in test, say sample with ENGINE=InnoDB (The tool works with MyISAM engine as well; just for sake of simplicity).
  5. Insert some values into the table.
  6. Disconnect the client by just saying exit or just pressing Ctrl+C
  7. Now its time to backupour sample database. Run the following command:
    sudo innobackupex-1.5.1 --user=mysqlusername --password=mysqlpassword /data/backups/ --databases="test"

    Innobackupex is a wrapper script for xtrabackup for ease of use. The last two comman-line arguments above deserve special mention.

    1. The last argument is a list of databases that should be backed up. Ensure that this list has all databases having InnoDB tables. Otherwise all databases including MyISAM tables would be backed up.
    2. The last but one argument is the location where you want your backup data to be stored. It can be any path of your choice. In this location the backup files will be stored in a new directory whose name is the timestamp at which the above command was run. E.g. 2011-05-27_00-26-12
  8. Now connect again with server and drop the database, so that it can be recovered from our backup.
  9. Stop the mysql server (sudo service mysql stop)
  10. Now run the following set of commands (first command to prepare the backup to be restored, the second one to restore the data)
    sudo innobackupex --apply-log /data/backups/2011-05-27_00-26-12
    sudo innobackupex --copy-back /data/backups/2011-05-27_00-26-12

    You may need to change the permissions of the following files/folders after executing above commands:

    • /var/lib/mysql/ibdata1
    • /var/lib/mysql/iblogfile0
    • /var/lib/mysql/iblogfile1
    • /var/lib/mysql/test/
  11. Now start the MySQL server. MySQL will perform crash recovery over the data automatically to make it consistent.
  12. Connect with the mysql and you can see your database alive back!

In my next post I’ll explain how to perform incremental backups using XtraBackup tool.
Partial backups(backing up selected databases or tables) didn’t work fine for me. So I didn’t continue with XtraBackup hence didn’t post anything on incremental backups.