Posts

Archive for January, 2007

The Legend of Zelda: Chicken Savepoint Woman

by psu

Long time readers will recall my distaste for the standard Zelda save system. My main complaint, you will recall, is that when you save the game from the middle of a dungeon, you have to trudge through the whole dungeon over again when you restore the game. Why, I opined, can’t the game just come up with a way to save my position in the dungeon and save me from this boring grunt work?

Well, the new Zelda game does fix this and yet again proves that you should be careful what you wish for.

I think it’s the case that if a normal developer had approached this problem, they would have made your position in the dungeon part of the save file. Then, when you load the save file, the game would just put you back where you were. The developers of Zelda can’t do this. They need to take the habits of long time fans into account. These players might actually be upset that the game didn’t do the wrong thing when they saved the game. There would be a general hue and cry about the “save-game” glitch where you save your game, and when you load it it loads exactly where you were when you saved. People would be outraged. They would demand a refund, a recall, a patch DVD. Just imagine the chaos.

Given that they have to work around this problem of a large legacy of installed players, the developers of Twilight Princess chose to take something that ought to be completely transparent to the player and make it into a gameplay mechanic. Let me summarize.

Early on in the game, you find a creature in one of the dungeons. This creature, as Pete has described, looks like a woman with blue nipples crossed with a chicken. The chicken lets you warp from wherever you are in the dungeon back into the outside world. When you do this, you take the head of the chicken’s child with you and keep it in your pocket. Using this head, you can warp back to the chicken and then keep playing.

So… to save your game and your position in the dungeon, warp out of the dungeon, save, then when you restore you can warp back to where you were. Don’t forget to bring the head of the baby of the chicken woman with blue boobs!

All of this to avoid shocking their fans by giving them a save system from the 1980s. You can’t make this shit up.

Girly Drinks

by peterb

I wrote about Margaritas a little while ago. I stuck to describing the “canonical” recipe, rather than giving my own, because I hadn’t really perfected the drink. Since that time, I’ve been touching up and refining my recipe until, if I do say so myself, it is almost entirely perfect. The other day I was in a Dave and Buster’s, and had the opportunity to drink on someone else’s tab. Without thinking, I ordered a margarita on the rocks, and was given something well-nigh undrinkable. I knew my Margarita recipe was better than what you find in most bars, but I didn’t realize just how much better it was until I had refreshed my memory.

I’ll give you my Entirely Perfect Magarita recipe in a little while, but first let me wander afield and talk about something else that happened recently. It starts, as so many stories do, with my friend Nat.

“Hey!” I said to Nat, “I have the perfect Margarita recipe! Are you prepared to go from zero to drunk in 8.9 seconds?” “Sure,” he said, “although actually I haven’t been drinking many Margaritas recently. I’ve been making a lot of Sidecars.”

I’m all about the booze, but I have a poor memory for mixed drinks, and I’d never had a Sidecar. “What’s a Sidecar?” Wikipedia claims it is a descendent of the Daiquiri, which is almost the eohippus of the class: equal parts brandy, Cointreau, and lemon juice, often served with a sugared rim. Intrigued, I set aside my Margarita experiments and spent a week madly making (and, er, drinking) sidecars, using different types of brandy and different types of lemon. I mentioned to another friend of mine whether he knew of a bar in town that made a decent sidecar so I could have a reference against which to judge. His answer was quick: “No, I don’t know any bars where I could get a sidecar,” he laughed, “because I’m not a girl.”

This sort of thing has gotten me into trouble before. Once, when put on the spot in a bar I’d never been to, I blurted out the first drink I saw on the menu. “I’ll have, uh, a Cosmopolitan.” I had absolutely no idea what a Cosmopolitan was; it turns out that it is a ridiculous pink martini. I’m not insecure in my sexuality, but you simply can’t avoid it: a man drinking a pink martini might as well be wearing a dress. I spent the rest of the night getting funny looks from everyone around me, and when I left was half-convinced that people at the bar might follow me home and beat me up for my lunch money.

So there is this concept of “the girly drink” that floats around in the zeitgeist. What is it that makes a drink girly? We should note that “girly” does not, in fact, mean that only women drink these drinks. First off, there are plenty of women who drink real drinks: witness Ladies United for the Preservation of Endangered Cocktails. Furthermore, the success of Chi-chis is not based entirely on 45 year old twice-divorced legal transcriptionists going out for Ultimate Frozen Strawberry Daiquiris. For every woman at a bar drinking a girly drink, you’ll find a guy drinking one too. OK, it’s true that he’s just trying to convince her to drink more so that he can take her home in his Camaro and score, but that’s not the point. The point is that just as our culture has embraced fake food and fake political debate because they are more convenient than the real thing, we have embraced fake cocktails as well. When I call something a “girly drink”, it’s that easy acceptance of mediocrity that I am in fact trying to evoke.

Some drinks are born girly, while others have girliness thrust upon them: we’ve already established here that although “Daiquiri” today connotes a fruit smoothie specifically constructed to hide the taste of booze, the real daiquiri will knock you for a loop, pillage your cattle, and write a Hemingway novel before you cure your hangover. One classic sidecar recipe calls for cognac/lemon juice/Cointreau in an 8:2:1 mixture. So the girliness of a given drink is often in its implementation.

A week spent downing innumerable sidecars, with varying grades of brandy and cognac, has convinced me that I still like Magaritas better. So here, with no further ado, is my discussion of the Entirely Perfect Margarita.

I’ve already discussed how to make a good Margarita: use a decent tequila (100% blue agave), and Cointreau instead of any other triple sec. The two things that separate the Entirely Perfect Margarita from the others you’ve had are the citrus juice, and the proportions.

Limes are problematic. Perhaps people in sunnier climes don’t have this problem, but at least where I am I cannot get limes that taste the same year ’round. One batch is bitter and acidic, another batch is sour and juiceless, a third batch is sweet and lemony. The point is that around a third of your Margarita is subject to the vagaries of whatever limes got delivered to your grocer this week. I have found a way to solve this problem. Instead of persian lime juice, I use the juice of two key limes combined with the juice from half a (small) lemon. This will give you the exact taste you’re looking for in a Margarita, and will be much more consistent to boot.

Second, I use a 1:1:1 ratio of all the ingredients, rather than the more traditional 2:2:1 of juice:tequila:Cointreau. 1/3rd key lime and lemon juice, 1/3rd tequila, 1/3rd Cointreau, shake over ice and serve. Make this for guests and you’ll be a superhero.

Just make sure you get their keys, first.

Not Just Coding

by psu

We were driving home tonight, and NPR was interviewing some Robert Frost scholar about the publication of a book of Frost’s cryptic notebooks. It took the guy five years to put the thing together. I was drifting into a nice NPR doze while they droned on and on, when suddenly the host went from relating a story about Frost at the Kennedy innaguaration to talking about a talk that the book editor had given at the dedication of the Robert Frost library in “Am-Hurst.” At this point my ears perked up. The Robert Frost library is in Amherst, MA, the town in which I grew up. You pronounce the name with a silent H. Pretend you are saying “Amerst”. To this day it pains me physically to hear people say this the wrong way.

As I’ve gotten older, a lot of my old peeves have fallen by the wayside. However, some of the world’s indiscretions still slice at my psyche like a brand new mandoline julienning a piece of zucchini. Just this weekend, there was a fluff piece about that crazy Hungarian Charles Simonyi and his silver bullet for solving the software problem. I read much of it without getting upset at all. There was a lot of complete nonsense about the paradise of “intentional” programming. This paradise has been at least 10 years in the making with no product in sight. This was not the cause of my distress. I ignored the rhapsodic prose about a system so sophisticated that the non-technical “experts” who just want to “get something done” can interact at a magic “workbench” and build what amounts to a perfect specification of exactly what they want, unless it isn’t in which case they can hack up another iteration of the perfect specification with almost no difficulty at all.

This sort of hype does not bother me anymore. Our modern world is all about instant gratification. If people want to delude themselves into thinking that difficult technical problems have magic solutions, then more power to them. It’s common to think of the general purpose computer as a machine that can be told to do anything. But the real nature of the machine is that it can be told to do anything provided that you have sufficient time and money. If you are lacking in the other resources, you need to compromise on the specification. Anyone who thinks otherwise is delusional, but I don’t have time to fight that educational battle anymore.

I also was not bothered by the boilerplate text bemoaning the sad state of the software industry. If experts are to be believed, there is almost no modern endeavour more doomed than that of software projects. They ship late. They go over budget. They fail entirely. They are the picture of incompetent management. I’ve heard this before. I find that these days I like to emphasize the positive aspects of the software industry. The modern consumer electronics industry has software at least partially to thank for its continued riches. Almost every major appliance or device that you interact with these days is running some of this software stuff that never works and is never shipped on time or on budget. Software is what transformed the Internet from a pile of wires to something that people want to use every night to talk to their parents on the phone. People don’t seem to realize this. That’s OK. I understand.

I also did not let myself be bothered by the fact that the New York Times spent so much copy profiling the man who inflicted “Hungarian Notation” on an unsuspecting software engineering world in the 1980s. It’s amazing to me that they let him near a machine anymore. But that’s not the main subject of my wrath.

No. What set me off was the reason that the Times writer offers for the so-called software problem:

The reasons aren’t hard to divine. Programmers don’t know what a computer user wants because they spend their days interacting with machines. They hunch over keyboards, pecking out individual lines of code in esoteric programming languages, like medieval monks laboring over illustrated manuscripts.

This is certainly a popular depiction of the software engineer. In fact, a different piece in this same paper about six months ago had this classic:

Jamika Burge is heading back to Virginia Tech this fall to pursue a
Ph.D. in computer science, but her research is spiced with
anthropology, sociology, psychology, psycholinguistics - as well as
observing cranky couples trade barbs in computer instant messages.

“It’s so not programming,” Ms. Burge said. “If I had to sit down and
code all day, I never would have continued. This is not traditional
computer science.”

My pet peeve is this notion of “just programming”, or “just coding”. It is hateful and insulting. It implies that what we software people do is completely rote and lacking in any creativity whatsoever.

Consider that Computer Science, while still young, has managed to keep some of the best minds of the last century (Turing, Gödel, von Neumann, Erdös, Newell) busy with its intricate mysteries. It’s an area that is a fascinating juxtaposition of mathematical theory and engineering practice. It has not only introduced a pile of new ideas into the Academy, it has at the same time built a commercial industry that has completely changed how we collect, store, manipulate and communicate information from the world and to each other. And with all of this as background, this clueless second year graduate student is still characterizing “traditional” computer science as “just programming.” The field was never just about programming, even if its deepest problems are ultimately motivated by the toil of the humble programmer. Anyone with half a clue should know this.

The quote in the piece on Simonyi is insulting in a more personal way, because it makes a profoundly incorrect generalization about the very profession in which I work. This generalization is really the same “just coding” sentiment but with bigger words. Because software people spend a lot of time doing something that is complicated and mysterious, it is apparently popular to think that this is all they do to the exclusion of everything else. The picture goes further than that. It’s not just that we do nothing but this weird stuff at the keyboard. No. Programmers, in fact, are not capable of doing anything else. In other words, besides coding, they are not able to

1. Communicate with other humans in a language that the other person can understand.

2. Absorb and understand the desires and problems of a non-technical person, and think creatively about how to solve these problems.

In other words, without Simonyi’s magic tool, programmers, being crippled in the particular way that they are, are completely unable to understand the needs of their clients and are therefore doomed to failure.

Hogwash.

What everyone involved in the production of this piece of goat excrement in the shape of a newspaper article fails to grasp is that the paragraph that they have written down above describes a particular sort of software engineer. Here’s the word I use to describe this sort of software engineer: bad. These people should not be hired. If you have people like this on your staff, fire them. The reason this quote infuriates me should now be obvious. It basically says that all software engineers are people who don’t know how to do their job.

We should know better by now. We should realize that the things that I have listed above are exactly what a good software engineer needs to be able to do day in and day out in order to be successful in the modern marketplace. You have to be able to understand the problem you are trying to solve. You have to be able to communicate that understanding to the rest of the team, many of whom may not be fellow software people. You have to keep communicating this understanding until the others understand it as well.

A software project is, at its core, an iterative collaboration that translates initially vague requirements into the relatively rigid confines of the computing machine. The job of the software engineer is to facilitate this translation and at the same time to be able to guess how long it will take to implement it in code and then spend the long hours needed to debug that code so that the project can ship something that is as close to what was initially desired as possible.

Then we have to do it all over again for version 2.

In this environment, it’s obvious along with everything else they have to know how to do, two skills are critical to the success of a software engineer:

1. Plays well with others.

2. Communicates effectively.

These are exactly the two skills that the New York Times thinks we poor progammers don’t have. This is why they have tickled my pet peeve. This is why, for tonight at least, I hate them.

Afterword

Later in the same issue of the paper, there is a great piece about “nutritionism” and how it has ruined food. So I guess I will forgive them. Eventually.

Hii and His Wii

by peterb

When I told him about the blue-nippled chicken-woman in Zelda, psu thought I was exaggerating.

But now he has to suffer through it himself.

Out, Damned Spam!

by peterb

Due to some aggressive spamming, we’ve tightened up our filtering on comments recently. If you’re a regular commenter, you might want to consider registering an account and posting as a logged in user. It’s free, and we won’t give out any information about you to anyone.

We’ll continue to approve legit comments as we notice them, even if you’re not logged in, it just may take longer for them to appear if our robot overlords don’t trust you.

Carrots with Honey Butter

by psu

Tonight my brain can only handle writing down a small recipe. I’ve never had much use for carrots outside of using them as a partner to potatoes in stew. But here’s a fun way to do them. I must have stolen the recipe from someone, but I can’t remember who. My wife says it was Bittman, so I must have changed something because I don’t like Bittman.

Start with about a cup or two of cut up carrots. Not too big, not too small. Steam these in a basket for about 10-15min, or until they get tender but not too soft.

Now get out your frying pan. Put in some butter and a bit of oil, whatever you usually do. Toss in the carrots, mix it around. Add salt and pepper, mix it around. Finally, drizzle a small bit of fresh honey over the top. We found honey at the farmer’s market this summer, which inspired me to try this.

Let everything stew a bit, then toss the result on a plate. If you do it right, you should get the nice sweetness and softness of carrots in stew without the need to spend three hours making stew.

Game Publisher To Release Game Soon; We Reprint Their Press Release Here

by peterb

Tea Leaves has learned that PR Games’ new title, Hype V: Revenge of Hypenos, has gone pre-gold. Hype V, the fifth entry in the ground-breaking Hype series, has been eagerly awaited by gamers everywhere. In an interview, included in the press release, PR Games president Barry Womble said “I am pleased to make a statement that will make sure that all news coverage of Hype V will be ‘on message’: Bump mapping. Online multiplayer. Exciting downloadable content.”

PR Games Liason to Online Amateur Press, Judy Nails, concurred with Womble’s analysis. “We think that Hype V, with its bump mapping, online multiplayer, and excitable downloadable content, is going to be warmly received by the online community, the ‘early adopters’ and the ‘hardcore’. In fact, we know it will be, because they have no choice. The gamers who read gaming websites religiously visit sites that update regularly. The gaming websites themselves are therefore driven by a need to publish many articles a day, in order to appear current. But who wants to generate that much original content? No one! Consequently, we send out our press releases and the gaming websites publish them practically verbatim, sometimes just prepending ‘[Site name here] has learned that…’” God,” Nails gushed, “it’s almost like a dream come true.”

When asked by herself whether any gaming sites might decline to print the release, or whether sites might publish details not included in the release to get exclusive content, Nails smiled ruefully. “That doesn’t really happen very often. First off, most people reading the web are just skimming articles, not reading in depth. So if 8 gaming magazines print a press release, and a 9th one doesn’t, the conclusion the casual reader reaches is that the 9th site isn’t as up to date as all the others. So you have to print something. And as for doing research and getting a scoop: what is there to say other than ‘Hype V, with its bump mapping, online multiplayer, and exciting downloadable content is coming out soon?’ No, we fully expect that everyone will be on message. Hype V will be in stores this spring. Pre-order your copy today!”

News of Hype V’s imminent release has spread quickly throughout the blogosophere. Hundreds of gaming news sites are lauding it for its impressive bump-mapping, its online multiplayer, and its exciting downloadable content. To learn more about Hype V visit our “media” area, where you can find PR Games-provided screenshots onto which we have placed a Tea Leaves watermark. You’ll also find movies in several video formats, none of which are supported by your browser, and an area to download demos that will make you register with our site, click on 13 pop-up ads and wait in line for 20 minutes before downloading the file, during which the download will hang halfway through. Users who pay for our “Platinum Account” will only have to wait for 3 minutes.

Uncritical, fawning “previews” of Hype V based entirely on press packet materials are expected in the March issues of all gaming magazines everywhere. Tea Leaves looks forward to intially declaring Hype V to be a “must buy” and “Game of the Year,” and only using it as an example of one of the 10 worst games of the decade about 18 months from now, when most of our readers will have forgotten that they purchased the game based on our recommendation.

My Wii and Mii

by psu

I found myself awake on Sunday morning at 6am. I couldn’t get back to sleep, so I did what everyone else is doing these days. I went to the Target to see if there was a line of people waiting to get a Wii. It was cold on Sunday, so there were only about 10 people there. I waited about ten minutes, got a ticket and then 45 minutes later walked into the store and picked up the machine. Since I got there before the store opened, this breaks the letter of my usual rule, which is to never buy anything during a fake shortage. But, since the Target did not sell out before I left, I think I maintained the spirit of the rule.

So here is a first impression: the machine is not quite magical, and Madden sucks. I might get rid of it.

OK I lied. I probably won’t get rid of it. I already bought some Wii points after all. However, it is true that the machine is not quite magical and Madden does suck.

Pete has alluded to the fact that the Wiimote seems both more precise and less precise. I think I can be more specific. The Wiimote is fantastic at gesture recognition, but it is a craptastic pointing device. I will use an old-skool analogy here. Back in the day, there were games that used the old Apple II paddles for control. These games worked in one of two modes. Some games would position the square that represented you on the screen by reading the absolute value out of the paddle. Others would read deltas from the paddle and move you to the right place based on the deltas. Pointing at things with the Wii feels like trying to play the first sort of game. This is ironic since it’s almost surely the case that the machine is using a combination of triangulation and interpolation to run the pointer.

All I know is, it’s impossible to hit small targets or move the pointer a small distance without it jumping around and missing. The UI of the machine seems geared for this, since the buttons are all very large.

Which brings me to Madden.

I like to play Madden as more of a tactical strategy game than an arcade football game. Sadly, some interface choices on the part of EA make the Wii version of the game nearly impossible to play this way. In order to beat up on the computer team effectively, you need to be able audible out of the play you picked and into something that will work better against the opponent’s defensive alignment. To do this on a PS2 you do this:

1. Hit square, hit one other face button to pick a play you previously stored as audible.

2. If you audible to a pass play, you can further change the routes of your receivers by hitting the Triangle button and a couple of other face buttons.

The result it that you can completely change up what you do in about 2.4 seconds.

Here is how you do it on the Wii.

1. To audible you point the Wiimote at the screen. Then you wave it around to figure out where the cursor is. Then you slllooooowly push it around to try and get the little orange dot under the QB, who normally already has an orange circle under him. You can’t hit the O-Line which is 2mm in front of the QB, because then something else happens. You can’t hit the RB 2mm behind the QB because then something else happens. Then you hold down the A button, then cancel because you missed. Then you try again. And hit cancel because you missed. Then finally you get the menu .5 seconds before you get a penalty for delay of game.

2. Changing receiver routes is almost as hard, but not quite. First you have to bring up the play-art screen. Then make the receiver you want to change the primary receiver. Then you can audible his route. Then maybe you need to pick some other receiver as the primary.

The result is that it’s nearly impossible to set things up at the line before the play clock runs out. Not surprisingly, I find this frustrating. The game’s play calling screen also requires that you use the pointer to pick formations and plays. This is also remarkably error prone and annoying. In general, it seems like EA decided to try and use the Wiimote as a surrogate for a mouse, and this fails spectacularly. Thus, my dreams of a Madden that has the gameplay of the PS2 version but with slightly better graphics are dashed again. So far every single version for one of the new consoles is crippled and awful in some way.

Meanwhile, most of the gesture controls are more effective. Passing, stiff arms, and so on are all not that hard to pull off. I can’t figure out kicking, but I can never figure out kicking.

The gesture controls also make Wii Sports about 50 times more fun than Madden. No pointing at tiny targets that you just can’t hit. Wii Sports is pure swinging flailing dancing fun. I’m sure that some will claim that’s it’s just a tech demo lacking in “depth”. These people should be ignored.

Finally, I couldn’t walk out of the store without Zelda. I ran Link around the opening village a bit. I only have two things to say before playing this game more:

1. People complaining about the graphics are morons.

2. The controls are kind of sloppy and hard to get used to, but then that’s exactly how they were on the Gamecube too, so no real complaints.

The Wiimote targeting in Zelda is a bit better than Madden. There is a setup screen that lets you calibrate the sensors to be a little less spastic. But even with all that, targeting the slingshot without auto-aim is still slow, no faster than the old analog stick. Meanwhile, the gesture mechanics all work pretty well. It’s too bad every swing gets you the same kind of swing though. You swing up, Link swings sideways. Boo.

While Madden is something of a bust, Zelda and Wii Sports and the virtual console are more than enough to justify the hour or so that I waited to get the box. Overall one has to marvel at how shrewd a tactical move the Wii has proven to be. Rather than pile features that nobody wants into a huge and expensive behemoth, Nintendo has delivered a nice little white box with a few new twists that most everyone will enjoy. And, they can make money on every box they sell for around half the price of the competition. Here’s hoping that there are a few good games next Christmas so they can keep up the momentum.

New Ratings System

by psu

We here at Tea Leaves don’t rate things that we review. In particular, we don’t rate the video games that we review. After all, we are self-absorbed wankers with an inflated opinion of the quality of our own writing. We would like to think that we provide insightful, almost literary commentary rather than a simple consumerist analysis. We want to tell you what it’s like to play the game, and maybe a little bit about what the game means. Of course this is all just pretentious nonsense. We play the games and then we write down the first random thought that pops into our heads.

In this spirit, today I present a new ratings system for the video games that we write about. I call it the “Ebay” rating system. The principle is pretty simple. I buy a game. I rate the game according to the number of times I play the game before I give up on it and sell it on Ebay. The scale is from 1 to 5. If I make it to 5, then the game is at least worth keeping. These days, that’s about the highest praise that I can muster.

This system is inspired by my most recent scheme of avoiding Gamefly. The scheme is also simple. Find someone who will sell your games on Ebay for you for free. Then, whenever you get the urge to try a new game that you are not sure of, don’t worry. Buy the game at full price and play it for a week. If you can’t make it through five sessions without avoiding that seething hatred and general frustration, have your Ebay friend list it. Inevitably, some moroncustomer out on the interweb will show up and pay you apromixately five dollars less than retail to take your game away from you. Why these people don’t just walk down to the local Target and buy the game for five dollars more is a question that will never be answered by God or Man.

Anyway. The first game I used this system on was the 360 version of NCAA Football. Man, I tried to like that game. I played it every night for a week, and every single session ended with me staring at the television with a look of complete confusion and disbelief on my face. I simply could not fathom how a game could be so completely frustrating to play.

Later, I picked up the 360 Splinter Cell, which I reviewed here. Under the new system, the game would rate about a three. I got $55 for the thing.

For reasons that still elude me I bought Rainbow Six Vegas sometime after this. I think I also bought Final Fantasy XII at the same time. Rainbow Six lasted 3 nights. FFXII is a solid 5. I played it for a good month and plan to keep playing it for at least another week.

I believe I used the proceeds from the Rainbow Six sale to buy the Xbox (not 360) version of the new Splinter Cell game, which I have enjoyed. It’s at about a 4 now, but if I make it into the second set of missions I think it will reach the plateau of a 5.

So there you have it. Never let it be said that we here at Tea Leaves can’t occasionally distill our content into easy digestible bits. Plus, it’s cheaper than Gamefly!

Birth of America

by peterb

Next up in my Huge Pile Of Wargames is AGEOD’s Birth of America, published by Matrix Games.

Google informs me, although I find it hard to believe, that I have not written any articles on Tea Leaves that use the word “grognard.” Grognard, as I’ve heard it used, is a word to describe a hardcore player of “board” wargames. The sort of person for whom a night without calculating the percentage chance that an assaulting tank will overrun dug-in infantry is like a day without sunshine.

Birth of America is a game that could have been written by a grognard, yet it’s playable by the casual gamer. That, in my mind, is a bit of an achievement.

My first exposure to grognard-style war games came in the late 1970’s, when I was about 9 or 10 years old. My dad picked up a game for me at a flea market called Battle Fleet Mars, by a company called SPI. He figured hey, Peter likes space. He likes board games. This is a space board game for two players. Maybe it’ll be fun!

The game came with a bunch of really cool boards and a ton of cardboard squares, which I eagerly punched out. I read the instructions, which began with a nicely written dramatic summary of the start of a rebellion by the Martian colonies against an Earth-based oligopoly called the Ares Corporation. After that, the game described the rules. I went to my dad and said “I don’t really understand this. How do we play?” Dad spent an hour reading the game manual, after which he put it down, looked at me, and said “I have no idea how to play either.”

That’s a pretty typical first exposure to a grognard game. Old-school grognard games weren’t really designed for fun the way you and I understand it. Some people played them because of fascination with a particular historical period, while others played them specifically because they enjoyed a particular type of “game as simulation.”

There are two things about this type of game: first, they all assume that you already know how to play war games, and they’re usually built around a unifying idea. The unifying idea behind Battle Fleet Mars was to simulate 3-dimensional ship-to-ship combat. To do that, they provided two boards with empty grids on them, one labeled “X-Y” and one labeled “X-Z”. “I’m firing a missile” you might announce. Then you’d count off impulses and every so often, based on the speed of each ship and missile, move the appropriate chits on both the X-Y and X-Z boards. In other words, the game was completely barking insane(footnote 1), and being able to figure out how to play it is more a sign of fairly well-developed mental illness, rather than an indicator of any sort of deficiency.

The arrival of computers made grognard-style games infinitely more playable, although it took a while for designers to fully adapt to the advantages that modern UIs offer. In the better designed games, the plusses of grognard-style games (attention to detail, nice maps, intriguing “what-if” scenarios) are still there, while the minuses (looking up numbers in tables, realizing you’ve lost three of the most crucial of those goddamn stupid square cardboard chits, having to smell the guy next to you) are gone.

Which brings us to Birth of America which is, as I said, a grognard game with a very non-grognard interface. The game’s unifying theme is the idea that during the period of the American Revolutionary war, great swaths of territory were being patrolled and controlled by a minimal number of military units.

This theme focuses the game in some very interesting ways. Many older computer games think of war games as being like Chris Crawford’s Eastern Front, or Gary Grigsby’s War in Russia — static battle lines of seemingly endless units reinforcing each other and slowly pushing like sumo wrestlers. Birth of America, contrariwise, is more like a game of New World Whack-A-Mole. For example, in my first crack at the French and Indian War scenario I force-marched Braddock’s army out through the Alleghenies and took Fort Duquesne by storm before the first winter, only to find that French raiders were able to burn fields all the way from Virginia to Philadelphia, unopposed except for ineffective local militia. In a more typical wargame, you would probably have had the option to recruit more units and set up a picket defense. In this game, that’s not really practical: you’re a few thousand Europeans on a huge continent, most of which consists of dangerous wilderness.

The game is strategic, rather than tactical, which is to say logistics are of significant importance. Operating in enemy-controlled territory will quickly deplete your troops of supplies. Contrariwise, taking strategic towns will impact the level of support you receive from the local populace, which will in turn affect your militia levies. Each scenario lets you play as either the British or American (or, if appropriate, French) sides, and indicates before you start which side is favored to win. Most of the scenarios are fairly evenly balanced. The British, generally, have better troops and more mobility, while the Americans have greater local support and a more consolidated position. The French can sabotage enemy forts by hiding extremely stinky cheeses in their larders.(Footnote 2)

Each turn simulates a month of real time. You issue orders to your commanders and their armies, and when you hit “end turn” each day is simulated. In addition to movement, you can order troops to maintain one of four “postures” — assault, aggressive, defensive, or passive. If two units are in the same region and at least one is in aggressive or assault posture, combat occurs. Combat is resolved automatically, and on the next turn you’ll receive a report of the result of the carnage. This is in some respects the weakest part of the game; even after playing a few full games, I have trouble interpreting the after action reports of battles. It’s never exactly clear to me why I won (or lost) a given battle. That in turn makes it hard to plan future operations.

Weather is simulated — woe betide the army that finds itself in a wilderness area in winter, when the map is covered in white — and armies will suffer more attrition when in the backcountry as opposed to the more developed areas. You will have the assistance of various native tribes in different scenarios. Since the natives aren’t idiots, they always return to their home settlement for the winter. Your regular troops aren’t quite so lucky. In addition to regulars and militia, there are also artillery, supply, and various types of naval units at your disposal.

The game ships with a straightfoward tutorial which introduces the interface, although not the strategies. The polish on the game is fairly high. There are a few unfortunate UI interactions, but for a game of this type the overall quality is satisfying.

So, should you get it? I think there are two types of people who would be entranced by this game: those who are fascinated with this period of history, and those who think the specific strategic challenge of fighting in a large area with only a few troops is interesting. For the casual gamer with no interest in early American history, Birth of America is probably a little too abstruse. For those who are interested in the colonial period (yes, re-enactors and everyone who enjoyed Colonial Williamsburg, I’m looking at you), you should definitely download the demo and check it out.

Birth of America for Windows, $39.95. Developed by AGEOD, published by Matrix Games. A free demo is available. The publisher graciously provided a review copy of this game.

Footnote 1: …and boring.
Footnote 2: OK, I’m lying about that last one.

A Day in the Strawberry Mashup Walrus

by psu

As a general rule, I don’t like covers. This makes me Pete’s mortal enemy. Part of the nature of modern music is that much of it is performed and recorded by the people who wrote the music, and these recordings form what I perceive to be the correct way to perform the piece. There are exceptions to this small psychological tic, but not that many.

I particularly dislike covers of the Beatles. There is a famous family incident wherein Karen’s grandfather asked her in hushed tones if I disliked music because a MUSAK arrangement of Eleanor Rigby came on over the radio, causing me to slump my head into my hands and sob like a little child. The Beatles should sound like The Beatles. It’s just wrong if they don’t. With this in mind, I find it amazing that I have enjoyed this new record, Love, which mixes and matches and layers and deconstructs the classic songs in unexpected ways.

To give you an idea of what’s going on here, the second track on the record starts with the opening chord from A Hard Day’s Night. It then jumps into that drum solo from The End on Abbey Road. Under this you hear the string buildup from A Day in the Life layered over the opening chords from Get Back. Then there is bit of guitar solo from The End and finally it all drops away and we are into the main body of Get Back.

I should hate this shit, but on this record it works.

The producer of the album, Giles Martin (son of George Martin), worked from the original session tapes which were digitally recorded for ease of manipulation. The arrangements are done with a careful thought and attention to detail. There are unexpected juxtapositions, different versions of familiar songs, and there is the fun of trying to guess where everything you are hearing comes from originally. Ultimately, I think the album works because through all of the digital trickery, it sounds like The Beatles. The style, energy and creativity of the originals all come through in these mashups, no matter how thick the mash gets and you can’t help but get addicted to it. Finally, as others have said, the record sounds fantastic. The remixed tracks pop out of the speakers, even after they’ve been encoded into an iPod.

The fact that a project like this can succeed illustrates an interesting difference between modern musical performances and those further in the past. As I said before, the recording is at the center of much of modern music. While much of The Beatles original genius is in their sheet music, almost as much is in the recording and the production of those classic albums. What this record made me realize (years late I’m sure) is that in the digital age we are also now free to interpret recorded music in ways that are similar to how performers in the past used to interpret sheet music. The original session tracks can serve as raw material for any number of different musical statements. Inevitably, some will be more worthwhile than others. For me Love is a testament to the talent and taste of both its original creators and their new interpreter.

Whole Flax Seed Crackers

by peterb

Lately I’ve been trying to limit my intake of white starch. Most whole grain crackers seem to be 1% whole grain and 99% white flour. But the other day at Whole Foods I found a yummy little package of flaxseed crackers. They were crispy, flavorful, they held up well to cheese, and were otherwise nearly perfect. The only problem was that they cost something like $6 for a tiny little package.

So I figured out how to make them myself.

I searched the net for a while, but most of the recipes I found use a combination of whole flax seeds and flax meal. The purist in me, once he knew that crackers with whole flaxseed were possible, would settle for nothing less. So here’s how to do it.

Ingredients:
-some flax seeds (try between a 1/2 cup and a cup for your first batch)
-some water
-a couple of teaspoons of salt.

Put the flax seeds in a big bowl and add fresh water until they’re just about covered. Leave them alone for 15 to 20 minutes. When you come back, most of the water will have been absorbed. Add more water (about the same amount as you did the first time) and stir. Go away for another 20 minutes. When you come back, the flaxseeds should be thoroughly slimy, covered in a substance that looks and feels just like eggwhites.

Preheat the oven to 200 degrees.

Cover a pan with parchment paper. Dump the mixture out on the pan and spread it out with a spatula. You want a “thickness” of about 3 flax seeds or so. Precision is not critical here. Put the pan in the oven and ignore it for 45 minutes or so. When it comes out, it should be mostly dry. Peel the mixture off and rip it into manageable chunks on a plate (they will still be somewhat soft, but shouldn’t actually be wet — if they’re still wet, put them back in the oven, and possibly turn up the heat). Leave the chunks out to air-dry.

Congratulations. You now have yummy flaxseed crackers, with no gluten, very few carbohydrates, and a better taste than most of what you’ll buy at the store.

Legion Arena

by peterb

I have a stack of strategy games I’ve been meaning to review recently. I was talking to psu about this just the other day. He was saying how he always thinks they sound great, but when actually faced with the prospect of playing one, he tends to lose interest fairly quickly. I, in my turn, said that I tended to play them until the computer defeated me in a particularly offhand and crushing way, at which point I’d throw the game across the room and yell at it for cheating.

A fairly common attribute of strategy games is that they tend to be time consuming, and they tend to require sustained concentration. In today’s space-age-au-go-go world, it’s pretty rare for me to find enough free time to focus intently for, say, 4 hours — friends come visit, the phone rings, or what have you. This means that the only strategy games I can truly enjoy anymore are those which, through smart design, let me enjoy the good parts of strategy games (”Ah, a clever problem. Let me try this solution. It worked — I’m a genius!) while avoiding the bad parts (”Since I lost my job at the Taco Bell, I’ve been carefully modeling the effectiveness of artillery suppression at the Battle of Antietam, using this scale model I’ve built in my mom’s basement. Want to see my combat tables?”)

I’ve written about some of the better games of this genre before. Here’s another one. It’s called Legion Arena.

Legion Arena is a fast-playing yet thoughtful tactical-level game that simulates field encounters between armies in the era of the middle Roman Republic. It also borrows some concepts liberally from role-playing games. The game is presented as a series of encounters between your legion and various enemies. The most important tactical choice you make is how to deploy your troops, and what their initial orders are. Terrain is critically important: lightly armored troops have a strong advantage in wooded, rocky or boggy terrain, while heavy infantry and cavalry perform best on an open field. Troops can be given a set of initial orders, such as “short hold,” “advance,” “flank,” and will try to carry them out faithfully. When one of your centuries comes into contact with the enemy, they rush each other and clash swords.

It’s at moments like this that Legion Arena shines. It feels a bit like being able to control the camera in one of the battle scenes in the Lord of the Rings movies. Each of the troops in your legion is individually animated, and this helps eliminate some of the abstraction that can afflict military games. While you can issue orders during a battle (allowing for a substantial delay for a runner to deliver your new orders) there’s a sense that the chaos of the battle is, once joined, nearly beyond your control. This is a great incentive to get your battle plans right the first time.

Battles are generally not won by killing every enemy, but by making enough of the enemy’s units rout. There are few sights more satisfying than watching 70 soldiers drop their weapons and flee headlong from the field. As long as they’re the other guy’s.

Battles earn you gold and prestige. You can spend prestige on replacement soldiers for your legion, and you can spend gold on additional troops of varying types, as well as equipment that improves your troops abilities. Likewise, your centuries earn experience points which can be spent to learn more skills. You can quickly develop and personalize various armies; creating anti-infantry or anti-cavalry specialists, for example, or marksmen, and so on.

The game ships with three campaigns: a short tutorial campaign, a very involved Roman campaign, and a smaller but still lengthy Celtic campaign. An expansion pack called Cult of Mithras is already out, which has Romans and Zombies. I’m telling you, Zombies = Profit!.

It’s a great game, though, even without the zombies. The game is, as I’ve discussed, tactical in nature. Those who are looking for a grand strategy game won’t find it here. Rather, Legion Arena focuses very intently on doing one thing, and doing it well. In this they succeed grandly; I can think of a number of other recent games that tried to straddle the border between strategy and tactics and failed at both. With this game, I can decide to play for only 15 minutes, play one battle or two, but still be engaged and challenged. Try doing that with, say, Civ IV. The decision to focus the game firmly on the tactical level was a smart one.

Now if I can just convince them to license the battle visualization engine to the guys who made Dominions 3..

Legion Arena was developed for Windows by Slytherine Software. The Mac version is available from Freeverse Software. Demos are available for both platforms. Freeverse Software graciously provided a review copy.

Saturday in the Strip

by psu

It was another Saturday in the Strip. La Prima and Il Piccolo Forno were as full as always. Actually, they were even more full than usual, especially for a weekend in Janurary. There was coffee coming out of the cafe. There were baked goods and other food in the bakery. People milled around outside. People shuffled in and out of the doors. People enjoyed each other’s company in the presence of the best combination of coffee and baked goods that the city has to offer. But this Saturday was different. The pastry wasn’t right. The pastry wasn’t right because Antonio passed away last week. The pastry will never be right again.

I first experienced the magic combination of La Prima espresso and Antonio’s pastry in the U.S. Steel building. This was in 1994 when I had my first job Downtown. La Prima had set up a stand in one of the lobby areas of the building. I recall that it was next to a sprawling coffee stand that took up most of the rest of the lobby, complete with a service counter, tables, and so on. The stand seemed overmatched, but it had two things that the other place didn’t:

1. Good coffee.

2. Antonio’s mele.

The mele are hard to describe. They are substantial, yet not heavy. They are covered in a sugary syrup, but they are not too sweet. The pastry has the perfect combination of a flakey outside and a chewy inside. The only person on earth that I know of who doesn’t love them is my wife. I never figured that out. But life has to have some mysteries.

The cart stayed up in the lobby of the tower for a while, but eventually it was gone, unable to compete on a volume basis with its neighbor, who could sell metric tons of soupy brown water to the ignorant bankers and lawyers until the end of the world.

Later, I found out that La Prima had a retail location in the Strip and that Antonio and his wife had set up shop next door. We started going on Saturdays, and the occasional weekday morning. Initially, I would get coffee and Karen and I would share some combination of the whatever was available. There were mele, but there was also the temptation of the muffins (chocolate chip!), the sfogliatelle, the cream puffs, the peach cakes, the olive bread, the fritatta, the tortas, the cookies, twists, and the pizza.

The pizza deserves special mention. My single greatest food dilemma at Il Piccolo Forno in the morning is pizza or mele. The mele are the perfect sweet pastry to go with your coffee. The pizza is simply the best pizza that there is on this earth. Sam said it at the memorial service on Saturday and Sam was right. The crust is thin with just the right combination of crunch and chew. The sauce is something you could eat by the spoonful by itself. The cheese never falls off. My personal favorite are the the plain, the pepperoni, the anchovy, and most of all, the green olives.

Over time, Saturday at Sam and Antonio’s place became a ritual so ingrained that missing it for more than a week or two became painful. We came to know the regulars who showed up at the place around the same time we did every week. My son does not recognize any baked muffin product that did not come out of Antonio’s oven as a correct and edible food item. He’s young but he learns fast. Pete and I probably ended up writing this humble web site together because we used to meet up in the Strip on Saturdays for a while a few years ago. In my own ignorant self-centeredness, I thought I was at least familiar with most of the people who went through that place in the mornings and on the weekends.

Now that Antonio is gone, I realize that I was wrong. I barely knew any of the people he served and befriended on a daily basis. The memorial service on Saturday showed this to me. There were hundreds of people there, all of whom cared about Antonio and his family enough to come out to the Strip on a rainy afternoon and stand in the chilly air to celebrate his life and everything he had given us. The best measure of the impact that this simple bakery and its owners have had on the city around them is the crowd that was at the memorial service on this Saturday afternoon.

I didn’t really know Antonio that well either. It is not in my nature to strike up that sort of personal relationship on a regular basis. It’s a regretful failing. I do know that he was kind enough to let me take pictures in their place for a student photography project that I was working on. He was even kind enough to tell me that the pictures were good. I know that he and Carla loved to play with my son, and they would even give us pizza for the right to do so. Both he and Carla have fed us extremely well at certain times when we desperately needed it. But I don’t have any great Antonio stories, not like the people at the service had.

My best story is actually about Carla. When I worked at my second startup downtown, we would sometimes take long lunches in the Strip because we were running on funny Internet Bubble VC money and we didn’t need to work. Il Piccolo Forno had recently started doing their pasta lunches and the special pasta that day was Lasagne. They make this wonderful lasagne with ground beef and bechamel sauce. One of the guys we had with us, Joe, saw this on the menu and ordered it without thinking. Then, a minute later, he realized that he forgot to ask if it was vegetarian. He tried to get Carla’s attention a few times, but failed to do so before the food came out. The place was very busy, and Carla put the plate of food down and zipped off to get more. In one final desperate act, Joe flagged down Carla and asked if they had any vegetarian lasagne or if he could trade his dish for something else. He was about halfway through his question when Carla ran out of patience and just blurted out, “Lasagne has Meat in It” and stormed back into the kitchen to finish the next set of orders. This sums up the style of the place. There are simple rules. You follow these simple rules and you get great food.

After the service, we went back to La Prima, where they were serving coffee and food. I doubt if I could have named a tenth of the people in the place. All of the regulars that I was familiar with were there. The old Italian guys, Craig Marcus, that kid who is always there with his mom, the various bakery helpers, and on and on. Even if the pastry wasn’t right, we could all sit there and remember all of those other Saturdays when the coffee was perfect, the mele and pizzas still warm and the tables and sidewalks full of people being enriched by this bounty.

Return to Return to Infinite Space

by peterb

I’ve written about Weird Worlds: Return To Infinite Space before. But I simply wanted to say:

It’s been about a year, and I’m still playing it. It lacks a little bit of the approachable lickability of the earlier game (simply by having a “large” map option), but it’s still a fantastic game. I am rapidly becoming a Shrapnel Games fanboy, even if they’re just the publisher.

Weird Worlds: Return To Infinite Space. $25 and a Mac or PC will get you more fun than you’ll have with pouty androgenous antiheroes all year long.

iTunes Rules

by psu

iTunes told me today that it has 440 albums in its database. That number seemed high to me, but I have been ripping the occasional disk once in a while ever since I got my iMac two years ago. And, every new disk I buy generally goes into the machine. After bootstrapping the one true indexing system, I have been more motivated to actually rip and catalog the disks. While iTunes is not the ideal catalog database, you can muddle through by following some simple workflow rules. The goal is to have the music be easy to browse and search on both the main iTunes machine and in the iPod.

The first rule is that there are only three genres of music:

1. Pop

2. Jazz

3. Classical

I reject the ludicrous and neurotic over-categorization of music. Especially popular music. So, R&B is pop. Blues is pop. Electronic Trance Drool Dance Laser Techno Jerk-Off Ska Vocal Sampling … is pop.

The reason for this is simple. It makes it easy to construct shuffle playlists, party shuffle lists, autofill lists, and so on. I don’t have time to sit there and write complicated queries to match against every freak’s idea of what the correct set of genres is. Having only three makes this easy.

The second rule is: the iTunes data model is fairly simple, so aggressively de-normalize the data. This is especially true for Classical music where the single artist single song model really breaks down. If you are not careful, you’ll go and browse albums or songs on the iPod and see 50,000 titles called “String Quartet XYZ in B Major” and so on. This is useless. The solution is to put the key artist or composer in every field of the database so they will show up in all major views in both iTunes and on the iPod. Of course, you have to do some work to be careful and keep your de-normalized formats as uniform as possible. Life is hard.

Sadly, almost no one who uses the CDDB follows these rules, so for most Classical records, you have to completely rewrite the meta-data.

The third rule is: Multiple disk albums count as one album. Do not put the disk number in the title. This will make iTunes think it’s a completely different album, which is sort of stupid. Instead, use the “Disk N of M” meta-data fields. I forget about this rule from time to time and have to go fix things.

The final rule is: if you have a filing system for CDs, put the CD into the filing system immediately after you rip it. I never follow this rule, so my disks are all over the house in little piles and I can never find anything. It’s getting better though. I have about 140 disks filed now. So I guess I have about 400300 to go to catch up to my iTunes database.

Buona notte, Antonio

by peterb

Ti mancheremo molto.

Like a Velvet Glove Cast in Iron

by peterb

“Nobody owns life, but anyone who can pick up a frying pan owns death.” –William S. Burroughs

Last night while cooking on my ancient, somewhat crappy electric range I heard an ominous “pop!” Some magic smoke came out, and the circuit breaker tripped. I switched burners, reset the breaker, and went back to cooking. But afterwards, I wondered if this was a Sign that I should be looking at a new range. So after dinner I did what any right-thinking American would do. I did some online window-shopping.

For those of you who haven’t shopped for a cooking range recently, there are basically three options. Putting aside the question of gas vs. electric oven (the answer is “you always want electric”), you still have to pick a stove top. The three reasonable choices are gas, electric coils, or electric-heated ceramic.

Gas stoves are a little more efficient, but generally have dodgy heat control (the lower the heat you want, the dodgier), and are annoying to clean. Electric coils work wonderfully at low heat but are also annoying to clean, and often look cheap. Ceramic stovetops are attractive and are very easy to clean.

I was leaning towards ceramic when I discovered an amazing fact: most manufacturers recommend that you don’t use cast-iron cookware on ceramic stovetops. This, for me, is enough to eliminate them from consideration. I can cook over electric, gas, steam, wood, charcoal, or the scorched flesh of my enemies. It doesn’t really matter where the heat comes from. But you’ll only take away my cast-iron skillet from my cold, dead hands.

If I had to pick only two pieces of cookware for my kitchen, they’d be a cast-iron skillet, and a stockpot. Everything else is negotiable.

Cleaning the Skillet

For a number of years, I was confused about how to clean a cast-iron skillet. It seemed like there were so many rules! Don’t use water! Don’t use soap or detergent! Don’t use steel wool! Anything which violated the sacrosanct and mystical act of seasoning the skillet is verboten, and will subject you to the mockery of sophisticated people. Most of those people can explain in detail how you shouldn’t clean it, but never deign to tell you how you should clean it.

Eventually, though, the magnificent Alton Brown explained how to do it in simple terms, which I will pass on to you:

Heat the skillet a little bit if it is cold. Dump a generous amount of very coarse kosher salt into the skillet. Get a paper towel and scrub the skillet with the towel and the salt. This should take care of even the toughest sticky goo in the skillet. Then you dump the salt out and rub it with another paper towel with a little bit of a neutral-tasting oil on it. That’s it.

Have fun in the kitchen!

The title of this article comes from a graphic novel by Daniel Clowes that has nothing whatsoever to do with stoves. Or skillets. Unless you’re cooking fish roe.

Play Me Some of That Old People Music Baby

by psu

Left to my own devices, I tend to listen to older music which is arguably for older people. I like Classical music, especially from the late Classical through the Romantic periods. The more modern stuff is OK, but you have to pick and choose carefully. I also like a lot of old Jazz, up through the classic period of the middle to late 1960s. I also like modern recordings of modern groups that are stylistically similar to music like this.

This leaves me in a bit of a bind with respect to pop music. I don’t pay attention, yet I need a certain density of the stuff for car trips and whatnot. Well, with the aging of the Baby Boomers, I have found my happy medium, so to speak. I only buy pop music that I hear about on NPR.

This didn’t start as any conscious plan. I think I was in college when I just stopped having time to pay attention. The last contemporary band that I can remember following was Talking Heads, but really only up through their Little Creatures album. They had already long since peaked anyway. In graduate school, I bought primarily highbrow LP records of serious music. Pretty soon, I hadn’t bought a pop record in several years.

Over time, I noticed that occasionally NPR would do a story about some band somewhere, and by some miracle they could actually play music. For example:

- Laura Love
- Robinella and the CC String Band
- Camille
- Fountains of Wayne
- The Kashmere Stage Band

In retrospect, it was inevitable that NPR would become my pop music source. Unlike Jazz or Classical, I don’t have a compass for pop music. I don’t have a feel for the various performers, song writers, and performance styles. I don’t know what I like and don’t like. I also don’t want to have to “explore” and “discover” the acts I like on my own. I don’t have the patience to deal with Sturgeon’s law to find the occasional record that I can listen to. In other words, I want NPR to help me out in the pop music realm the same way others might want for Classical. I want them to digest the material for me and then spoon feed it to me in a series of small digestible bits.

They do this very well. From time to time, each of their news shows will profile some band. These interviews are usually boring and pointless because musicians play music, they do not speak intelligently on a wide range of subjects. In between the boring interview bits, they will play clips from the record. If I can stand to listen to the all of the clips in the story, there is a good chance the record will be good. This happens maybe one time in ten. For some reason most band profiles you hear on the radio are breathless interviews with artists of oh-so-deep integrity who unfortunately can’t play an instrument or sing in tune.

However, over the last few years, the hit ratio seems to be increasing. This makes sense. Since NPR is run by old people, they have started covering more and more records that are actually good! The longer they go, the older they will get. Just this week the morning show ran an extended interview with the son of George Martin, Giles. The subject? The soundtrack for a Las Vegas circus show featuring mashups of original Beatles songs mixed and merged and mashed together from digital versions of the original four track tapes. Of course I had to buy that. Who can resist such a thing.

This Is What I Do

by psu

Once in a while, in the midst of casual conversation, someone will ask me what I do. When I was a graduate student, I would mutter something about computer science research, algorithms analysis and by the time the word “geometry” came out of my mouth after “computational” their eyes would glaze over and they would back away slowly. When you work in research, you can scare people away with the power of your abstraction.

I don’t work in research anymore. I work in software production and once in a while I will spend some time trying to figure out how to boil the essence of the job down to a simple sound bite. With a few release cycles behind me, I finally came up with the right catch phrase. If you work in software engineering, and you are actually shipping something, you spend most of your time doing one thing: fixing bugs.

This insight is not surprising. After all, software is complicated and notoriously difficult to specify and design. The number of flows through the state machine that represents your average application with a GUI is staggering, and you can’t really account for all of them ahead of time. The reality is that even though we try to do a lot of up front design and specification work ahead of the implementation, we can’t escape the inevitable fix then test then fix then test some more cycle between when we think we have implemented all the features and when we can actually ship the final product.

I’ve been debugging code for more than 20 years now, and it’s always been basically the same process:

1. Find a sequence of operations that fails or produces the wrong answer or the wrong behavior.

2. Make sure said operations produce exactly the same failure every time.

3. Watch the application fail over and over again performing this sequence of operations.

4. Isolate the failure to a particular piece of logic going haywire.

At this point, you generally know why the bug is happening. The critical activity here is between steps 3 and 4. If you think of the application under test as a gigantic state machine, what we are trying to do here is tease out the small subset of the application state that becomes incorrect in the particular case we are testing. Then we need to figure out how the state has become incorrect. The dance you do is generally the same.

1. You run the test case right up to where the application is about to fail.

2. You query the application about its state.

3. You run a a bit more.

4. You look query the application about its state.

And so on until that magic moment when between two program steps you see the state transition from being correct to being wrong. At this point you have essentially recorded the failure for posterity, and you are ready to fix the bug.

In all the time I’ve fixed code, the basic tool that you use to perform the above task has remained basically the same. You run the code in a debugger, which allows you to control the program’s execution so that you can pause it at any time and look at the state you are interested in.

I have never liked debuggers. I don’t like them because it’s hard to get them to tell you what you want to know at the exact time you need to know it. I always end up in one of two scenarios: either it takes too long to single step all the way to the failure or I have to play whack-a-mole with breakpoints until I get lucky and manage to break at just the right point. Interactive applications also present some special problems because sometimes it can be hard or impossible to set breakpoints at certain places in code, because doing so lands you in the debugger after every event loop and the application can never make forward progress.

One alternative to debuggers is to put a lot of tracing code into the application itself, so the application essentially records its state to some external file over and over again while it runs. Then you slog through all of this trace to find the proof you need. This can work some of the time, but without some systematic way to format and analyze the trace, it’s hard to glean any information from it. It is also notoriously difficult to effectively instrument the program to spit exactly the state you need and nothing more. The result is that rather than sitting in front of the debugger going step step step you sit in front of your trace, reading all the text to find the bits that tell you what went wrong. It’s not necessarily any easier.

It always seemed to me that the ideal tool would be a debugger that let you run the failing test case once and recorded everything that the program did into a single place. You could then load this trace into a debugger and play it backwards and forwards, up and down, left and right, stopping and starting however you please. The debugger could also let you query and display any piece of state that draws your fancy as it plays the trace back. Since the trace captures absolutely everything that the program did, you can imagine an arbitrary level of introspection. In other words, such a debugger would combine the incremental step step watch watch aspect of a traditional debugger with the convenience of having tracing, but without the disadvantages of either. You don’t need to actually run the test over and over again, you just play back the trace. You don’t need to strategically instrument the code by hand, you just need to query the state of the application for the pieces you need to know about.

In other words, it would be the perfect tool for what software engineers do most. This tool would take pictures of programs failing, and allow us to discover those pictures in a way that is much less tedious than before. Happily, a friend of mine has been working on a system which does exactly this. Robert O’Callahan’s Amber system promises to provide most of what I outline above. You can capture full trace and then play around and query that trace for the proof that you need. Of course, the capture part is pretty slow, but this is offset by the fact that you only need to do it once rather than dozens of times like we do now.

Rob deserves great fame and glory showing us that this can be done. Here’s hoping that people figure out how enormously cool this tool could be. Maybe sometime before I retire we’ll finally build a debugger that doesn’t suck.

Played To Death: Sam & Max Edition

by peterb

The January issue of Played To Death is out now and can be downloaded for free. In addition to the magazine’s fine content, you can write in for a free beta key for NCSoft’s new MMORPG “Dungeon Runners.”

My reviews this month include Railroad Tycoon as this month’s Retrograde, Trauma Center for the Nintendo Wii, and a review of the long-awaited PC adventure game Sam and Max Episode 1: Culture Shock.

You can also read my paranoid rantings about how “PC vs. Console” is the wrong question in the “Vertical” op-ed column.

If you’re so inclined, you can help us whore PTD at Digg. You get absolutely nothing for doing this except my undying love.

Enjoy.

Archives and Links