The last few days have been hectic. All things considered, that was to be expected! What I was starting to suspect but hoping wasn't the case: my getting sick. I did, of course- a standard cold. I got over it much more quickly than usual, however; I'm still ill at the moment, but not too sick to function. I was well enough to help the team yesterday, after all.
Day before yesterday was the Java Challenge, which this year was "Code Invaders": write a program to steer a virtual spaceship to score points on five opponents (controlled by programs written by other teams) by shooting them when they aren't shielded, or by having energy at the end of the time limit, or by dumping energy on your home planet. It is fair to say that the contest had problems.
The simulator was buggy. Trying to figure out if a program was working was, at the start, an exercise in futility. Among the problems were the getDistance() function, scoring on zero-energy ships (shouldn't be permitted), delays in getting a shield up (shouldn't happen, but it does), pulses scoring on shielded ships, "always-on-top" preventing debugging, etc. Of course, this level of reliability went all the way to the tournament itself, causing it to be restarted halfway through.
It wasn't a huge tragedy. The game had degenerate strategy. Shooting opponents was largely futile, because a well-programmed ship could never be shot: there is no reason a ship should ever have its shields down when it could potentially be hit, because programs have perfect information about the whereabouts and trajectory of every bullet and pulse in the game. Collecting the energy power-ups was futile, because the ship rotation was so slow that a slight error or a body check will throw the ship off course and it can't easily correct; shots and pulses interfere with steering too, even when shielded. So the best strategy turned out to be "dump every point of energy on home planet; do nothing once you're out of energy". This made for boring final rounds.
The World Finals themselves were more interesting: ten problems. Our team solved two. This is charitable to Albert and very charitable to James: Albert helped me debug problem E, but James was too hung up on his futile effort to solve problem A, which was harder than it seemed. I feel sorry for him- he's frustrated that he didn't get to do a lot during the competition. I solved both of the problems for the team. We're officially tied for 39th with everybody else who got two problems, but with a very late second submission and five time penalties (ouch!), I think we're closer to 50th if they were to include time-based scoring.
After the stunningly unpleasant and boring award ceremony, all the teams were shuttled out to a "surprise location" for a "celebration" after the Finals. Despite misgivings, I went, and found myself in deep asthma trouble because the "celebration" was a rodeo (don't even get my started on my opinions of recreational animal torture in the first place). The busses wouldn't take us back until 9:00p, and this started at 6:30p, so I had to endure two and a half hours. At least the people there were reasonable about letting me not watch and just bail out into the pavillion, to get out of the clouds of dust.
After the rodeo part of this was the dinner, and that was good. Not a lot to say about that other than fun memories of entertaining conversations with staticentropy, as well as James, Albert, and Dr. Smart. And good food. And asthma trouble, despite taking my inhaler and not being entirely in the dust. It did get a little better as the evening wore on- bright sunlight can make my asthma worse, and Texas has that as bad as anywhere. So I got to watch people chasing pigs, which- from their loud objections to being grabbed by computer scientists- was probably more inhumane than the rodeo. It was fascinating, however- just to analyze the algorithms the pigs followed to try to escape. I was still thinking in programming terms!
I also played some table-shuffleboard and watched other people do the same, which was actually really interesting- playing simple parlor games with people from all over the world, except this time not on the Internet. I also took a bit of solace in this: the Russians seem to be extremely good computer programmers, but they suck at aiming little metal pucks on a thinly-sand-covered wooden table!
It was amusing how many TopCoder members there were there, although hardly surprising. It was fun to meet some of them in person- faces and voices to attach to the handles in the arena.
Congratulations to staticentropy for having the fastest correct answer in the World Finals, and congratulations on that 8th-place finish! You definitely deserve the prize. It was cool to see you around, and I wish I had more time to just hang out- but my getting sick and then having this grueling schedule didn't really allow for that. I'll do my best to see if I can make it to the TopCoder Collegiate Challenge 2006, how's that?
In unrelated news, my bank account is finally mine and my mother's name is off it; we worked that out with the bank today. I've got a copy of the legally notarized form she signed in which she relinquished any claim on the account or the resources in it. It's taken too long...