It's getting late in the hackathon. I can tell, because I have to think hard to remember what day it is. (Thursday, or at least, that's what somebody in the lobby told me). Except for occasional breaks for food and sleep, I have hardly looked-up from my laptop for 3 days now. I've been chasing a bug through the multi-processor initialization code (certain features, including SSE instructions, were not initialzed properly on secondary processors), and having finally fixed it, I finally had the chance to get up and take a look around.
And wow. A lot has happened in 3 days.
Incidently, If you're wondering what a typical day in the hack room is like, I can tell you, having just lived three almost-indistinguishable ones. It goes pretty much like this:
- 9am. Wake up. Bathe. Wander to hack room.
- 9:30. Check if last night's make build worked. If not, install the latest snapshot and do a cvs up to grab the late-night changes. Swear and curse until you have a working build again.
- 10:00. Read mail. If you broke anything yesterday, someone will be yelling at you this morning. Fix it.
- 10:30. Tummy rumbling. Time for breakfast. Ping the room to see who else needs food. Wander off to breakfast place, and wave at other OpenBSD developers who are inevitably leaving when you arrive.
- 11:30. Finish breakfast. Back to hack room.
- Noon. Check email. Hack. Find bug in something totally unrelated to what you happen to be working on. Take a 3 hour diversion to fix it. Email changes out for review.
- 3pm. Tummy Rumbling again. Ping the room for lunch and beer takers. Wander down the street to food (Usually, either chinese or a falafel). Eat. Pay. Leave.
- 3:30. Back at hack room. Check email. Fix what you broke. Hack.
- 6:00. Hit the tricky spot in the code you are working on. Need thinking time. Off to pub (with wireless).
- 6:45. Two beer down. Brain working again. Wander back to hack room to work.
- 10:00. Dinner. Ping the room again for hungry developers. Head to Pub for dinner. If you have enough developers, gravity will attract others. If not, you may have to head back and do some work.
- 2am. Gravity worked, but the pubs are now closed. Back to hack room. Beat on a chunk of code up until the damn thing works. Compile a kernel. Mail to others for review.
- 3:30. The room is starting to empty out. It must be bed time. Update local source tree to capture the day's changes and kick off a make build. If you're lucky, the tree is intact, and you'll have a fresh build waiting when you come back in the morning.
- 4:00. Crash. Tomorrow is a new day. If you're lucky, you might even remember which one.
Today, Dale (Rahn) just showed me something sick: Java, running on the Zaurus. Two days ago, you couldn't even play an MP3 through headphones on the Zaurus. Now, there's already a functioning JRE. Progress is made in leaps and bounds around this place, especially
in this part of the week, when the various big projects start showing fruit.
The strangest piece of fruit this week is still the idle loop craziness. In addition to the string of "oh look, another known bug that pointed directly at the problem" idle loop anecdotes, there is an unofficial game of "who can shave yet-another instruction out of locore.s" Of course, with the hlt hlt bug out of the way, these single instruction savings don't really mean much. It's like having hangman in the kernel. You do it because you can do it. Bob (Beck) has a name for this type of change. He calls it "turd shining."
Hackathons aren't just about adding code. Theyre also about ripping it out. In the last two days, at least two large chunks of code have gone to the CVS Attic-in-the-sky:
- telnetd. After what seems like years of debate, consensus was achieved: this daemon has no place in a secure operating system. It is gone, and long forgotten.
- Stackable filesystems (such as null and union mounts). While nice ideas on paper, in reality, the implementations have been broken forever. They may reappear one day (done correctly), but for now, they are gone.
It's starting to get quiet in the hack room. That's a pretty good sign that the sun will be coming up soon. Maybe I should consider getting some sleep. After all, I have a diff in the queue. For the first time in three days, I think I have actually earned a little break.