Vegans, Monks and The Devotion to Free Software

For many years I have strived to use only Free Software. There is a certain conceptual purity in adherence to that rule which appeals to me. However, in that time, I’ve identified a few problems I haven’t satisfactorily solved. I’m writing this in the hopes of stimulating some discussion or comments that might give me some new insight.

Definition of Free Software

Free Software is software that grants four specific freedoms: freedom to run for any purpose, freedom to modify and study, freedom to make verbatim copies, and freedom to redistribute your improvements. Explaining these ideas to people can be difficult. Other than price, most people don’t understand why they should care about Free Software. Very few see any connection with Free Software and liberty. The cynic in me would say that actually very few are willing to make any meaningful sacrifice for liberty.

An argument for using Free Software is that proprietary software leaves you as a kind of tenant, never really owning the system that is governed by that software. You might have bought your computer, but the current and future performance and feature set is governed by the copyright holder, who only licenses you to use the software but not make any non-trivial changes. As we have seen, software is appearing everywhere: in your car, in your home electronics and appliances, even in your credit cards (those that are smart cards). In the proprietary picture, you have no right to control or change these systems. Meaningfully exercising your constitutional freedoms increasingly involves the use of software. These arguments were laid out by Richard Stallman, the founder of the Free Software Foundation, who anticipated these problems more than 20 years ago (FSF on Wikipedia, FSF philosophy).

The Goal of using only Free Software

Today, it is relatively easy to use (almost) exclusively Free Software. Ubuntu is a distribution of GNU/Linux that is easy to install and use and comes with almost all the utilities many users need, including an excellent web browser (Firefox) and an office suite (OpenOffice). Those using Free Software today aren’t making a big sacrifice. Generally, there is a minor inconvenience of dealing with minor incompatibilities with proprietary software users. I would argue that the benefits of Free Software, such as not having to pay, not having to deal with license keys or copyright violations, automatic management of all the software installed on the system, outweigh the difficulties for most people. For someone who can program computers, the benefits are even greater: you can add new features to your favorite programs and even share those improvements with others legally.

Is using only Free Software more like being a Vegan or a Monk? Wikipedia defines veganism as “a philosophy and lifestyle that seeks to exclude the use of animals for food, clothing, or any other purpose.“. One could make the analogy of Free Software purists as Vegans. Those that only care about zero price (so called Freedom 0), might be compared to vegetarians. Being a vegetarian might be a bit difficult, but being a Vegan can be a real challenge. You have to be really sure that no hidden ingredient in some food might be an animal product. There is some similarity with verifying that your software follows all the four freedoms. For instance, try explaining to your Mom why the program Pine is not okay, even though you can run it for zero cost and get the source code.

Being a Vegan is a challenge, but approximately one in 100 or so choose to do it. On the other hand, being a Monk (or Nun) is something virtually no one chooses (outside of Tibet where almost 1/3 of the population are monks).

The Siren Call of Conceptually Simple Rules

I should state right off the bat, that the idea of a simple criterion for what is wrong or right is appealing to me. It may be naive, but I would like to identify some set of rules or conditions that would qualify software as “Kosher” to use. I suppose it is likely that such a quest will not be successful without spiraling into absurdity. Even Veganism, which seems like a simple rule, could be argued to be harmful to the plants, and so Fruitarians go further and only eat ripe fruits. When it comes to diet, I myself follow a somewhat arbitrary simple rule: I don’t eat Mammals. I acknowledge that there is some absurdity here and that there must be many non-mammals that I would eat that perhaps I shouldn’t (on some basis) or some mammals I don’t each which perhaps I should (on some basis). But the rule is very simple, useful, and therefore, to me appealing.

In order to find a good set of rules and in order to avoid complete absurdity, one should start with the motivations for the rules. I want to maximize the utility of technology and maximize my personal liberty. These two goals conflict: when using proprietary software utility may be increased at the cost of liberty (I can’t exercise some subset of the four freedoms). As a programmer, access to source code and the right to modify it also increases utility. So for me, it’s tempting to limit myself to software that only grants the four freedoms. But let me discuss some problems with this I have identified.

Where is it hard to follow the pure Free Software Ideal?

Here are a few challenges for Free Software purists:

  • Cell phones
  • Game systems
  • Portable media players
  • Drivers/firmware for PC hardware (such as video or wireless cards)
  • Flash, which has become very common on the web, does not currently have a fully capable Free Software replacement (see swfdec and gnash). However, Adobe does provide a flash plugin for GNU/Linux at zero cost.
  • Social software with large user bases, such as Skype.

All of the above have software or firmware that is updated after the unit is sold to the end user. In addition we could be more strict and consider:

  • Home video: DVD players, cable boxes, television firmware
  • Car software (e.g. the console in my Prius has a touch screen which controls climate, audio, and shows fuel economy statistics)
  • Software running on web pages (javascript code or the flash code driving a web page which is executed by your browser).

Personally, I am willing to use a cellphone that runs proprietary software because I have found no free alternative to replace it. When Openmoko, a free mobile phone platform is ready, I’ll almost certainly switch to that. In the mean time, my Treo becomes a sort of thin-end-of-the-wedge for proprietary software. Since the phone is already non-free, I am willing to install non-free programs on it such as Google’s Map application for the Palm OS, or their Java Gmail client.

I’m willing to use audio, video and gaming devices such as DVD players, Slimdevice’s Squeezebox, original (non-iphone/ipod touch) iPods, and the Nintendo Wii. Unfortunately, due to the disaster that is DRM, many media devices are especially hell-bent on denying users their rights, but I only purchase devices that I feel do not curtail my rights. I own a ReplayTV PVR, which automatically skips commercials and whose manufacturer sued to the brink of extinction. The argument I’ve constructed for the “media exemption” is that media content is primarily expressive and not primarily functional, so as long as the system does not do non-trivial DRM (note the wiggle room), I allow it. I am currently not willing to use the iPhone or iPod touch, since these machines are too close to general purpose computers and I think present too much of a risk to my freedom (since Apple maintains totalitarian control over those devices). If I were a purist, I could replace the firmware of my iPod with some free firmware such as Rockbox.

For my computers, my rule is that any non-bios code that runs on my CPU must be Free Software. I am willing to load the non-free firmware to my Intel wireless card, but I am not willing to run non-free ATI drivers for my graphics card. The difference is subtle, but real. These days, even hardware can be described and emulated by software. The firmware for my wireless card, in this picture, is basically hardware that can be modified after it is sold. I could disallow this exemption, but then we’re left with an absurdity: if Intel had made burned the original firmware into a read-only memory on the card, it would be okay. I admit the firmware exemption is shaky. The same argument could be extended to a Dell computer: Microsoft could burn Windows onto a ROM in principle, so why not just run Vista (of course, practically that would never work since the volume of code is so large with an entire OS that it could never work securely for years without updates). The CPU rule means I can’t run Adobe’s flash. This is a minor inconvenience but the Free Software programs gnash and swfdec can both show Youtube videos, even if they can’t view all flash programs and pages. The policy here is very close, if not identical, to the Debian GNU/Linux policy for what goes into the main section of their software distribution (another convenience: software is okay to run as long as it is in Debian main). The bios exemption is due to the fact that BIOS software is quasi-firmware like: it is rarely if ever updated and stored in flash or ROM. If possible, I will use LinuxBIOS to replace my BIOS, but currently the motherboards supported are rather limited.

I don’t use Skype on my computer, there is no need. I can run Ekiga and call anyone using standard SIP compatible software or hardware. I may be willing to use Skype on some device other than my computer, such as a dedicated skype handset. In this case, it’s like using a telephone. Obviously there is some bizarre cognitive dissonance going on with this issue.

An interesting inversion comes on the web. On the computer, I allow non-free hardware (the designs for my CPU and motherboard are not available to me), but insist on the code running on the CPU to be Free. On the web, I insist on the virtual hardware (the Java/.Net/Flash virtual machine) to be Free but the software (the page or service) is allowed to be non-free: I don’t expect the four freedoms to apply to all the javascript that might be embedded in a web page. I have no real argument for this except practicality and simplicity. Web code is sandboxed, so it can’t really be used to deny me control of my own property. Instead, it is like a representative of a service that I don’t own. Secondly, disabling javascript would render a very large subset of the web unusable.

Conclusion

In the course of writing this, I’ve rediscovered that practicality motivates my usage of Free Software. Clearly I use a lot of non-free software, less than the vast majority of computer users but none-the-less I do use non-free software. However, like most people I prefer to have more freedom if given the choice, and like most people, some trade-offs I’m willing to make and others I’m not. That doesn’t mean that every choice is okay and equal, it just means we have to accept a little grey, and be willing to continue to wrestle with the issues and make choices. A guiding principle for me is to always try to gain freedom, and try hard to avoid backsliding into a state of less freedom. By elevating the previous idea above some idyllic notion of purity, one avoids inviting total ideological collapse due to minor violation of principle.

I should make it clear, almost all of the ideas here originated elsewhere. Most came from Richard Stallman, various participants of the Debian project (such as Bruce Perens), Code by Lawrence Lessig and countless others who have contributed to the debate over Free Software and Free Culture.

Secrecy of Social Security Numbers

I was alerted by UCLA this morning that an attacker has accessed private records (including SSNs) of as many as 800,000 people associated with UCLA. This has been going on since October 2005 (14 months). This is getting a lot of coverage in the news (Washington Post, Slashdot, more from Google News).

The underlying problem is quite obvious: we have no secure identification system, and in the absence of such a system we have an insecure one. Many privacy advocates are opposed to a government issued ID card. I can sympathize with those concerns. However, in the meanwhile we have people using what amounts to a single password for every account: the social security number. The single password problem is that if even one database gets broken, the password for all other sites is known. So, your security everywhere is as weak as the weakest security anywhere.

Hopefully securing the identity problem will become a bigger priority as more of these attacks are publicized. The solution is not difficult technically, but requires some degree of standardization on identification techniques. In one scenario, public companies (such as Paypal for instance) could provide identify verification services. Paypal has your information, and Paypal can help you prove to a creditor that you are credit worthy, without that creditor learning enough information to impersonate you. Any number of companies could spring up to provide these identity services, and those that suffered security breaks would lose customers. In this picture, there is no global secret (like the SSN) which provides access to your credit. At any time a customer can cancel their account (which means that they could not prove their credit worthiness). A second scenario might be a government standardized smart card. This card could use PKI to verify identify, but not transmit enough information to allow impersonation (this is accomplished using a zero knowledge proof of identity). If the cards interface and characteristics were standardized, then credit card companies, state DMVs, etc. could produce cards to prove identity.

Obviously, there are privacy implications of standardizing identity systems, but I don’t see how things become worse than they are today. Databases today collect SSN, credit card numbers, driver’s license numbers, names and birth dates, home addresses, etc… this information is enough to track people and correlate databases. In the mean time, we seem to just have an insecure identity system. I don’t see how we lose privacy by having better identity systems.

Intelligent Design is not Science.

According to federal judge John E. Jones III, intelligent design is not science; I agree completely.

There is a nice quote of the judge’s opinion in the New York Times article:
“To be sure, Darwin’s theory of evolution is imperfect,” Judge Jones wrote. “However, the fact that a scientific theory cannot yet render an explanation on every point should not be used as a pretext to thrust an untestable alternative hypothesis grounded in religion into the science classroom or to misrepresent well-established scientific propositions.”

Justice

I am very interested in the Roberts confirmation and I think it is important that it be taken seriously, however I am disappointed that so many Americans (Senators and Representatives included) seem to think that the Supreme Court has sole authority to deal with issues of individual freedom. My reading of the US Constitution’s Article V is that Congress can amend the Constitution. Granted, it is difficult to pass amendments, but it is the duty of the Congress to do so if need be.

Finally, there has been much talk in the news about the “so-called right to privacy”. To those who look for literal statements affirming such a right, I ask, what do these two ammendments mean:

Amendment IX:

The enumeration in the Constitution, of certain rights, shall not be construed to deny or disparage others retained by the people.

Amendment X:

The powers not delegated to the United States by the Constitution, nor prohibited by it to the States, are reserved to the States respectively, or to the people.

The 9th amendment was inserted specifically because of the fear that enumerating rights would eventually lead some to argue any right not enumerated was not granted. So, in my view, the 9th amendment specifically says that you cannot limit the rights of the individual to those that appear in the Constitution. Within our system, I think the question of a right to privacy is a bit backwards. Instead, we should consider how and under what circumstances the government may invade our privacy.

Crippling Inflation

There is an interesting news story at Wired titled Petroleum Joyride Almost Over?. It discusses the effects and timing of Peak Oil (the point in time when oil production is maximized).

Apparantly, some people think that the peek is going to happen very soon (before 2010 or perhaps even now). Furthermore, it appears that it could have a very serious effect on world economies.

After seeing the dot-com bubble, it seems that when things are good, humans have a very difficult time believing they could ever get bad again. I think it does not speak well of our collective decision making abilities that we do not have a good plan for this issue. It seems like the only plan is to hope that the magic of technology will save us.

Networks and Politics

There is an interesting paper on the Arxiv: A network analysis of committees in the United States House of Representatives. This paper examines the voting records and committee structure of the House using tools from network analysis.

Interestingly, in the final figures of the paper, you can see the house turning from control from the left to control from the right as the the Democrats become more bipartisan and the Republicans become partisan.

Hopefully, this kind of mathematical analysis of government will help us to understand the mechanics better. This kind of work could lead to much better “voter sheet” information about candidates.

No Software Patents

Software patents are a tool for quashing independent programmers (commercial and otherwise). It seems that Europe may be on the verge of adopting the United State’s software patent mistake.

Many US programmers oppose software patents in the US and that includes me. It is sad to see Europe moving to embrace what I hope we here in the US can get rid of.

There are many resources about this issue:
FFII: Logic Patents in Europe
EFF’s Patent Busting Project

I am crossing my fingers that Europe will not make the same mistake that the US has.


Spam is a serious problem

I have used the same email address for the past 9 years. This email address collects something like 1500-2000 spam messages per week. Thanks to tools like CRM114 and Spamassassin, I keep most of it at bay (better than 99.5% I am never bothered with). However, most users do not have such spam filtering: it is still too hard.

This is one area where I am quite critical of “Industry Leaders” such as Microsoft. According to Pew, Spam and the authenticity of email is one of the biggest problems facing internet users today. If a couple of open source programmers (such as those who have written CRM114 and Spamassassin) can make my spam problems largely disappear, why hasn’t Microsoft integrated spam filtering into the OS to defeat IM spam, Email spam, Blog spam, and so on? If there was an effective engine built into Windows (which many people use) spam would be on the ropes. Currently only 50 in one million people respond to spam, but that is enough to keep it profitable. If MS installed spam filters on 95% of the world’s desktops, we may see that number fall from 50 to 3 people in a million, which may put many spammers out of business (due to not making enough money).

As a (small time) blogger, I also get many spam posts. I am trying to deal with it using a Wordpress Spam plugin, we will see how it goes.

The bottom line is that there are 6 billion people. Suppose if even 1/1000 of them want to sell you something (which I guess is an underestimate), we can expect 6 million potential spammers. If communication is free, we can expect more than 6 million offers. Obviously, this would mean all communcation is totally dominated by spam. Reminds me of the Minority Report. Spam is a very serious threat to the value of communication networks.

Register to Vote

I took a few minutes today to finally print forms to register to vote. The EFF has a voter registration page. I tried to find forms locally, but no luck. I will get these in the mail tomorrow.

Here in Florida, the deadline to register is 29 days prior to the election. Today is 46 days prior (just 17 days left to register).

Funding Politics

I tend to think of myself moderate to left leaning. I don’t like to see people become cheerleaders for a particular political party. Too many people treat politics like sports and pick a team to pull for, and they pull for that team no matter what. Another end of the spectrum is to say “that the similarities between the two parties tower over the dwindling differences” implying that it does not matter which of those wins. At least there is a major difference between how the democrats and the republicans are funded.

The US Census Bureau tracks voting in the US. In 2000, 60% of citizens and 86% of registered voters turned out to vote (interestingly, women have had better turnout rates than men since 1980). In that same election cycle, of those registered, 44% were Democrats, 33% were Republicans and 23% were independents or registered with minor parties. This also means that there were 33% more registered Democrats than Republicans (but as the article mentions, independents always decide the outcome).

Despite the fact that there were 33% more registered Democrats, OpenSecrets tells us that Republicans raised 38% more money! Democrats raised $8.25 per registered Democrat, while Republicans raised $15.23 per registered Republican. Even if Republicans are not as successful registering citizen voters, they can be more effective in getting out their message due to raising more money in total, and almost twice as much per voter. Where does this extra money come from? Of the top 10 contributors to the Democratic Party, 7 were labor unions, 2 were corporations, and 1 was a PAC. Of the top 10 contributors to the Republican Party, 8 were corporations, 1 was an activism organization, and 1 was a PAC.

This funding situation can be improved. Republican 2000 presidential hopeful Alan Keyes had one thing right: “no dollar vote without a ballot vote”. I would go even further, both Arizona and Maine have full publicly funded elections. This makes sure that voters are funding elections, and not large corporations or special interests. If you have ever wondered why John McCain is so independently minded (and spearheaded federal campaign finance reform), it might be that he is elected through publicly funded elections.

I am really getting off the tracks here, but the point I wanted to make is that there are real and major differences in the way that the Democrats and Republicans are funded. OpenSecrets can help you “follow the money”. Also, FundRace is an interesting site to check to see how geography and funding are correlated. Public Campaign and Fair Elections are working to change the way elections are funded. Lastly, the Center for Voting and Democracy is working to improve our voting systems, including advocating a greatly improved system called Instant Runoff Voting.