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?