The ninth OpenBSD Hackathon will be happening in Canada next week, in Calgary, Alberta. The week long event will begin on May 21'st and run through May 28'th, attended by around 60 OpenBSD developers from all over the world. I will also be attending for the first few days, providing live coverage on KernelTrap.org, speaking to developers and observing some of the magic as it happens from May 22'nd through May 24'th.
To get a better feel for the upcoming event, I spoke to several OpenBSD developers. Henning Brauer, an OpenBSD contributer from Germany described the event as, "the highlight of the year for most of our developers." Nikolay Sturm, also from Germany, added, "hackathons are focused on two aspects, they are an important technical event and they are *the* OpenBSD social event." Peter Valchev, who lives in Calgary and is very involved in making the hackathon happen, talked about the value of face-to-face communication, "normally, we have to sit down and write a long explanation email in order to communicate, and people are in different timezones, so the feedback is often less than fast. Being able to go directly up to somebody and perhaps even work together on a task in real-time, is a big plus." Thierry Deval, an OpenBSD developer from Belgium added, "the reduction in distance and time augments the dialog between developers working in related areas, and some new projects can even spontaneously emerge on their own."
Brief OpenBSD History
OpenBSD was created by Theo de Raadt [interview], originally forked from NetBSD 1.1, a project Theo also helped to create. OpenBSD 2.0, the first OpenBSD release, was officially announced in October of 1996. Since that time, releases have been made every six months, with OpenBSD 3.7 [story] being the next official release, scheduled for May 19th 2005.
Members of the OpenBSD team have regularly audited the core code since the summer of 1996, resulting in a notoriously secure operating system that boasts, "only one remote hole in the default install, in more than 8 years!" Made available under the BSD license, OpenBSD focuses on providing truly free software, regularly fighting for this right, and willingly rewriting complex software when a license is found to be incompatible or questionable. OpenBSD's latest campaign worked to provide as many unencumbered drivers for current wireless hardware as possible [story], a successful campaign that will be apparent in OpenBSD 3.7.
I was curious to understand more about what happens at the OpenBSD hackathons, and if there is a goal or focus behind each one. Henning Brauer laughed and explained, "there is no focus for the hackathons. I mean, get real, you can't work on a single thing with over 50 (over 60 this time) developers." Peter Valchev added, "there is no specific focus for any of the events, everyone gets together and works on whatever they want to. Really it all works out by itself, because the developers know what's important to work on - it's not something they need to be told." Nikolay Sturm added, "most people have a clear idea what to do, others just do what they like to. I think this is an important aspect however, OpenBSD is not a project with a big master plan (milestone X and subproject Y), we do what we like and suddenly something cool springs into existence." Regarding productivity at the hackathons compared to the rest of the year, Peter added, "I think it's obvious that a lot more gets accomplished."
Bob Beck, an OpenBSD developer from Edmonton, has long been involved with the hackathon, "I've been involved in pretty much all of the hackathons." He explained, "the hackathon usually sees me driving down from Edmonton to Calgary (about 3 hours) with a pickup truck full of computer equipment, and Theo, I and a few early arrivers usually spend about a day setting up some serious infrastructure." He went on to note, "really, It's all about dedicated time to focus on projects, and work with the other developers on them, without other distractions. As such it's invaluable. A lot of stuff we do gets done here that we simply wouldn't be able to accomplish as fast, or as well, without this kind of intense focus and interaction."
The actual hackathon will be happening in a conference room at a hotel in downtown Calgary, with plenty of computers and a high speed network. However, Henning noted that this isn't the only place were stuff happens, "an insane amount of the cool new stuff gets born in the pubs where we hang out during the hackathon." Nikolay stressed the importance of the social events, "we have a barbecue at Theo's at the beginning of the hackathon, to get to know the new people." During the event, Nikolay explained, "we go out for food or coffee in small groups." And at each hackathon, "we have a hiking day in the mountains, which is always a highlight."
Bob Beck, who is responsible for making the barbecue happen, notes, "the barbeque has become sort of a tradition, We host it at Theo's house, normally with whatever meat I've managed to bag the previous hunting season. Normally it's moose and/or deer marinated kebabs with raisin rice pilaf. The recipe is recorded for posterity in any openbsd distribution in /usr/share/games/recipes, in hackathon proportions."
"The normal tone of the barbeque," Bob continues, "is me grilling a lot of meat with a lot of smoke and fire, with a lot of people eating and drinking. Often the ancient swedish sport of beer hurling is practiced with our expert coach Niklas Hallqvist. We have this at the start of the hackathon as a kind of icebreaker and way to let off a bit of steam before we all bear down for a week of solid hacking. It's a good way for everyone to get together, get aquainted or re-aquuainted, and have a bit of fun before getting down to some serious stuff."
Of course, it's far from being just fun and games. Nikolay noted, "as a technical event Theo is doing a great job in providing us with all the infrastructure we need in order to get into deep hack mode for one week (nice hotel, lots of hardware, net, ...). Depending on the individual this means quite different things, some people use the time to focus on hard problems in their field, others just do their regular work but with greater intensity. Some people work alone others in teams."
When asked about his plans at this hackathon, Nikolay replied, "right now I am a ports person, so I mainly commit other people's ports submissions after cleaning them up. In order to improve my skills, I want to get into active coding in the OpenBSD base system. I just started working on a driver I need for my laptop and hope to push this project forward at the hackathon."
Thierry Deval discussed his first hackathon, two years ago, "I wanted to do some FireWire development. I had some hardware for that: an Apple PowerBook G4 17 inch and a Dell Latitude with a CardBus FireWire card, plus some HDs and a camera... You know what, I didn't do much of it, but I rather picked up an idea that Theo threw to the crowd: make malloc(3) use mmap(2)! Yes! It's a project that started there. At the end of the week, I already had a working proof of concept..." Thierry's work on having malloc use mmap allows malloc and free to use random memory locations for greater security.
"This year, I still want to work on FireWire," Thierry continued, "but who knows what I'll work on in the end... Maybe malloc(3) will still be part of the game, because we still have some hickups with it..."
Henning Brauer talked about his plans for this hackathon, "there is some serious cleanup to do in pf, that Ryan and myself started over the last days in Montreal already. This is a prerequisite for finally letting pf make use of the interface groups stuff I wrote a year ago. Claudio and myself will spend some time in the routing code, cleaning it up and looking for performance bottlenecks (not that we're slow now, but we believe we can do even better). We'll work on bgpd too of course, likely some v6 stuff and changes in the filter language, mainly, the ability to define a filter set and apply it later on multiple times."
"And of course something completely unforseeable will happen," Henning continued, "and it likely will be cool. I have no idea what it will be, but it always has been the case in the past :)"
Bob Beck mused, "I'll probably be working on a bunch of stuff this hackathon including spamd improvements, ethernet driver and pf stuff, as well as possibly some stuff in the RAID driver area, hopefully helping Marco Pereboom out with some good stuff happening in that area."
OpenBSD creator Theo de Raadt reflected on past hackathons, "a few hackathons ago we had a slogan of 'shut up and hack', this is because hackathons are not conferences. People don't come to chit-chat, but to do what projects do. Some other projects hold discussion meetings, I would call those talkathons. We don't discuss, we do. (of course, to do, we discuss, but pie in the sky is not really interesting). The entire hackathon happens with solid development hardware right there in the room, everything we need." As an example of this "do" rather than "discuss" attitude, Theo added, "at three previous hackathons we have managed to bring at least one architecture up fully multiuser."
Most developers pay their own way to Calgary, with the project paying the base costs at the hotel. Theo explained, "that means that about 50 people are paying their own way to come from around the world to be here." I asked Theo where the funding provided by the project comes from, to which he replied, "from donations, and from CD sales, basically whatever we can do goes to fund it. This time around, a very large donation has helped to pay for much of the event." When asked how much money is spent, Theo noted, "suffice to say, I spend whatever I (or the project) can afford to try to make sure the event is a success."
The common theme from everyone I talked to was an eager excitement regarding the upcoming hackathon. Guaranteed to be a busy and productive week, it will be interesting to see what developments emerge. Be sure visit KernelTrap during the hackathon week for complete coverage.
OpenBSD 3.7 is already shipping, with numerous reports of received CDs already posted to the OpenBSD -misc mailing list. Officially, its not released and available for download until this Thursday, May 19th, on Theo's 37'th birthday. An overview of "what's new" can be found on the OpenBSD 3.7 page, with a more complete list of changes found here. All OpenBSD releases can be ordered online, along with t-shirts and posters. Proceeds from the sale of CDs and other merchandise helps to fund the OpenBSD project, making development of the operating system and events such as the OpenBSD hackathons possible.