The book Beautiful Code: Leading Programmers Explain How They Think is
about to be released, says Greg Wilson, one of its editors (the other is Andy Oram, who was my editor for Producing Open Source Software). I wrote a chapter for this new book: Subversion’s Delta Editor: Interface as Ontology, about the
svn_delta_editor_t interface in Subversion. When the book is released, I’ll put the chapter online under a free license (a lot of the other authors are planning to do that too, I believe). All profits from the book go to Amnesty International.
The book Beautiful Code: Leading Programmers Explain How They Think is
The letter below was sent by my friend Jim Blandy to the governor of Oregon, Jim’s state. In it, Jim asks what Oregon can do to avoid a disaster like the recent group deportation of immigrants in Massachusetts that resulted in children being abandoned, as described on National Public Radio and in the Boston Globe.
Before I say more, please read Jim’s letter:
From: Jim Blandy Subject: Abandoned children To: [a mailing list we're on] Date: Fri, 9 Mar 2007 21:53:37 -0800 Folks, I'd never use [this mailing list] for campaigning, but I think this goes far beyond politics, and well into the territory of national disgrace. I've sent the following letter to Oregon governor Ted Kulongoski; please read the articles I've linked to, and think of *something* you can do. If abandoning 7-month old children doesn't move us to more than a sophisticated sigh about how far things have gone, we don't deserve a decent country. --- Dear Governor Kulongoski, NPR's March 8th Morning edition and the March 9th Boston Globe reported on an egregious and shameful dereliction of our responsibility to the most helpless in our country: a Massachusetts factory was raided on March 6th, and scores of workers accused of being in the United States illegally were flown to a Texas detention center before state authorities could determine whether there was anyone able to take care of their children. According to the Globe: Two young children were hospitalized yesterday for dehydration after their nursing mothers were taken away, state officials said. Another 7-year-old girl called a state hot line seeking her detained mother. It was unclear last night where their mothers were. I can't express how angry and ashamed this news makes me. Let us assume all of the people transported to Texas were indeed in the U.S. illegally; there is no imaginable justification for abandoning their children in this way. When we imprison a murderer who is a sole caregiver, we take better care of their dependents than this. There is simply no legitimate law enforcement need that could justify such negligence. I have three questions: - Oregon has its share of illegal immigrants. I am firmly in favor of enforcing the laws that our state and national legislative bodies have agreed on. What assurance can you give me that a disgrace of the sort occurring now in Massachusetts will not happen in Oregon? - Who is responsible for ensuring, when a sole caregiver is found to be residing in Oregon illegally, that the children they care for will be taken care of appropriately? - What is that responsible party's position on the Massachusetts raid? Do they feel it was properly conducted? If so, would they do the same here? If not, what steps have they taken to ensure this will not happen again? I understand that the Department of Homeland Security conducts immigration raids, and that the DHS is a federal department, not controlled by the state of Oregon. But if a debacle like this were to occur here, Oregonians would hardly be satisfied to hear that there was nothing to be done, and from what I have read of you, I do not believe you would offer such an explanation. Sincerely, Jim Blandy [URLs given here]
Bravo for Jim — we should all ask the questions he’s asking. What Governor Kulongoski probably won’t say in reply is that this is how our immigration system is supposed to work. The whole point is to have a large number of people around willing to labor at low wages, but unable to be involved in civic affairs. Solution: make them officially illegal, but unofficially tolerated, as long as they don’t raise too much of a fuss — and brutally deport a few now and then to make sure they stay in line.
I’ll bet African Americans recognize this pattern pretty well.
Am I too cynical? Ask yourself this question: why don’t we simply crack down on businesses that employ illegal workers? After all, if we wanted to end illegal immigration in this country, we could do it in two seconds. Illegal immigrants aren’t exactly hard to find. Just go to every restaurant, farm, landscaping company, etc, in your precinct, and start fining the employers. That would end the “problem” pretty quickly, wouldn’t it?
But no, instead we harass and hound the immigrants. We talk, incredibly, of building a seven-hundred mile fence along our border to keep them out, as though they’re not right here next to us the whole time, busing our tables, picking our fruit, cutting our lawns. This is just the American way, apparently: bully the weak, before doing anything that might annoy businesses or put upward pressure on wages.
I don’t think what happened in Massachusetts was some sort of one-time exception. Perhaps it was unusually cruel… but more likely it was just unusually publicized. Here’s another raid that made it into the press: Lockdown in Greeley, excellently reported on by Marc Cooper in The Nation.
How many times must this happen before we admit what we’re doing?
In 2005, Nat Torkington edited a series of posts called Burn In over at O’Reilly Radar. He described them as “stories about how alpha geeks got into computers in the first place“. I’m not really an alpha geek, but he ran my essay anyway. I asked Nat if he’d mind my using the same material to start my own blog (which I hadn’t yet done at that point), and he said it was fine. Here it is, slightly revised.
In the early 1990’s, the Oberlin College Computer Science Department was a hotbed of free software activity. The sysadmin, Chuck Van Tilburg, encouraged the students to help maintain the department’s servers; the students responded by installing GNU programs and documentation, and tutoring newbies in how to use them. Quite a few even contributed code back to the GNU project. Now, I’d used computers before coming to Oberlin, and I thought I understood how programs worked: you started them up, they did something, and when you were done you shut them down. If you wanted different functionality, you shopped around for a different program. So I still remember the shock that went through me the first time I started up the GNU ‘info’ browser on the Oberlin CS machines. The screen gave a few basic instructions for navigating the Info hyperlinks, then below that it said: “PLEASE ADD DOCUMENTATION TO THIS TREE. See blah blah blah for instructions on how to do so.”
The system was inviting me to improve the system! No computer had ever done that before. It had never occurred to me that the system documentation was just files, no different in principle from the files I saved from my word processor when writing a paper for class. But when I saw the Info tree inviting me to make it better, I suddenly understood. Perhaps it is only one of those ex post facto artificial memories, but I recall that I formed a tentative hypothesis then that the entire system worked this way, and that if I learned the right technical details, I could Make Things Better too. Testing this hypothesis became my highest priority; perhaps it still is.
The other important thing about the Oberlin CS Lab in those days is, in retrospect, a sad commentary on the nature of progress:
College dorms were not networked then. If you wanted access to the CS servers, or even just to check your email, you had to go to the Computer Science Lab. This was a small room with twenty or so workstations, mostly 9600 baud text terminals but also a few graphics workstations. So at any hour of the day or night, you could wander into the Lab and find other CS students, working on programs, or installing some new software on the department’s servers, or just hanging out.
I realize now that we had caught a brief, golden moment in time. The Internet was up (without the World Wide Web at that time), but networking had not yet penetrated to every corner of life. Those wanting to get serious work done on a computer were forced to be in the same room with each other.
This had a tremendous effect. People shot questions across the room; people traded code; people came and looked over each others’ shoulders and offered tips on how to use the editor (usually Emacs) better; people maintained files of hilarious quotes overheard in the Lab, and wrote programs to serve up a randomly chosen quote at login time. People played games together, did their homework together, designed cool hacks together, explored the nascent Internet together.
It was a true programming community. Shortly after my epiphanous encounter with the Info browser, a Lab regular named Jim Blandy (now a GNU toolchain hacker at CodeSourcery) pointed me at Richard Stallman’s GNU Manifesto, and I remember reading it and thinking “Yes, I understand, this makes total sense.” At the time I didn’t know why, but now I think I do: the GNU Manifesto made sense because I was already living in a sharing community. And since my first exposure to computer programming took place in that environment, I simply assumed that kind of community was the norm.
After college my first jobs were in free software, and (except for a brief interlude) that’s what I’ve been doing ever since. I have an idea that, at least in terms of information if not physical goods, the whole world could be like the Oberlin CS Lab was: a sharing community where people assume that improving the system is within anyone’s reach.
That’s probably a lot to hope for… but why not see how close we can get?