Richard Stallman's personal site.

For current political commentary, see the daily political notes.

RMS's Bio | The GNU Project

How I do my computing

My computer

I use a Thinkpad T400s computer, which has a free initialization program (libreboot) and a free operating system (Trisquel GNU/Linux). It was not sold that way by Lenovo, however; small businesses buy them used, recondition them, and install the free software. This is one of the computers endorsed by the FSF.

Before using such Thinkpads, I used the Lemote Yeeloong for several years. At the time, it was the only laptop one could buy that could run a free initialization program and a free operating system. But it was never sold with a free operating system.

Before that, I used an OLPC for some weeks. The OLPC uses a nonfree firmware blob for the WiFi, so I could not use the internal WiFi device. No big problem, I used an external WiFi adaptor.
I stopped using it because the OLPC project decided to make their machine support Windows, so I did not want to appear to endorse it by visibly carrying it around. I could have continued using it privately with its free software installation, but I had no need for another computer to use only privately.

The results that seemed likely, millions of children running Windows on the OLPC, have not occurred. Instead we see millions of children running Windows on the Intel Classmate, or nowadays a Chromebook that sends the child's personal data to Google.

Before that I used machines that ran completely free GNU/Linux systems but had nonfree BIOSes. I tried for about 8 years to find a way to avoid the nonfree BIOS in some commercial machine.

GNU/Linux distro

I do not have a preferred GNU/Linux distro. I recommend all the ethical distros — namely, those that are 100% free software.

I've chosen not to have any preferences among those ethical distros. In fact, I am not in a position to judge them on other criteria: even to try them all would be a lot work of that I have no need to do.

What I do on my computer

Mostly I use a text console, for convenience's sake. Most of my work is editing text and that is more efficient on a text console. On the text console, the touchpad can't cause me any trouble if I touch it by accident.

I do use X11 for tasks that need a graphical interface. I have no preferred graphical environment or window manager. Since my interest in using graphical environments is small, I don't want to spend time comparing them.

This is not an ethical issue, just my own personal preference. On the ethical level, I think it is important for free software to provide convenient free graphical user interface software, which is why the GNU Project launched three projects to develop that. The third, GNOME, was successful, so we never needed a fourth one.

I spend most of my time editing in Emacs. I read and send mail with Emacs using M-x rmail and C-x m. I have no experience with any other email client programs. In principle I would be glad to know about other free email clients, but learning about them is not a priority for me and I don't have time.

I edit the pages on this site with Emacs also, although volunteer helpers install the political notes and urgent notes. I have no experience with other ways of maintaining web sites. In principle I would be glad to know about other ways, but learning about them is low priority for me and I have other things to do.

How this site is maintained

This site is maintained in a very simple way. I edit the pages such as this one manually as HTML. I only know simple HTML; others who know more wrote the parts at the top and bottom of pages, and the more complex formatting on the home page. Volunteer helpers install the political notes every day after receiving the text from me by email. A cron job "rolls over" the political notes page every two months. The photo galleries are generated with this perl script. The search feature on the site is done with this code.

An explanation of the concept of designing a "user experience" which also shows why I find it loathsome. This is why I want to remain simple: not a "user experience" but rather a place where I present certain information, views and action opportunities to you.

Would you like to help do this? Write to rms at the site

How I use the Internet

Social media

E-mail service

People sometimes ask me to recommend an email service. The two ethical issues for an email service are (1) whether you can use it without running any nonfree software (including nonfree Javascript code from the site), and (2) whether it respects your privacy.

For issue 1, see the FSF's page. On issue 2, I have no way to verify that any email service is satisfactory. Therefore, I have no recommendation to offer.

However, I can suggest that it may be wise to use an email service that is not connected with your search engine. That way you can be almost sure that your email contents don't influence your search results. You shouldn't identify yourself to your search engine in any case.

Programming languages

How to learn programming

First, read a textbook about programming in some language, then manuals for several programming languages including Lisp. If this makes natural intuitive sense to you, that indicates your mind is well-adapted towards programming.

If they don't make intuitive sense to you, I suggest you do something other than programming. You might be able to do programming to some degree with a struggle, but if you find it a struggle you won't be very good at it. What's the point of programming if it is a struggle instead of a fascination?

After that, you need to read the source code of real programs (or parts of them) and figure out what they do. Then start writing changes in them, to add features, or fix bugs if you can find out about specific bugs to fix. Ask some good programmers who are familiar with the code of those programs to read and critique your changes.

If you fix a bug in a free program that people are developing, the developers are likely to be glad to get fixes from you and will tell you the way to write them to make them good to install. Look at their TODO list for features you would like to implement. You will find it is a great satisfaction when the developers incorporate your changes.

Do this over and over and you will become good at developing software.

Please use your programming capability only for good, not for evil. Don't develop nonfree software, or service as a software substitute. Design systems not to collect personal information, and to allow anonymous use.

Non-free software issues

I firmly refuse to install non-free software or tolerate its installed presence on my computer or on computers set up for me.

However, if I am visiting somewhere and the machines available nearby happen to contain non-free software, through no doing of mine, I don't refuse to touch them. I will use them briefly for tasks such as browsing. This limited usage doesn't give my assent to the software's license, or make me responsible its being present in the computer, or make me the possessor of a copy of it, so I don't see an ethical obligation to refrain from this. Of course, I explain to the local people why they should migrate the machines to free software, but I don't push them hard, because annoying them is not the way to convince them.

Likewise, I don't need to worry about what software is in a kiosk, pay phone, or ATM that I am using. I hope their owners migrate them to free software, for their sake, but there's no need for me to refuse to touch them until then. (I do consider what those machines and their owners might do with my personal data, but that's a different issue, which would arise just the same even if they did use free software. My response to that issue is to minimize those activities which give them any data about me.)

That's my policy about using a machine once in a while. If I were to use it for an hour every day, that would no longer be "once in a while" — it would be regular use. At that point, I would start to feel the heavy hand of any nonfree software in that computer, and feel the duty to arrange to use a liberated computer instead.

Likewise, if I were to ask or lead someone to set up a computer for me to use, that would make me ethically responsible for its software load. In such a case I insist on free software, just as if the machine were my own property.

As for microwave ovens and other appliances, if updating software is not a normal part of use of the device, then it is not a computer. In that case, I think the user need not take cognizance of whether the device contains a processor and software, or is built some other way. However, if it has an "update firmware" button, that means installing different software is a normal part of use, so it is a computer.

Skype (or any nonfree noninteroperable communication program) is a special case because of its network effect. Using Skype to talk with someone else who is using Skype is encouraging the other to use nonfree software. Doing so regularly is pressuring the other to use nonfree software. So I refuse to use Skype under any circumstances (See more information.)

Streaming medias and DRM issues


Return to Richard Stallman's home page.

Please send comments on these web pages to

Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2015, 2018, 2019 Richard Stallman

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.