LCA 2006: The Hackfest

Posted: Thu, 26 January 2006 | permalink | No comments

There's a fairly standard set of activities that go on at linux.conf.au each year -- keynotes, tutorials, seminars, miniconfs, BOFs, lightning talks, keysigning, etc. The hackfest is a standard part of the program, but one which (in the past) maybe hasn't gotten the attention it deserves. I think this is because, in 2004 and 2005, the hackfest was a fairly narrow task -- in Adelaide (2004) contestants had to write a tetrinet client (fairly complex), and in Canberra (2005) contestants had to write either a GUI or an AI for spellcast (a fairly esoteric game that nearly nobody has ever heard of).

Prior to this year, I'd never participated in a hackfest. I've never played tetrinet in my life, and I knew I had no hope of writing an AI for spellcast. Also, since the contest in both cases ran for most of the week, to be competitive I figured you had to spend all of your spare time working on your program, and there was beer to be drunk, so I decided it was a bad use of my time.

This year, though -- phwoar. A totally different problem set, a new way of running the hackfest. Far more approachable for a much broader collection of hackers, and since it was a 4-hour session, you knew how much time you had to invest up-front.

I really appreciated that there was something for pretty much every type of competent programmer. One task, for instance, was to build a config GUI for the ccontrol tool, another was to write a Sudoku puzzle generator. These aren't simple problems, but I'd say that most people I'd call a programmer could make a good showing at one (or both) of these problems.

At the same time, though, there were some really low-level problems (like optimising a C program or turning some PPC64 assembly code back into the original C function). These were interesting for me, as it's not something that I'd ever touch myself in the normal world, so it was nice to be able to submerge into something like this for a little while.

There were even a couple of problems that didn't require much programming skill -- fix a corrupted gzip archive, and fix a corrupted filesystem image. These are difficult problems, but don't (necessarily) require the production of reams of code to solve.

To be able to win the competition, though, you need to have a broad range of skills. This is entirely appropriate (although it rules me out of the running) as a true hacker is adaptable to new problems. With the previous competitions, if you happened to luck out and be a tetrinet or spellcast guru, you had the competition in the bag. This competition will slightly favour someone who is a PPC assembly expert over someone who doesn't know much about anything, for example, but your PPC guru (who can't do much else) is going to get 0wz0red by the problem-solving, google-loving generalist.

The time limit aspect was a very, very good move as well. It meant that I could accurately estimate, up front, my total time commitment to the game. I didn't have to worry about getting flogged by someone who dedicated themselves day and night to cracking the problems while I was out stonegrilling my dinner and emptying barmates. Now I only have to worry about getting flogged by people who are just Better Hackers -- which I have no problem with. It was also great to be able to switch on the iRiver and bury myself in the problem for a few hours, instead of putting it off all week and then bodging up a poor solution in the last few hours.

So, kudos to Chris and the rest of the team who ran this year's hackfest. I really enjoyed this year's competition, and I hope that next year will be equally interesting.


Post a comment

All comments are held for moderation; markdown formatting accepted.

This is a honeypot form. Do not use this form unless you want to get your IP address blacklisted. Use the second form below for comments.
Name: (required)
E-mail: (required, not published)
Website: (optional)
Name: (required)
E-mail: (required, not published)
Website: (optional)