(1) Sat Jan 01 2005 21:01 PST:
Hm, the first entry of 2005. What to say? Something profound--but not too profound. Perhaps a convocation for the new year, something to usher in peace and goodwill. Or I could just squander it by talking about games.

Hey, you know what games are cool? The ones by Steve Hardt. I've played his masterpiece XEvil for years, enjoying its ingenious set of moving parts, cartoony ultra-violence, and randomly-generated 2D playing field. Only recently did I learn that XEvil is Steve Hardt's second released game. XDeathlord was written earlier. It's got the same fun-style (there must be some German word for that) as XEvil, but in a vehicular combat mode instead of a personal combat mode. As such, it uses the X and Y axes instead of X and Z. I haven't been able to really get into the game yet, though, and I'm not sure why. Hopefully it's just my short attention span.

Steve Hardt also wrote a PalmOS game called TREADS, which I haven't tried out yet but it kind of looks like a more refined version of XDeathlord. The screenshots show Steve Hardt's game design philosophy, which I think is sorely lacking in a lot of the games I play for Roundups: a flexible set of techniques to use towards your goals, and lots of random variation within well-defined parameters. Almost every game I like has one or both of those traits (the rest I like because of minimalist simplicity), but they seem uncommon in the games I test for the Roundups. Not sure why.

Sun Jan 02 2005 21:30 PST:
By no popular demand whatsoever, I present the list of Cryptonomicon-Baroque Cycle tie-ins that I haven't seen mentioned elsewhere (qv. NYCB passim). Presented in descending order of plausibility. Contains spoilers.

There are several references throughout Cryptonomicon to the Shaftoes' arrival in America as indentured servants, their escaping at the first opportunity and lighting it for the mountains, etc. I feel kind of lame pointing this out because it's so obvious, but no one else has actually come out and mentioned it, so I will. It's not just the samurai swords in the trunk of the car (though that is the coolest reference).

This I'm surprised no one has mentioned because it's the most interesting tie-in I found. One of the recurring images in The Confusion and The System of the World is that of a hollow or wireframe globe being consumed in flames (it's even the little logo on the spine of my copy of TSotW). I found that exact imagery used three times in Cryptonomicon. It's used twice in the set piece depicting the death of Admiral Yamamoto:

The nose of the plane, then, is a blunt dome of curving struts, like the meridians and parallels of a globe... The plane has been parked pointing east, so the glass nose is radiant with streaky dawn, the unreal hues of chemicals igniting in a lab...

The greenhouse disintegrates around him, the meridians and parallels crumping and rending which isn't quite as bad as it sounds since the body of the plane is suddenly filled with flames.

It's also used near the end in the scene where Bischoff is escaping his sunken U-boat:

Bischoff looks back and up, and sees the forward end of the pressure hull turned into a dome of orange fire, the silhouette of a man centered in it, lines of welds and rivets spreading away from that center like the meridians of a globe.

Its use in the Yamomoto scene is thematically appropriate for several reasons which I could write a whole paper on if I were the kind of person who writes papers instead of weblog entries on this topic. As far as I can tell the Bischoff scene has no reason to use it, except it's very near the end of the book which is where authors traditionally pile on references to the recurring images. So there you go. I think I got all of them because I wasn't looking for them at all and they just jumped out at me, but there might be more.

There's a correspondence between the sinister Investor in Quicksilver who goes around on a big ol' galleon or whatever, and the sinister Dentist in Cryptonomicon who is an investor and who goes around on a big ol' yacht. There's probably no geneaological relationship between them, though.

Near the end of Cryptonomicon Randy makes a reference to "Comstock's cabal". In Quicksilver, that Comstock's ancestor was the C in Charles II's CABAL. Coincidence? Probably.

(5) Mon Jan 03 2005 18:19 PSTTelling Y'all It's An Arbitrage:
I was able to buy a pint of half-and-half (for ice cream) for less than the price of a pint of milk. Why? The ingredients list for the half-and-half: "Milk, cream". Are they using really cheap cream that's cheaper than milk?

(3) Tue Jan 04 2005 16:13 PST:
Hey, Beautiful Soup fans (all others can ignore this entry). Among my other projects I am designing Beautiful Soup version 2.0, which should be much more coherent and powerful, as well as generating better parse trees and having better Unicode support. This will come at the expense of Python 1.5 compatibility and (as always) backwards compatibility with previous versions. Thanks to several incredibly useful contributed patches, I have almost everything figured out, but I have two unresolved issues about nomenclature and operator overloading, which follow. I know there is nothing Python programmers love better than arguing about nomenclature, so have at it.

Consider the following HTML:

<p><b>Foo <i>bar</i></b> <u>baz</u></p>
<div>Some more text</div>

*ML is parsed by Beautiful Soup (and other parsers) into a treelike structure, like so:

One of the two defining features of Beautiful Soup is that it tries harder than other parsers to build this tree even when the markup is bad, and will always give you some sort of tree, on the assumption that if you wanted a ParsingIsHardLetsGoShoppingException you would have created one yourself. But one of the things missing from Beautiful Soup v1 is (to refer to the tree above) any notion of the relationship between the P tag and the DIV tag, which I've discovered can be a very important relationship to have access to when you're screen-scraping.

Looking at the tree it's obvious that the P tag and the DIV tag are siblings; they're right next to each other on the same level of the tree. But there's no easy way in Beautiful Soup to get from the P tag to the DIV tag. The .next member of the P tag is the B tag, because it was the thing *parsed* immediately after the P tag. You have to get the parent of the P tag (the root of the document), then get the list of its children, then go through it looking for the P tag, then see what the next thing is.

In Beautiful Soup v2, the P tag is going to have some pointer to the DIV tag, and vice versa. This will only be useful for relatively well-formed HTML, but when you need it, you need it.

However I'm not sure what to call these new members. previous and next are already taken as referring to "previous/next thing parsed" and I want to leave that alone. The only other ideas I have are previousSibling and nextSibling. Do you have any other suggestions?

The other defining feature of Beautiful Soup is that it comes packaged with tree-traversal methods, inefficient to run but very efficient to not have to write yourself. There are two such methods. The main one is called fetch and it searches the tree for whatever you're looking for, returning a list of everything that matches. This is aliased (in v1 and v2) to the method call operator __call__, so in the example above you'd write soup.fetch("b") or just soup("b") to get a list containing the only B tag.

But if you know there is only one B tag, it's a pain to call fetch and then take the first item in the resulting list. So there's a helper method called first that does it for you. In Beautiful Soup v2 I want some operator-overloading magic for the first operator. I can't think of anything suitably Pythonic, though.

Overriding __getitem__ would look OK, but I'm already using it to get a tag's attributes, ie. a['href']. So I've got two current contenders. The first is the dot operator (__getattr__). The dot operator looks the nicest (soup.head.title is lovely) but it also happens to be used for member and method access on objects. I'd rather not have a solution that does one thing when you call .title and another thing when you call .fetch, especially when you might be parsing some XML or made-up markup language that has a "fetch" tag. It also seems like it would slow down the parsing a lot.

The second contender is the % operator (__mod__). I can't explain why I like (soup % head) % title except that I think it's funny. Unfortunately the joke is too complicated to express in words, so you'll either get it too or you'll just have to take my word for it. On the other hand, if you took the modulus operator at its word you'd expect soup % head to give you the whole document but without the HEAD tags, which is totally not what first does. The other possible reference is to the string interpolation operator, but first is searching for a 'string', not inserting one. So it's not very intuitive unless you share my sense of programming humor.

I may just not create any shorthand for first since it is already shorthand for fetch()[0]. It would be nice to have something clever and elegant, though, the way we use the method call operator as an alias for fetch. Again, I need ideas.

(6) Wed Jan 05 2005 13:27 PST:
Got my braces (mostly) off today. There are tiny bands of braces still on my front teeth, making my mouth look like one of those old video games where you keep playing the same levels over and over again, but every time the platforms get shorter and harder to jump onto. Those come off in 2 weeks when I get the retainers.

(3) Wed Jan 05 2005 13:30 PSTSpot The Villain:
Having trouble figuring out which guest star in a Star Trek spinoff is the villain? Just keep around this list of self-justifying catchphrases. Use of any phrase on the list is guaranteed to identify the speaker as the villain of the episode:

"We had no choice!"

"It was the will of the people!"

"Don't you see?"

And my personal favorite, "I am the Federation!"

(3) Thu Jan 06 2005 22:16 PSTOyster Mushrooms Rockefeller:
You come up with a great name for a dish and then it turns out someone else came up with it in 1998. They provided no recipe, though, so this is still groundbreaking stuff. I made this tonight for my "secondhand-eponymous dishes" mini-dinner party (also on the menu: Caesar salad and bananas Foster).

Basically you are going to put oyster mushrooms at the bottom of a ramekin (to simulate an oyster in its shell), and then fill it up with your favorite Oysters Rockefeller topping, except a little goopier to make up for the lack of oyster liqueur. Then you bake it and broil it. Here's the recipe I synthesized which tastes good, though I have no frame of reference to compare it to. It makes 4 ramekins worth.

MUSHROOMS

4 oz package mushrooms

FILLING

1 T butter

2 cups fresh spinach

1/2 onion, chopped

1 T or more chopped parsley

1/4 cup breadcrumbs

1/4 cup shredded cheese

Zest of 1 lemon

WHITE SAUCE

A little less than 1 T butter

1 T flour

1/4 cup milk

Chop the MUSHROOMS and put them at the bottom of ramekins.

Saute the spinach and onion in the butter until the onion is a little brown and the spinach has wilted. Put the mixture in the food processor, add the rest of the FILLING ingredients, and process.

Make a white sauce out of the WHITE SAUCE ingredients, using the pan you just used for the spinach and onion. (Quick mini-recipe to make white sauce: melt butter, add flour and stir, when it's brown add milk and stir and reduce to a sauce.) Pour the white sauce in the food processor and process again. You are basically making a weird pesto with white sauce instead of olive oil. Then scoop it into the ramekins and smooth it out flat.

Bake for about 12 minutes at 350 degrees, then garnish with more breadcrumbs and finish it by broiling for 2 minutes. Garnish with chopped parsley, hot sauce, lemon juice, or whatever. Tasty!

(1) Fri Jan 07 2005 11:52 PSTIron Chef America #3:
I say #3 because the Food Network extravaganza coming later this month is the third attempt to port the Iron Chef meme to an American production. There were a couple UPN "Iron Chef USA" specials in 2001 which although unwatchable were enjoyably unwatchable. Then recently Food Network did a few "Battle of the Masters" specials which turn out to have been an extended pilot for this show that's more or less exactly the same. Unfortunately there are some big problems with their casting, in some ways I think representing a step backwards from that of the much-maligned UPN specials.

Case in point: Bobby Flay. Bobby Flay is not one of the world's great chefs. He's just a pretty good chef who has a successful restaurant and a television show. Of all the chefs in the history of Iron Chef he's the only one I think I'd have a shot at beating if I somehow got on the show. I admire his willingness to make spicy dishes, but Emeril Lagasse has built his entire career out of a willingness to make spicy dishes (or, rather, acting as though somewhat spicy dishes were really spicy while making it obvious how to make them spicy for real), and he has the natural showmanship for which Bobby Flay substitutes boyish good looks. What's more, Emeril's shows already look like solo Iron Chef acts. So as long as only people with Food Network shows get to be Iron Chefs, pick frickin Emeril. After all, he's got two shows on the Food Network, so he's doubly qualified.

I don't like Mario Batali either, but from what I can tell he is actually a world-class chef. You can't get me excited about him, though. His dishes doesn't seem very inventive; well-crafted but also very traditional, more like a challenger than an Iron Chef. I can't think of an alternate choice among people already on the Food Network payroll, but surely there must be some great Italian chef in New York or LA who's crazy enough to be an Iron Chef. Go through the archives and call up the Americans who won or held their own when they were on the original show. Do I have to do everything for you?

Wolfgang Puck became famous in the early 1990s for putting weird things like goat cheese on pizza (well, it was weird back then). In a fair universe this sort of skill would make him a great Iron Chef, and I think of the non-import Iron Chefs he's the best. I still don't really like him on an absolute scale but my mind is still open. The obvious choice for an Iron Chef of California cuisine is Alice Waters, who invented the whole thing, but she'd probably find the whole thing kind of ridiculous.

I see Masaharu Morimoto in the promos but I don't know if they're going to keep him around as a real competitor or just as a relic of the Japanese show. I always liked him, because I think fusion cuisine is the soul of Iron Chefdom, and his predecessors as Iron Chefs Japanese didn't do a lot of fusion; after all, they were in Japan and could just play straight to the Japanese palate. I hope he stays around, even though it seems like a lot of Iron Chefs if they keep him, and we all know that too many Iron Chefs spoil the Iron Broth.

Alton Brown, by his own admission, is also not one of the world's great chefs. But that's fine because he's not an Iron Chef; he's the color commentator. This is a job for which already having a cooking TV show is actually useful experience. He doesn't have to come up with his own ideas on the spot; he just has to make whatever's going on sound interesting. I think this is the best casting choice they made, but I'm prejudiced.

Finally we come to the Chairman, played here by Mark Dacascos. I really like the actor but not the character he plays. He doesn't seem an eccentric, like Kaga or Shatner played. More of a dilletante, as though Kitchen Stadium were a side project he funded out of his stock options rather than a grandiose bid for culinary immortality or a scheme to humiliate rival clans with his army of chef-assassins, or even just an obscene display of wealth which was what Shatner seemed to be going for.

Uh, conclusion: I predict we're going to be seeing a lot more shows where the challenger wins. I find it highly unlikely that three of the four best chefs in the country would happen to already have shows on the Food Network. I find it only slightly unlikely that someone who was an Iron Chef in Japan could transfer his skills to the American palate, especially since Morimoto has a restaurant in New York and was the most American of the Japanese Iron Chefs (for all I know he really is American).

Coming soon: the meta-trend continues with another entry about Hey! Spring of Trivia.

(3) Sun Jan 09 2005 22:13 PST:
The worst part about coming up with a kitchen utensil or other gadget to be sold through TV infomercials must surely be coming up with another, lower-margin gadget to give away as the "But wait! There's more!" freebie. You put all your genius into one super molded-plastic product but your ungrateful market demands some cheap auxilliary device for cracking eggs or something. It seems such an integral part of the sell that I envision Gilbert and Sullivan teams of product designers, one who excels at the big product and one who comes up with the perfect giveaway to accompany. Or a SourceXchange type market for matching big products with small, to form marketable sets. I think too much about this kind of thing, possibly because I can see myself as the guy who comes up with those half-brilliant, half-lame ideas for kitchen gadgets.

(2) Mon Jan 10 2005 15:25 PSTApache Question:
It looks like you can't use a text file to drive a RewriteMap if the URLs you're rewriting to are longer than 1024 bytes. Is this accurate? Does anyone else consider this a blot on mod_rewrite (as though it wasn't already bespeckled with blots)?
I'm using a .dbm file instead, which doesn't have this problem, but it's aggravating.

(7) Tue Jan 11 2005 22:37 PSTStar Trek Nerd:
Look away if you can. This entry's more geeky than the Baroque Cycle one I posted a couple days ago. That at least had news value. This is just stuff that crystalized in my head recently.

The first Star Trek I ever saw was the original series' "Court Martial". I was maybe 8 or 9 and I saw it in grainy black-and-white at my grandparents' ranch. Recently it was on the TiVo so I gave it another watch.

It was not that great (I think that most of TOS, when taken on its own terms rather than vs. what else there was at the time, is not that great), but I was amazed at the new meaning it gave to one of the best Next Generation episodes, "Measure of a Man".

There's a good case, which I will now make, that the TNG episode was consciously structured in homage to the original series episode. The basic plots are the same: one of the major characters gets put on trial and a friend of his must do the prosecution. There are also stylistic commonalities. Each episode has a guest star playing an old flame of the captain. There's a moment in "Measure of a Man" where the defense has the computer read out all of Data's commendations and medals. It turns out that's a reference to a scene in "Court Martial" where the computer reads out Kirk's service record.

It was the second season of TNG, when they still did this kind of nod to TOS. But "Measure of a Man" is vastly superior to "Court Martial" as a piece of drama. In "Court Martial" Kirk is on trial because Starfleet thinks he killed one of his crew through negligence. Not a bad premise, but not noticably science-fictional. In "Measure of a Man" Starfleet decides that they own one of their officers, and he has to sue to prove otherwise. Just on the level of the premise, it's more interesting.

In "Court Martial" the prosecuting attorney just happens to be Kirk's old girlfriend, in one of the first examples of what quickly became a very tiresome Trek tradition of the guest star being somehow related to one of the regulars. Instant, yet unsatisfactory tension! On the other hand, in "Measure of a Man", one of Data's friends is compelled to prosecute him so the suit can even proceed. This is a lot more satisfying dramatically.

When the computer reads out Data's record it's a rhetorical device on the part of the defense, to create the impression that if he's not sentient he's really, really good at faking it. The corresponding scene with Kirk has the same form but serves no real purpose because we already know Kirk is a big hero, and as Data would say, that is not in dispute. You can be a galactic hero and still hit the wrong button on a horribly designed instrument panel and kill someone. In the TOS episode it's just the computer doing what it does whenever someone is sworn in.

That's the other thing. For a television show about humanity finding a better future in the stars, TOS is pretty paranoid and mistrustful of the machines people build to take them there. It's always the insane supercomputer or the malfunctioning space probe or, in this case, the computer whose records have been tampered with and can't be trusted. The centerpiece of "Court Martial" is Kirk's defense attorney, a card-carrying technophobe, giving a speech about how humanity (of whatever species) must always be the master of cold machinery lest we lose our own humanity (of whatever variety). This argument is the direct ancestor of the argument used against Data in "Measure of a Man": that because he's a piece of technology, he does not partake of humanity and must be owned and administered by it. "Measure of a Man" puts one of the underlying themes of TOS on trial and shows that it hasn't held up well.

I still think there are big philosophical problems with the defense in "Measure of a Man", but I won't go into them because I'm afraid if I do I'll create some sort of nerd singularity which will destroy this website. Best to leave well enough alone.

(2) Wed Jan 12 2005 10:25 PSTJokes With The Same Punchline:
What punchline is used in the most distinct jokes? I can't even think of a punchline used in two distinct jokes, but it must happen sometimes. Perhaps the people who did that big humor study could help; they must already have a big database of parsed jokes.

It turns out that when I thought this I reinvented BuyPoint Chess, which is less enthusiastic about allowing every single chess variant piece but was written by someone who's actually good at chess and can figure out game balance, and also who came up with it eight years before I did. I've got other ideas for introducing basic other-game mechanics to chess: bidding on pieces, drawing pieces from a Scrabble bag. But if I just spend enough time looking through chessvariants.org I'm sure I'll find any idea I might come up with on my own. It's the Library of Babel for chess variants.

(1) Fri Jan 14 2005 23:11 PST:
I added an RSS feed of the new books published by Dover to the Automat. Now it's easy to keep track of what's going on at every nerd's favorite not-quite-general-purpose publishing house. Don't miss Spacecraft Attitude Dynamics or Country and Suburban Houses of the Twenties: With Photographs and Floor Plans. Sometimes Dover's books are awesome and sometimes they remind me of Andy's father's geology books that we made fun of in ZZT games. "Why drink coffee when you can read Origin of Sedimentary Rocks, or the heart-pounding, best-selling Principles of Geomorphology."

Cannibalism story is done in rough draft, which is good, but now I'm back to my usual uncaring state about story-writing. I was hoping I'd get writing fever and end up going NaNoWriMo and writing the whole novel of which that story is but a set piece, but it seems that's not what my brain has in store for me. I did discover that making up a story while handwriting it goes a lot faster than doing so while typing it.

Sat Jan 15 2005 09:15 PSTSisyphus vs. Charlie Brown:
For millenia, Western civilization has used the myth of Sisyphus as its futility myth. But within the past fifty years a new myth has entered our psyche which I think does a better job in many respects: the myth of Charlie Brown trying to kick Lucy's football.

It may seem silly, and the myth of Sisyphus does have the gravitas, but only because of its great age. The myth has a big buildup about Sisyphus snubbing gods no one cares about anymore and inhabiting an underworld that's long been replaced in our namespace by the Christian hell, then leaving the underworld and being dragged back and blah and blah. All of it is to provide a flimsy justification why Sisyphus should have to push his rock all the time. What's missing is any real motive. Why should he push his rock all the time? He just has to. It must be stipulated.

On the other hand it's not hard to understand why Charlie Brown should, eventually against his own better judgement, try over and over again to kick Lucy's football. Kicking footballs is the kind of thing humans want to do. When the sport of football is forgotten everything will still be explained in the dialogue: "I'll hold the football, and you kick it". Charlie Brown's own desire, vanity, and hope compel him to go after the football time and time again. There is no need for the gods to curse him because he has cursed himself.

If this myth is tragic, that is because its hero is conscious. Where would his torture be, indeed, if at every step the hope of succeeding upheld him?

The lack of hope is only a prerequisite for Sisyphus' compelled labor. Hope is what tempts Charlie Brown to choose his fate for another year. His "torture", as it were, is delayed until the moment Lucy betrays him, when it is repaid with interest. Camus' Sisyphus has his reprieve while the rock rolls back down his hill, but during Charlie Brown's reprieve, the brief lifetime of his hope, he is building up the momentum that will inevitably be turned against him. I think that's more tragic.

Anyway, according to that history site, starting in 1986 Charlie Brown had actually given up his hope, and those strips are less compelling. The same thing that makes them less compelling also makes them more like the Sisyphean myth. Q.E.D.

Sun Jan 16 2005 20:17 PSTGet Up, Stand Up, Come On, Put Game Roundup:
First, some updates from Game Roundups past. I played xdeathlord
some more and it's not me, it's it. It's not nearly as good a game as
xevil. It's just plain hard to play. So blah. Second, since its last mention two years agoIter Vehemens ad Necum has in
true roguelike fashion gotten bigger and in true IVAN fashion gotten
weirder (and gorier), becoming simultaneously less and more frustrating. It remains in my opinion the most bizarre roguelike, the Yapok Sundria of roguelikes, if you will.

And now, new games. I'm very excited about this roundup; most of
the games here are really good. They're also for the most part pretty violent, which may or may not be a plus in your book. One of them isn't as violent as it needs to be, which won't satisfy anyone.

Formido, not
to be confused with Formico, the game of floor-laying, is a game where
you are beseiged by countless large alien insects. The challenge is to
see how many you can blow up before your inevitable death. Fun but
kind of depressing, and with no illusions: your score is counted
directly in bug deaths, not using any sort of "point" system.

As real-time strategy games go, NetPanzer is pretty
simple. There are only about eight types of unit, and scattered
factories that produce units for whoever owns them. No complicated
resource gathering, just "go over there and blow that up".

Deadly Cobra tries to
make the snake game genre more interesting with the
obvious-in-retrospect step of making the energy pellets into helpless
humans. By itself this would be a welcome yet cosmetic change, but
once you've taken that step the next step is obvious: the people can
move around aimlessly to increase your chomping challenge. These
developers have come up with all kinds of great twists on the snake
game. PLUS they have the snake's tail feed into itself when the snake
dies, like I wanted in the KDE snake game. Could this be the ultimate snake game? Probably. And yet, it's a snake game. Let's move on.

Marauder is a nice, simple
game where you fly a spaceship throughout the universe and blow up
other spaceships. Planets contain stores,
where you can buy weapons and sell cargo which you mainly steal off
the ships you blow up. (Hit enter when close to a planet to enter the store; I had to look in the source code to find this out.) Has comical effect when you crash into a planet and
it's like bumping into a wall. Thumbs up etc. Unfortunately there's no
win condition, so once you figure out the strategy you're addicted but there's nowhere to
go but to the next difficulty level.

I looked out the window and what did I see? Ack-ack popping in the Apricots source tree. Apricots has a
great name and a great Amiga cartoonish look (it was originally
written for the Amiga and, like rfk, has followed its author to
Linux). In this game you fly a jet and blow up buildings for points,
all the while being chased by other planes with the same goal. Just don't blow up the civilian buildings (enumeration of civilian
buildings follows: huts, little suburban cottages, office towers).

In nuclear war there are no winners, only survivors; but in this
war there aren't even survivors. You and your opponents die a lot, which costs points, and then you end up having to fight dogfights to get enough points to meet the win condition, because the landscape has been reduced to rubble. It gives the impression of an air war conducted by people who don't know how to fly airplanes: a more accurate treatment of a theme first seen in Battlefield Earth.

Apricots has lots of fun touches: stealth bombers,
trees and different landscapes, persistent wreckage,
excellent physics system. It's hard to land, but it's fun to die. A game worthy of the "X Carnage" brand.

Contrary to popular belief oki is not a
game where you have to move your family to central California. In
fact, in an early version all you could do was "run, jump, and
die". Well, it's a little further along now and you can also collect
coins. Coins are helpfully marked "C" and look like little copyright
symbols, which would make this game an excellent propaganda tool for
the intellectual property industry. The low-res, Game Boy-like
graphics mean it could be distributed over the mobile phones the kids
are using these days. Put on some simple DRM protection and it could
be a valuable opportunity to teach the younger set that the process of obtaining copyright clearance can be fun! I call it my new "Compliance Is Awesome" initiative.

TechnoballZ is a
tricked-out Arkanoid game that has too many power-ups to be a real
challenge. Has between-level store for buying even more power-ups. Too many power-ups, not enough paddle-death!

Gate 88 says "relive a
childhood daydream of deep space intergalactic battle", and it
delivers on that promise. It's a multiplayer space shooter/real-time
strategy game with vector-looking graphics that make it look like a
lost arcade game from the 80s. You build structures in space and then
defend them. Lots of fun. Not open source, but my "no non-open-source"
policy is mainly just an excuse not to have to evaluate
non-open-source games unless I want to. This one is really good.

Atris is the
Tetris clone I've been waiting for for a long time: it's got ASCII art
customizable block patterns so you can play with shapes made out of more
than 4 blocks. Also has a twist where the units of the blocks can
be different colors; such a piece isn't cemented together very well
and will fall apart and settle when you drop it, in a pleasingly Tear
Down The Wall-like moment.

Closed source games are not eligible for the Palm d'Rassemblement
De Jeu (Des Jeux?), so Gate 88 is disqualified and the winner of this roundup is
Apricots, the chaotic death-from-above game with the classic Amiga lines. Runners-up: Marauder and Atris. The traditional limerick prize
celebrates the many non-enemy-initiated modes of death in Apricots:

When Pilot Mike tired of slaughter
Right into a fir tree he'd auger
It felt like a balm
To smash into a palm
And bliss to crash-land in the water

(1) Thu Jan 20 2005 12:29 PST:
Does anyone else who uses the Technorati API notice that it's down a lot? I'm getting errors about 3/4 of the time or even more. Maybe it's my usage, the time of day my cron runs, etc. but it seems a little weird.

(5) Thu Jan 20 2005 13:22 PSTOn Retainer(s):
My top retainer mold has a negative cast of my palate that looks a lot like a Klingon's forehead. I've been carrying a Klingon forehead in my mouth all my life without knowing it. Now I wonder if the Trek actors who play Klingons are acting with big molds of their palates or someone's palates on their foreheads. Probably not practical.

Speaking of maxima of cool: I really hate comic books, but there's going to be a Buckaroo Banzai comic book series which I think I pretty much have to get. Yup, there's no way around plunking down my cash for the next item in that franchise. Nothing gonna swoop down from the sky and save me from this predicament. What's taking them so long?

Sat Jan 22 2005 21:38 PSTDevelopment Diary:
I've been putting off working on the Ultra Gleeper but today I did most of what I still need to do before CodeCon and it wasn't so bad. Now it's mostly a matter of writing the paper. I feel like I need to take a break from my existing projects and commitments and only work on new things for a while. Maybe after CodeCon, or after CodeCon plus Beautiful Soup 2.0.

Sun Jan 23 2005 18:00 PSTCrouching Software, Hidden Roundup:
Yes, it's the first Software Roundup in a year and a half! And I still
have a backlog of 137 non-game items to investigate. Since statistics prove the real draw to this site is the Game Roundup, I'm posting this first and the new GR will follow.

Debian is taking over! At least it is when you run debtakover,
the program that turns non-Debian systems into Debian systems.

I always hated the POV-Ray language, but pypov
lets me program it in Python. Thus proving that the real reason I
hated it was that I'm incompetent at graphics programming. Thanks,
pypov, for invalidating my lame excuses!

You know all those specialized database programs for keeping track
of your wine or whatever? Who has so much wine that they need a database? Anyway, Happydigger
keeps track of the archaeological artifacts you find while messing
around with a metal detector. I wonder if there's another such
specialized software for keeping track of your paleontological finds?
I don't see one, but I did find the cool Paleontology
Database Network and the USGS' Paleodata,
which doesn't seem to exist yet.

It was probably not a very gutsy move for Freshmeat to accept this clone of
Freshmeat to its application database. But there it is.

SlideRule does
what it says. Nice scrolling trick on the webpage, too.

letterize is supposed
to give you mneumonics for your phone number: a boon for those of us
who can't remember our own phone numbers. But if your phone number's
the same as mine, and I don't see why that shouldn't be the case, it
will just print a newline and exit. I guess this could itself be a
sort of mneumonic, but one that would require keeping a copy of the
program around. I'll stick to my checksum-based mneumonic.

NanoHive, in addition to having a
great name, is a simulation tool for demonstrating physical properties
on the nanometer level. It's like the haptic nanoCAD program in The
Diamond Age, but harder to use. I say wait for the haptic version
unless you're a big nanotech nerd (or perhaps I should say, an
incredibly small nanotech nerd). Sure makes cool demos though.

Timekeeping Mini-Roundup

The forward progression of time. Without it, would our universe be
the same? No one can say for sure. Here are four programs that react
in various ways to the asymmetric dimension that really puts the
"time" into "space-time"!

orbitclock the
time in the sort of format you might see on one of the computers on
Deep Space Nine. Not liable for inaccuracies caused by chronoton
distortion.

gtoday displays the
fixed and movable feasts of the Greek calendar. I don't read Greek or
know anything about the feasts, but I assume it does what it's
supposed to.

First there was phase-of-the-moon software. Now there's sunwait, the crunch that's
a blast to munch. I mean, the program that lets you set up a cronjob
to turn on your house lights 5 minutes before sunset every day. Or
activate your solar-powered deathbots from their long slumber. Just as
an example.

Speaking of the sun, its reliable machinations form the basis for
the atronomical Rube Goldberg device that is IridiumFlares. It
tells you when and where to look to see Old Yeller's light bounce off
an Iridium satellite, or bounce off the moon, then hit a
satellite and head right for your eyeball. Tip: if you mention Iridium
in your software somewhere where I can see it, I am almost certain to
include it in a roundup.

The
Revisionist snoops through Microsoft Word's internal versioning
metadata to prove once and for all that, eg., joint-company press
releases are largely created ahead of time and the people in question
never actually said those lame quotes. Be still, my heart! Has other,
more interesting uses.

BBS nostalgia reaches new heights with DuhDraw, a
clone of the venerable TheDraw ANSI-art program.

Keep Subversion and CVS repositories in sync with svn2cvs. Satisfy
your local CVS bigot. Are there CVS bigots anymore? Surely the one
thing that unites all version control system bigots is the lameness of
CVS.

enblend is a neat little
one-trick pony that improves the look of panoramic pictures made out
of multiple smaller pictures.

And finally, lipotell
is a script optimized for finding the parts of your filesystem that
have all the space-taking-up junk. Those files have no right to be so large!

The winner: pypov, which I hope people more graphically inclined
than I get some good use out of. And now, the traditional prize of a limerick, soon to be a major driver in improving open source software quality:

pypov shows me why, back in the day
I couldn't use POV-Ray
They say only fools
Go blaming their tools
I've just about had it with "they".

Sun Jan 23 2005 18:11 PSTIt's Another Tequila Game Roundup:
And here it is, the Roundup you've been waiting for. In case you're wondering, my Game Roundup backlog is a whopping 249 games. It's madness! But it's not like this is my job or anything.

We at Game Roundup have a soft spot for games that attempt the
nigh-impossible task of making tired game genres new. Scalar is a
jigsaw puzzle game where the mechanic is swapping two grid parts of a
picture to assemble the picture. But the quadrangles of the grid
aren't all the same size. So you can get pixillated images that
indicate that image needs to go into a smaller square. Pretty fun.

Target Acquired
is too clever for its own good. It's a space shooter in which
projectiles acquire your ship's momentum at the time of firing. There
are only three waves, but you have to relearn the space shooter from
scratch to get anywhere at all.

As long as I'm at it, here's Sable, by the same
author. It's a low-poly-count 3D shooter sort of reminiscent of Zaxxon
or the parts of the shareware classic Flightmare with the weird 3D
interface.

Behold ZapM, a willy-nilly mishmash of sci-fi
cliches in roguelike form that almost captures the vibe of the
late lamented Alphaman. Its main problems are: the feeling it gives
you that lots of items and skills don't do enough to warrant their
inclusion in the game (which makes it seem incomplete rather than,
say, poorly planned), and the fact that the item system is so similar
to Nethack's despite the genre change. It's not so much that "scrolls"
are now "floppy disks"; it's that the floppy disks do things like
teleport you and improve your armor class, things not generally
thought possible in software. However I love the way wands have become
futuristic ray guns. As roguelikes go it's very short; I think it's
the first roguelike I won while evaluating it for Game Roundup. Bonus:
has more Paranoia references than any other game not actually to be a
Paranoia-themed game. Bonus bonus: the webpage links to Clan EIT, which is funny and
which links to What Fools These
Mortals.

Axis of Evil is
probably the best political-themed adaptation of Space Invaders I've
seen, not that that's saying much. In Axis of Evil the space invaders
are--wait for it--ne'er-do-wells
like Khomeini and Saddam. Now, as all people bored of Space Invaders
know, the best strategy is to blast through your
protective barriers and fire through them even as you use them for cover. Well, in this case your
barriers are, political cartoon-style, labeled "Freedom", "Truth", and
"Civil Rights". Ba-dum-bum!

Unfortunately I couldn't get the game to not segfault when I tried
to start the game, but realistically the screenshot makes the same
point as the actual game. Which now that I look at the source code I
don't know if that was really the point the author was trying to
make. Oh well.

Alien Pool is a game
with a fun mechanic described as "similar to both asteroids and pool",
which is pretty good so I won't try and come up with a better
description. Nice low-budget sound effects too. I wish more game
authors would record their own little voice clips.

PUBLIC SERVICE ANNOUNCEMENT: If you've written an open source
game, Funkbunny Studios will write
the music for it. There's no portfolio on the page so I don't know if
anyone has taken them up on this offer yet.

In this Java
"Antichess", you must checkmate your king at all costs. I bring
this up mainly to point out another kind of Antichess I think is more
interesting: Anti-King
Chess, which introduces a piece that loses you the game if your
opponent takes it out of check. One concept: two executions. What
inspiration will today's challenger bring?

Tux-n-Run: I guess Run is
the other penguin in the two-player version. A mismash of artistic
styles in the splash screens is kind of creepy. The engine is pretty
good but the only level is like a bad ZZT game. Will review again when
it's a real game, if I remember. Probably the 30th or 50th game that
takes the OS wars as its metaphor.

At the other end of some spectrum or other we have Ensemblist,
which has a great interface with which I can't do a damn thing. It
starts out with you navigating a flowchart, which is fun, but then you
get into 3D and taking the difference between two shapes and it's like
the spatial recognition test they gave Hugh and you've lost me. But
since I prize originality so much I can't give this a bad score.

You purchased a thousand square kellicams of land on Zephulor for
a new condominium project. But when you arrived to inspect the land,
you found that Zephulor has a toxic atmosphere and is inhabited by
voracious alien slugs, as well as being full of strange platforms hovering in
midair. Now, in Adventures on Planet Zephulor
you will take your bloody revenge on the man-eating aliens who even now
invoke obscure zoning regulations to prevent you from constructing
more than six consecutive residential units without an intervening
common area! Okay, that's not the real plot of AoPZ, but there is no
real plot, so it will have to do. Hey, maybe I could offer my
freelance services to people who need a plot for their game, the way
Funkbunny Studios offers to do the music. What do you think?

Anyway, AoPZ is a PyGame platform shooter that kind of reminds me
of Jill of the Jungle. It's got big, good-looking, explorable levels
but unfortunately there's not much in those levels to find when you
explore. If like JotJ it had puzzles, more weapons, etc. it would be a
really great game. The player control needs a little work too, but it
might just be cosmetic.

CamelTrouble is
a little arcade game written in Perl. You are a camel who must go out
in the desert to grab some monks who've gotten lost. Along the way you
must avoid vicious pythons and cups of java who will harm you. The
Freshmeat description makes it sound like the monks are at the mercy
of these desert monsters, creating a sort of Robotron hostage
situation. But in reality the pythons and java cups are completely
harmless to the monks and will only hurt you, the camel. It's got some
odd bugs (try selecting "Go" multiple times for a psychedelic
monsterfest), but it's not bad.

Why not take two of the most-often-cloned games in history, and clone them simultaneously?
Tong takes the Tetris and the Pong and bashes them together and makes them fight like plastic dinosaurs. You play both games simultaneously and they interact with each
other in pleasing ways.
Disadvantages: you have to use keyboard and mouse simultaneously (a
weakness of mine), and the tarball is 32 freaking megabytes. Most of
that is ogg files for the soundtrack. It's a really nice soundtrack,
but still.

Speaking of which, Tetris clones are now getting their own
clones. Exhibit A: Abandoned Bricks, which
features a Bastet mode. You'll recall that Bastet, star of a past Game
Roundup, always gives you the worst piece possible for your present
situation. Now, the bastardry is spreading. Beware! Many of the
villagers have recently reported nighttime trances wherein, under the
influence of some sinister force, they write Tetris clones. It could
happen to you!

Graviton demonstrates a
great solution to the problem of displaying a field on which two
players are scuttling around shooting each other. Rather than
splitting the screen, the camera zooms in or out to keep both players
visible. Worth it for that mechanic alone. Not much else in the
game. Basic duelling-pyramids game. Will the red pyramid/blue pyramid
war never cease?

Batrachians
is a clone of an Atari 2600 game without the slow control response
time endemic to that system. You are a frog and compete with another
frog for flies. In a masterpiece of realism, frogs are represented by
ovals
labeled FROG, and flies (less realistically) by ovals labelled
FLY. It's fun and it has a great twist on the way Atari 2600 games
end. Typically in a game of this sort, where each game lasts a set
amount of time, once the timer runs out everything goes to reverse
video and I guess it's nighttime? Well in Batrachians it really is
nighttime, and instead of happening all at once the sky gets gradually
darker and stars come out. A nice touch.

When I hear the word "gravity" I reach for my laser pistol. But Gravity Wars has
old-school Linux cred and lush Amiga graphics (Is it wrong of me to
love those Amiga-style graphics and like games just because they have
them? Why don't games these days have that kind of smooth, cartoony
graphics? Reh reh reh.). So who cares if it's a Finnish
spaceship-in-cave game? Well, I started caring when, after finally
getting all the neccessary keys to get to the next level (there are
fruit and keys, like in Super Pac-Man), I was suddenly informed that I
was out of fuel and plummeted to my death. I tell you there is
something in the Finnish psyche that makes them love to produce these
spaceship-in-cave games. I do not understand it. But man, those
graphics. Maybe there was some Amiga rendering tool that made that
style of graphic. I never even had an Amiga, have barely used one, and
I'm turning into an Amiga zealot solely on the basis of ported games.

Spillwords is a clone of
a classic game I've never heard of. Basically you get a bunch of
Scrabble tiles and have to form a set of words out of them within the
time limit. Once you put two letters together you can't disconnect
them and change your mind later. Dragging a letter around lets you
knock other tiles around the board, creating a surprisingly tactile
experience for a computer implementation of a word game. Recommended.

Arrows is a fun little
game of the type where your movement is constrained by arrows. There
are rules about when you can deviate from your planned course,
creating new arrows, which gives the game a nice mixture of planning
and thinking on your feet.

So there we go. Tong wins this Software Roundup, and gets the limerick:

A game that is more than one game
Is constantly changing its name
The more clones we tacks on
From Asteroids to Zaxxon
The more we put Firefox to shame

Mon Jan 24 2005 19:30 PSTAccidental Users:
I often write software expecting other people will use it and they don't. So it's always a pleasant surprise when someone uses a piece of software I didn't really intend for anyone else to use. The person is Josh Barratt, fellow Alton Brown fan and Minix hacker, who has installed a copy of The Me Software Map, the script I wrote for managing the "here's a list of all the software I've written" page often seen on nerds' websites. This gives me hope for the future.

(1) Mon Jan 24 2005 20:23 PSTI Can't Believe It's Not Not Software Roundup:
Even though I have so much to do and today I shoveled even more on my plate (more about this later), I figured I'd just go through some of the Software Roundup backlog and weed out the ones that turned out to not be interesting. I should have known. I got sucked into the shadowy world of software trying-out and another new Software Roundup was born. Here it is. Now I'm going to turn off the computer, except I need the computer for the stuff I'm supposed to be doing. Dang.

wbumount dares
to ask the question: who is blocking umount? This program finds the
dastardly processes, and takes pictures of them and posts their
process IDs on a website along with mocking commentary. Why, wbumount,
why?

News On The March presents: PERL! Used more than you'd think! Once
thought only fit to drive lame CGIs that mix up the panels of penguin comics, Perl is now
recognized for its true purpose: driving mission-critical database
table management CGIs like ir.pl, which you put
on your intranet if you're an airline and use as a ticket system for
your flight delays.

Someone goes through a lot of trouble to turn their MP3s into an
Icecast stream, and then you go and use ficy and turn that stream
right back into data files. It'd be ironic, if it weren't so not
ironic.

Mind AI has the
right philosophy for a successful AI project, but not much else. The
biggest file in the codebase is the IRC interface.

Are you a real man? Prove it! Eat that beetle! Hm, yes, I guess it
is true that in many cultures insects are consumed by both sexes
without the act having any particular significance. We need something
more universal, something less culturally bound. Wait! I've got it!
The ultimate decision procedure for manitude: do you dare employ the
Real Man's Compiler
Collection? Instead of wasting your time with error messages and
warnings, which ISO has declared effeminate, RMCC simply tells you
whether or not your program compiled successfully. But I say why stop
with compilers? We can make an arbitrary shell command more manly with
my new manify.sh:

#!/bin/sh
$* &> /dev/null && echo "Yes." || echo "No.";

Hm, actually this is basically what RMCC does. Time to take the
masculinity up another notch! Now we must also amplify and embed in our culture
the stigma of a nonzero return code. Why should our program dignify a
"program that fails" (my new political code word) with a reponse?
Surely ignoring failure altogether is more manly.

#!/bin/sh
$* &> /dev/null && echo "Yes.";

And once we've started down that path, the masculine virtues of
silence and fortitude will carry us the rest of the way:

#!/bin/sh
$* &> /dev/null;

Now that's manly! Rrrrrrr!

If you want to write a Python script that acts just like a web
browser to some unsuspecting website, you have a myriad [Ed. note:
actually 1/3333.33333... myriads] of options. Python Browser Poseur, Perl port mechanize, and
mechanize fork mechanoid. In conjunction
with Beautiful Soup, an unbeatable combination for prying open some
difficult oyster shell of a site. Which is the best? How should I
know? What does this look like, some sort of
Software... Roundup... look over there!

See? Isn't this more interesting? It's the Open Text Summarizer, which
uses stemmers and such to find only the juicy parts of standard
input. To prove its mettle I had it summarize Proust's Remembrance
of Things Past. The result:

For a long time I used to go to bed early. Suppose that, towards
morning, after a night of insomnia, sleep descends upon him while he
is reading, in quite a d ifferent position from that in which he
normally goes to sleep, he has only to lift his arm to arrest the sun
and turn it back in its course, and, at the moment of waking, he will
have no idea of the time, but--

I'm sorry, time's up.

And now the winner. For fear of aspersions being cast upon my Y
chromosome, I have no choice but to hand the award to the Real Man's
Compiler Collection, that blackmailing constable of social
norms. Enjoy this limerick, Real Man's Compiler Collection:

Wed Jan 26 2005 06:56 PST:
Going to the yearly CollabNet retreat, or as it's called this year, the CollabNet retrograde advance. It's likely no bruising of news will occur until Friday night. To top it all off, the company doing our team-building activity stole my and Kevin's team-building business idea and watered it down into a safe, liability-free activity.

We planned to take participants on board our walktheplank.net-branded ship as swabbies, show them how to handle a rope and a cutlass, then storm the nearest container ship. Those that survived would become more effective teammates and take home valuable merchandise, as well as peg legs and other picturesque injuries. They've watered it down to mere "pirate-themed challenges" such as the Cannonball Carry. Such is ever the reward of genius! And of genoise.

Thu Jan 27 2005 19:16 PST:
I found a cute book at SFMOMA about Elmer, the cute elephant whose skin is a patchwork of different colors. Sort of a more colorful Checkerboard Nightmare. I got it for Sumana to cheer her up.

In spare moments I make progress on CodeCon paper and new currently-secret project. For some reason writing in longhand works well for me. It tires me out though.

Fast Jack's calculator gets passed around during Geometry and he pays
out at lunch. He got his leather jacket without mowing any lawns, but
he's after the romance: Frankie in a tux, raising to a cool mil
between sips of neat. He can't keep this secret, nor share it.

"Hey!" It's Robson. "Your video poker's crooked!" Robson never got a
PIN, but he has ways.

"You can check the program." Fast Jack's wasting his breath.

"I lost ten hands straight. Tell me that's fair."

Fast Jack has a letterman's jacket, too. He thinks about variance,
runs like a hot Nevada wind.

(5) Sun Jan 30 2005 21:14 PSTGranola:
The thing I've missed most while having braces turns out to be granola, so I've been making a lot of it and it's great. I'm using Alton Brown's recipe but with different nuts and fruits. Macadamias are great, peanuts are less great. Dried berries are better than raisins. Alyson, would you post or send me the recipe for the granola you made when I came to visit last year?

(6) Mon Jan 31 2005 18:22 PSTSpeaking of Granola:
My AAA membership expired and they sent me this really obnoxious membership renewal package, so I got pissed off at them and joined the vaguely-named Better World Club instead. They wear their politics on their sleeve instead of being sneaky about it like AAA does.

So far it's working fine. The only things AAA has over BWC as far as I can tell are: with AAA you can be a map hog and get a billion maps and they have to suck it up; BWC limits you to ten per year. And because my AAA membership was grandfathered in from my mother, or mothered in, I guess, the membership card said I'd been a member for longer than I've actually been alive. But that comedy gold mine went bust when my membership lapsed, and I already have more maps than I know what to do with, so I recommend switching unless BWC's hippy attitude aggravates you as much as AAA's fake-personal direct mail and mandatory upsell magazine aggravates me.