Call for Papers
Works in Progress
LCA 2004 started at Wed Jan 14 08:00:00 2004.
The IBM HackFest
Update - 14/Jan/2003
The HackFest server is online now -- http://hackfest.linux.conf.au/.
What is a HackFest?
The Jargon file lists a
few definitions of what a hacker is,
but the most appropriate ones in this case are:
- A person who enjoys exploring the details of programmable systems
and how to stretch their capabilities, as opposed to most users, who
prefer to learn only the minimum necessary. RFC1392, the Internet
Users' Glossary, usefully amplifies this as: A person who delights in
having an intimate understanding of the internal workings of a system,
computers and computer networks in particular.
- One who programs enthusiastically (even obsessively) or who enjoys
programming rather than just theorizing about programming.
- A person who is good at programming quickly.
The HackFest is a competition where hackers get to
demonstrate their programming abilities.
What is the goal of the HackFest?
The aim of the HackFest is to write a program that runs on Linux
which can play the cookies version of Tetrinet. Tetrinet is a multi
player network version of the famous tetris game. The cookies version
of the game introduces the concept of special blocks which
allows you to do extra things such as clear lines off the bottom of
your field, or switch your playing fields with another player.
If you're not yet familiar with the game, its probably best to
which is a linux client, and have a few games (or a lot of games :-)
on a Tetrinet server.
How will this work?
Prior to the start of the conference we will be releasing a client
library which allows your program to communicate with the Tetrinet
server. It provides a simple API that allows you to see what your
playing field currently looks like, move or rotate the current piece,
or use a special block.
During the conference (and probably before too) we will have a
Tetrinet server that you can use to test your bot against other
people's bots (or people). You will have to submit the source code for
your program and an explanation of how the algorithms you used work.
On Friday and Saturday we will run the programs against each other.
The winner will be decided based on how well the program plays
tetrinet as well as on the ingenuity of the algorithms used.
The prize is an awesome IBM pSeries deskside server model p615 with
Dual 1.45GHz Power4+ CPUs, 4GBRAM, 2x146.8GB Ultra 3 SCSI 10,000 RPM
Hard Disks, DVD ROM drive, 21" Colour CRT Monitor, and SuSE Linux
Enterprise server 8.2.
The retail value of the prize is over AU$39,000.
- Your program must be able to play a game of Tetrinet, using the
client library interface which is made available to you when you
register for the Hackfest.
- Your program must be released under an Open Source Licence.
- We will be compiling your program from source. If we can't work
out how to compile it you'll be disqualified, so make it easy (see the
next rule)! Also since we'll be reading the program source code, it
will be to your advantage to format it well to make it easy to
- A Makefile must be supplied with the package and by default must
generate a program called "tetrinet_ai" in the current
directory. The program should by default generate no output to
standard output or standard error. Writing a small amount of
information to a log file in the current directory is acceptable.
- The tetrinet_ai program should at least take the argument "-h
<hostname>" to specify which tetribot server to connect
- Your program is not allowed to cheat (including, but not limited
to, using methods apart from the supplied interface to communicate
with the Tetrinet server or clients). If the judges see that your
program that is cheating you'll be disqualified.
- Tetrinet Server configuration. We will be using tetrinetx, a Tetrinet
server which runs on Linux. The relevant option settings will be:
- Individual or team entries are permitted. There is no limit to
the size of a team.
- Only one program per HackFest registration may be submitted, but
an individual or team may register multiple times if they want to
submit more than one program.
- If a team entry wins the HackFest, splitting the loot is up to the
members of that team.
- All entrants must be registered paid-up attendees of Linux.Conf.Au
2004 and must be present at the conference. Mini-conf only attendees
may not enter.
- Linux.Conf.Au 2004 speakers, organisers, and helpers may enter the
HackFest, subject to the next rule.
- HackFest judges and their immediate family may not enter.
- Your program source code and explanation has to be submitted by
12pm ACDT (GMT+10:30, Local Time in Adelaide), Friday January 16th
2004 (that's midday on the second-last day of the conference).
- The winner will be decided by the judges based on how well the
program plays Tetrinet and based on the ingenuity of the algorithms
used by the author(s). The method of evaluation and weighting of
these factors will be chosen at the judges' discretion.
- We reserve the right to change the rules, especially if it would
make the competition more interesting/competitive.
- What programming languages am I allowed to use?
- The client library will provide a C interface, but you're allowed
to use anything you want to. If you use something other than C it's up
to you to work out how to talk to our client library, but remember,
since we have to build your program you don't want to make it too hard
- You say you might change the rules. What do you mean by
- An example of this might be to add a new special block a few days
before the end of the competition. This would be a good test of how
flexible your AI code is and how good you are at doing some last
minute hacking. If the games go on too long, we might tweak the sudden
- What sort of resources can I expect when my program is running
- eg how much memory, number of CPUs, etc.?
- This will depend a bit on what sort of computers we end up with.
I'd recommend you make your program tunable. For much of the testing
during the week people will be using whatever they can get their hands
on - most likely laptops. When running multiple AIs on the same
machine they will be limited for fairness.
- Do I need to know how to do any GUI programming?
- No. The program should by default generate no output nor generate
a user interface (textual or graphical) of any kind. It is of course
acceptable to have debugging modes for your program and during
development you may well want to have a UI to observe what your AI is
- How will we monitor the games during the competition?
- We will use the gtetrinet client in spectator mode to observe the
- I've got more questions about the HackFest; who should I
- You can email the HackFest judges at firstname.lastname@example.org.
Fill out our registration form
to register for the HackFest. When you register you'll get access to
the client library.
Software Client Library
The client library (at least, an alpha/beta version) has now
(28/Nov/2003) been released. To get access to it, register for the HackFest.