14. Charity

Free For All. Go to the Table of Contents. Vist the Gifcom.

The open source movement is filled with people who analyze software, look for bugs, and search for fixes. These quiet workhorses are the foundation of the movement's success. One member of this army is David Baron, an undergraduate student who started out at Harvard in the fall of 1998 and found, like most students, that he had a bit of spare time. Some students turn to theater, some to the newspaper, some to carousing, some to athletic teams, some to drinking, and most choose one or more of the above. A few students search out some charitable work for their spare time and volunteer at a homeless shelter or hospital. Law students love to work at the free legal clinic for the poor. Baron, however, is a bit of a nerd in all of the good senses of the word. He's been working on cleaning up Netscape's open source browser project known as Mozilla, and he thinks it's a great act of charity.

Baron spends his spare time poking around the Mozilla layout engine responsible for arranging the graphics, text, form slots, buttons, and whatnot in a consistent way. Graphic designers want all web browsers on the Net to behave in a consistent way and they've been agitating to try and get the browser companies (Netscape, Microsoft, iCab, WebTV, and Opera) to adhere to a set of standards developed by the W3C, the World Wide Web Consortium based at MIT. These standards spell out exactly how the browsers are supposed to handle complicated layout instructions like cascading style sheets.

Baron looked at these standards and thought they were a good idea. If all web browsers handled content in the same way, then little buttons saying "Best Viewed with Microsoft IE" or "Best Viewed by Netscape" would disappear. The browser companies would be able to compete on features, not on their ability to display weirder web pages. It would cut the web designers out of the battle between Microsoft and Netscape.

The standards also help users, especially users with different needs. He told me, "Standards (particularly CSS) encourage accessibility for users with all sorts of disabilities because they allow authors to use HTML as it was originally intended--as a structural markup language that can be interpreted by browsers that display things in nonvisual media or in very large fonts for users with poor vision. Changing the HTML on the web back to structural markup will also allow these browsers to produce sensible output."

Handling standards like this is always a bit of a political problem for companies. Every developer tries to stick their fingers in the wind and see which standards will be important and which ones will fall by the wayside. Microsoft, Netscape, iCab, WebTV, and Opera have all been wondering about the cascading style sheets because they're sort of a pain in the neck. Ideally, the graphics designers will be able to come up with graphics rules for a set of web pages and they'll be applied using the rules set out by the reader.
CSS is not about "total control by the author of the page," says Baron. "The basic idea of the cascade is that user preferences (through the browser's UI or possibly through a user CSS style sheet) and author suggestions (contained in CSS style sheets) combine to produce the formatting of the page."

A modern catalog conglomerate, for instance, may have two branches. One would be aimed at middle-aged men who dote on their cars by giving them endless wax jobs and cleaning them forever. Another might be aimed at young mothers who dote on their children, in part by keeping the home as clean as could be. Normally, the catalog company would use different designers to create very different-looking catalogs. One would come with retro, hard-edged graphics covered with racing stripes, and the other with floral prints. What happens when these catalogs head to the web? Normally two designers would give two different websites two different looks.

What if there is one cleaning product, say a car wheel cleaner, that appears in both catalogs? In the old days before cascading style sheets, both designers would have to do up each page separately. A well-designed system of cascading style sheets would let one web page for the product display correctly on both sites. It would pick up either the floral prints or the racing stripes automatically when either site called it up.

These standards are notoriously difficult to enforce. Armies around the world dream of turning out perfect privates that can be inserted into any conflict in any platoon without any retraining. Newspapers dream of having interchangeable reporters who can cover the White House or a cricket match in India. It's no wonder that the web industry wants the same thing.

Baron told me, "I got interested in Mozilla because I'm interested in web standards." He noticed that a group known as the Web Standards Project was running a political campaign to pressure the browser companies to lay out pages the same way (www.webstandards.org).

"A group of developers got together and said, 'The browsers aren't supporting the standards' and this makes it impossible to create pages," Baron explained. "If every browser supports the standards in a different way, then you have to design a different version of the site for each browser. Or, more realistically, web designers resort to hacks that make the page legible in all the 'major' browsers but not accessible to people with disabilities or people with older computers."

Of course, it's one thing for a web designer or a web master to take up this call. Baron, however, was just a college freshman who framed this as volunteer work. When he happened upon the Web Standards Project, he heard their message and saw an itch that he wanted to scratch.

"I want to see the standards supported correctly. Someone's got to do it," he told me. "I might as well be doing this instead of playing around and looking at websites all day. A lot of people do volunteer work, but not a lot of people get to do volunteer work at this level. It uses what I know pretty well. A lot of students who are very smart end up doing volunteer work which doesn't use their skills. When you can do volunteer work that uses what you know, it's even better."

So Baron would download the latest versions of the Mozilla layout engine known as Gecko and play with web pages. He would create weird web pages with strange style sheets, load them up, and watch where they broke. When things went wrong, he would write up detailed bug reports and mail them off to the folks doing the coding. He was part of a quality control team that included some Netscape employees and a wide variety of other users on the Net.

This community involvement was what Netscape wanted when it created Mozilla. They hoped that more people would take it upon themselves to test out the code and at least make complaints when things were going wrong. One hacker named James Clark, who isn't related to the founder of Netscape with the same name, actually kicked in a complete XML parser, a tool for taking apart the latest superset of HTML that is capturing the attention of software and web designers.

Baron is one of the few folks I met while writing this book who frames his work on an open source project as charity. Most devotees get into the projects because they offer them the freedom to mess with the source code. Most also cite the practical strengths of open source, like the relatively quick bug fixes and the stability of well-run projects. Most people like to distance themselves from the more political firebrands of the free software movement like Richard Stallman by pointing out that they're not really in it to bring about the second coming of the Communist Revolution. Few suggest that their work is sort of a gift of their time that might make the world a better place. Few compare their work to the folks cleaning up homeless shelters or hospitals. Most don't disagree when it is pointed out to them, but most free software hackers don't roll out the charitable rhetoric to explain what they're up to.

This may just be a class difference. Baron is a sophomore, as this is written, at Harvard and Harvard is, by definition, a finishing school for the upper crust. Even the vast sea of kids from middle-class families and public schools end up talking and acting as if they came out of Choate or Exeter by the end of their time at Harvard. They pick up the Kennedyesque noblesse oblige that somehow commands the rich and fortunate to be out helping the poor with very public acts of assistance. It just sort of seeps into all of those Harvard kids.

Most of the free software members, on the other hand, are kind of outcasts. The hackers come from all parts of the globe and from all corners of the social hierarchy, but few of them are from the beautiful people who glide through life on golden rails. The programmers usually have their heads in strange, obtuse mathematical clouds instead of the overstuffed clouds of Olympus. They're concerned with building neat software and spinning up wonderful abstract structures that interlock in endlessly repeating, elegant patterns. If they were interested in power or social prestige, they wouldn't be spending their nights in front of a terminal waiting for some code to compile.

But if the free software movement doesn't use the charitable card very often, it doesn't mean that the work is too different from that of the homeless shelters. In fact, so little money changes hands that there are not many reasons for people to take their donations off on their taxes. Donations of time don't count. Maybe a few companies could write it off their books, but that's about it.

In fact, Baron is right that work like his can make a difference for people. Software is a growing part of the cost of a computer today. In low-end PCs, the Microsoft OS may cost more than the processor or the memory. A free OS with a free web browser that works correctly can help the thousands of schools, homeless shelters, hospitals, and recreation centers get on the web at a cheaper cost.

The free software charity is often a bit cleaner. Bill Gates and many of the other Microsoft millionaires aren't shy about giving away real money to schools and other needy organizations. Melinda Gates, Bill's wife, runs a charitable foundation that is very generous. In 1999, for instance, the foundation made a very real gift of tuition money for minority students. The foundation has also given millions of dollars to help fund medical research throughout the globe.

Still, at other times, there has been a sly edge to the Gates benevolence. In some cases, the company gives away millions of dollars in Microsoft software. This helps get kids used to Microsoft products and acts like subtle advertising. Of course, there's nothing new about this kind of charity. Most corporations insist that they receive some publicity for their giving. It's how they justify the benevolence to their shareholders.
The value of giving copies of software away is a difficult act to measure. One million copies of Windows 95 might retail for about $100 million, but the cost to Microsoft is significantly lower. CD-ROMs cost less than one dollar to duplicate, and many schools probably received one CD-ROM for all of their machines. Giving the users support is an important cost, but it can be controlled and limited by restricting the number of employees dedicated to particular phone lines. Determining the value of all of the benevolence must be a tough job for the tax accountants. How Microsoft chose to account for its donations is a private matter between Gates, the Internal Revenue Service, and his God.

Consider the example of an imaginary proprietary software company called SoftSoft that gives away one million copies of its $50 WidgetWare product to schools and charities across the United States. This is, in many ways, generous because SoftSoft only sells 500,000 copies a year, giving them gross revenues of $25 million.

If SoftSoft values the gift at the full market value, they have a deduction of $50 million, which clearly puts them well in the red and beyond the reach of taxes for the year. They can probably carry the loss forward and wipe out next year's earnings, too.

The accountants may not choose to be so adventurous. The IRS might insist that they deduct the cost of the goods given, not their potentially inflated market price. Imagine that the company's cost for developing WidgetWare came to $21 million. If there were no gift, they would have a nice profit of $4 million. SoftSoft could split the development costs of $21 million between all of the 1.5 million units that are shipped. Instead of deducting the market value of the software, it would only deduct the costs allocated to it. Still, that means they get a $14 million deduction, which is still far from shabby.

More conservative companies may come up with smaller deductions based upon the cost of duplicating the additional copies and the cost of supporting the schools and charities. Strict accounting measures would be the most honest, but it's hard to know what companies do and what they should do.
Free software, of course, avoids all that paperwork and accounting. The software costs nothing, so giving it away generates no deduction. There's no need for complicated cost accounting or great press releases. It just sits on the web server and people download it.

Of course, it's possible to start counting up downloads and doing some multiplication to come up with outrageous numbers. Windows NT can sell for between $200 and $1,000. There are about 3.7 million web servers running Apache, according to the latest Netcraft poll. If 1 percent qualify as charitable sites, then 37,000 are served by Apache. Of course, not all sites sit on separate machines. To correct for this, assume that each server hosts 10 machines and there are only 3,700 machines using Apache. That's still about $3.7 million in donations.

But numbers like this can't really capture the depth of the gift. Linus Torvalds always likes to say that he started writing Linux because he couldn't afford a decent OS for his machine so he could do some experiments. Who knows how many kids, grown-ups, and even retired people are hacking Linux now and doing some sophisticated computer science experiments because they can? How do we count this beneficence?

Free software essentially removes the red tape and the institutional character of charity. There are no boards. There is no counting of gifts. There's no fawning or flattering. There are no new J. Henry P. Plutocrat Wings for the Franklin P. Moneysucker Museum of Philanthropy. It's just a pure gift with no overhead.

There is also a smooth efficiency to the world of free software charity. My economics professor used to joke that gifts were just very inefficient. Grandmas always bought unhip sweaters for their grandkids. Left on their own, children would give candy and stuffed animals to their parents on their birthdays and Christmas. All of these bad choices must be returned or thrown away, ruining the efficiency of the economy. The professor concluded by saying, "So, guys, when you go out on the date, don't bother with the flowers. Forget about the jewelry. Just give her cash."

Free source software, of course, doesn't fit into many of the standard models of economic theory. Giving the stuff away doesn't cost much money, and accepting it often requires a bit of work. The old rules of gift giving and charity don't really apply.

Imagine that some grandmother wrote some complicated software for computing the patterns for knitting sweaters. Some probably have. If they give the source code away, it ends up in the vast pool of free source code and other knitters may find it. It might not help any grandchildren, at least not for 20 or 30 years, but it will be moving to the place where it can do the most good with as little friction as possible. The software hacked by the kids, on the other hand, would flow from child to child without reaching the parents. The software tools for generating dumb jokes and sorting bubble gum cards would make a generation of kids happy, and they would be able to exchange it without their parents or grandparents getting in the way.
The inefficiencies of gift-giving can often affect charities, which have less freedom to be picky than grandchildren. Charities can't look a gift horse in the mouth. If a company wants to give a women's shelter 1,000 new men's raincoats, the shelter will probably take them. Refusing them can offend potential contributors who might give them something of value in the next quarter.

Free source code has none of these inefficiencies. Websites like Slashdot, Freshmeat, Linux Weekly News, LinuxWorld, KernelTraffic, and hundreds of other Linux or project-specific portals do a great job moving the software to the people who can use its value. People write the code and then other folks discover the value in it. Bad or unneeded code isn't foisted on anyone.

Free software also avoids being painted as a cynical tax scheme. It is not uncommon for drug manufacturers to donate some surplus pills to disaster relief operations. In some cases, the manufacturers clear their shelves of pills that are about to expire and thus about to be destroyed. They take a liability and turn it into a tax-deductible asset. This may be a good idea when the drugs are needed, but they are often superfluous. In many cases, the drugs just end up in a landfill. The relief organizations accept millions of dollars in drugs to get a few thousand dollars' worth of ones they really need.