[ Content | Sidebar ]

ant

November 10th, 2005

I converted dbcdb’s build system from Make to ant a couple of days ago: besides ant being on my list of tools to learn about, it seems to be impossible for Make to work well with Java. Previously, I’d gotten around this by using a Makefile that works 99% of the time, and having my first acceptance test do a make clean; make all. Which, actually, worked well enough – the project is small enough that rebuilding from scratch takes something like five seconds – but there’s no excuse for not getting your dependencies right.

Upon converting to ant, however, I ran into an unpleasant surprise: my acceptance tests were taking two or three times longer to run! After some digging around, I found the issue – each acceptance test had been doing a make, which I’d replaced by running ant, and it turns out that it takes ant about three seconds just to figure out that it doesn’t have to recompile anything. So I’d replaced one 5 second delay by seven 3 second delays; oops. (Actually, it was made worse because of a problem in my ant usage; those are the numbers after I fixed the problem.) After a bit of hemming and hawing, I’ve decided to remove the ant calls from the acceptance tests other than the first one; hardly a satisfactory solution.

Of course, an ant maven would tell me that the right thing to do is to have the acceptance tests be run from within ant, at which point dependency checking would solve that problem. Which is absolutely correct, if I were sure that I’m going to stick with ant in the long term. But I’m not at all sure of that: at some point, I’m going to switch the project to another language (Ruby is the current leading candidate), at which point I won’t have any obvious reason to stick with ant. (To confuse matters further, Ruby also has its own make replacement.) I’ll definitely add a task to run the unit tests though; it is nice that all the ant guides talk about JUnit right up front.

I’m also a bit nonplussed by the fact that Emacs isn’t handling editing the build.xml file properly; it looks like its xml mode might do better if there were a DTD that I could point it at, but apparently such a beast doesn’t exist for ant, because the language is extensible. So I have to hand-indent it, which is barbaric. Don’t get me wrong, that’s more Emacs’s fault than ant’s fault, but it’s still pretty annoying. I’m sure there’s a solution out there, but right now I’m not feeling motivated enough to go find it; I’ll limp along until it either becomes more of a problem or vanishes entirely. And I’m still make-centric enough to be not entirely comfortable with ant: for example, its lack of small-scale targets bothers me. What if I just want to compile one of my .java files (plus its dependencies, of course), not the whole batch? (Though I just read a possible solution to that, using properties.)

test blog spam

November 8th, 2005

I had been having problems with blog spam, but I’ve been mercifully free of it for a while. I’d noticed that they were spamming the same posts over and over (no idea why; I couldn’t see a pattern, though I admittedly didn’t look very hard), so I turned off comments on those posts, and they died down.

But today I got quite a bit of spam, hitting posts relatively at random. I ended up turning off comments for all posts June 2005 and earlier; hopefully that will help somewhat.

The weird thing was that the spam comments just said “testcomment” (with a number attached), and similarly the links were just test links. I don’t know what’s going on here: is some jerk testing out a spam program? Is it somebody’s idea of fun? Weird.

sudoku revisited

November 7th, 2005

I was infatuated with sudoku for a little while, but then I got bored with it: I was at a stage where puzzles were either too easy or required random searches, neither of which I enjoyed.

But I’ve started doing them again, and I would like to recommend the brainbashers sudoku web site. For one thing, their web interface is quite good, at least in my limited experience. Its default setting catches really stupid mistakes where you enter a number that’s duplicated elsewhere; those are 95 percent of the mistakes I make, and I’m quite happy to have a computer catch them for me as soon as I enter them instead of waiting until I’m almost done with the puzzle to realize that, at some point in the distant past, I screwed up. Also, it lets you enter a list of possible choices for a square, which is essential for hard puzzles. The only complaint I have is that it requires you to use the mouse, but I can deal with that – there’s enough thinking going on that I’m not clicking too much.

The other nice thing is that their hard setting is just the right level for me: I can always do the puzzles through pure logic, but I never feel insulted by them, and almost never bored, while some of them are quite tricky indeed. I have gotten better since the first time I gave up on the genre, incidentally – there were solution techniques other than random searches that I hadn’t mastered.

I’m still not sure how long I’ll keep on doing them – some of the puzzles are starting to feel a bit repetitive to me again. But I’m enjoying them for now.

jade empire

November 6th, 2005

Sitting down to play Jade Empire was a very pleasant experience. I’d just given up on a not very satisfactory game. It had been a while since I’d played an RPG, so I was primed for the experience. I selected a character without too much agonizing, entered the initial area, talked to a few people, got some hints of the world. Wandered around, got a feel for the scenery. Got some plot information, a plot-related task, a side quest. And not a single false note to be heard. I relaxed more and more, putting myself into the hands of the game; I must have played it for five or six hours that first day, which is a rarity for me.

So: what’s it like? Like Shenmue, it resembles an interactive martial arts movie, but one based on older Chinese themes instead of modern Japanese/Chinese themes. It’s perhaps a bit strange that Japanese video game studios have no compulsions about making movies based on western themes, while western video game companies don’t commonly make video games based on eastern themes.

Here, aside from making a perfectly nice world to set the game in, the choice of an eastern theme has a concrete effect on the game design. RPGs based on western fantasy models tend to have one character who is a fighter, one character who specializes on offensive magic, and one character who specializes in defensive magic. (And they typically throw in a fourth character for good measure, perhaps a thief or ranger or archer.)

This sort of specialization is, I would hypothesize (not being an expert), perhaps less a part of eastern mythological themes. (Or perhaps BioWare is counting on my ignorance, and using exoticism as a cover for opening up game play.) Your character can fight with hands, fight with weapons, cast projectile spells at enemies, heal herself, and transform into monsters, among other things. You’re free to emphasize one aspect of your character over others if you wish as you level up, but the game in no way forces you to do so.

Or rather, as you progress, not just as you level up: while your basic power improves as you level up, you gain new capabilities in other ways as well. You learn new techniques as part of quests or through purchases. You have an amulet that you can add gems to to tweak your stats. As a result, you have quite a lot of choices in you you develop your character. And those choices aren’t set in stone: you can change your fighting techniques during a match, and you can change the contents of your amulet to, be, for example, more focused on persuasion when wandering through town while more focused on defense while in a dungeon. In many ways, this flexibility in improving your character reminds me more of the Paper Mario series than of a traditional RPG (though it’s rather richer than Paper Mario); I like it. I haven’t played BioWare’s earlier Xbox RPGs, the two Knights of the Old Republic games, but I suspect that being a Jedi gives them a similar flexibility.

This, in turn, changes the plot, party, and gameplay dynamics. While most RPGs have you start off controlling a single character, and focus more on that character than other party members, you really are focused on the party as a whole (or at least the subset that you use frequently): the party members are, for example, a necessary part of any battle in a traditional RPG in order to provide you with a sufficient range of capabilities. In Jade Empire, however, your main character can do everything by herself. (Or himself; you choose your main character from several possibilities of both genders.) You do end up accumulating quite a sizeable party, but experience doesn’t apply to them, so you don’t have to worry about leveling them up. Instead, you choose one of them as a companion while wandering around, but you can change which one accompanies you relatively frequently; the companion can fight with you in the battles, but you’re always a much more effective fighter than your companion. Your companion doesn’t even have to fight: you can choose to have your companion stay out of the battle and give you support (e.g. heal you). When you do the latter (as I did for the second half of the game), your companion ends up feeling more like another form of equippable item than anything else.

This, in turn, allows your party members to play a part in the plot that is somewhat larger than in normal RPGs. Their motivations and loyalties are often somewhat unclear; and if it’s necessary for them to disappear in order to further the plot, the game can do so, secure in the knowledge that it isn’t depriving you of valuable leveled-up characters. Having said that, the game does still fall into the typical RPG trap of excessively large parties: several party members play no significant role in the plot, and wouldn’t be missed if they were removed from the game. As is, the question of “just what are these other party members doing while I’m off adventuring, and why aren’t they helping me fight my battles?” still arises.

Another huge effect of your do-it-all main character is that it frees the game from the need for turn-based combat. If your fights involve four party members, it’s hard to avoid turn-based combat. But if your fights involve the main character plus a single largely ineffective sidekick, having you directly control the main character while the computer controls the sidekick works fine. While I’m willing to play RPGs with turn-based combat, it is a drawback for me; I like this way better.

This also makes it natural for battles to take place in the normal environment, though you can’t avoid them in the way that you can avoid them in, say, Paper Mario. Fortunately, there’s rarely any need to avoid them: the battles are at set places, there are no wandering monsters, so battles never interfere with your exploration. (Skies of Arcadia still makes me shudder.)

Like BioWare’s earlier RPGs, you can play your character as good or as evil. Which is a fine feature, but not one that I’m likely to take advantage of: I basically never replay games, and in any event I don’t want to play my character as evil. Of course, like almost all RPGs, there’s one gaping hole in the notion of what constitutes good behavior: when going through other people’s houses, you’re free to break pots, open chests, and in general loot your hosts blind.

And the game made one very good design choice that is much more unusual than it should be: while it has the traditional three difficulty levels, you can change the difficulty level on the fly. I played through almost the entire game at the middle difficulty level, which was a good match. But there were two boss battles where, after struggling with them for a while, I decided that I wasn’t enjoying them, and (in one case) would probably have to replay some earlier areas to leave myself in an appropriate shape to beat them. Which I didn’t want to do. (It didn’t help that they were preceded by load screens and cut scenes that I couldn’t skip.) So I simply changed the difficulty level to easy, won the boss battles (and had fun doing so), and set the difficulty back to medium. Which was much more fun than spending an extra hour or so on those battles.

It’s a nice looking game. Though the cut scenes actually look rather worse than the in-game play; pity they didn’t use the in-game engine for more of the cut scenes, and use less compression on the remaining ones. (If one or the other is going to look good, they made the right choice; Final Fantasy this isn’t.) I have no idea why the game is rated as mature; I didn’t mind Miranda watching while I played it.

Despite the above paean, the game does have some flaws. It’s divided into seven parts; the first is a sort of training area, where the possibilities of the game are opening themselves up to you. After that comes a smallish city, and then the capital city. In both of those parts, you have a good idea of how the game works; you can do the bare minimum necessary for the plot, or you can pick up perhaps a dozen or so side quests. I chose the latter strategy; I thoroughly enjoyed it. I was wondering, however, what the next part was going to be like: the whole game so far was drawing me to the capital city, so I was curious about (and looking forward to) the major plot shift that would send me out to other cities to explore.

There was a major plot shift (which wasn’t entirely to my taste, but that’s fine); it didn’t, however, send me out to other cities to explore. Instead, parts four through seven of the game were all dungeons, with essentially no side quests to perform; all put together, they took less time to complete than part three by itself. I’m not sure what happened – maybe they had a larger game mapped out, completed the first half of the game and the dungeons of the second half, and then were forced to publish. In any event, the balance of the game ended up out of whack, and the game ended up a little short. Normally, I would be quite happy with a game that took me 15-20 hours to complete – a lot of RPGs could use some slimming down – but I was enjoying this game enough that I would have preferred a 25-30 hour game where the dungeons at the end were replaced by a couple more cities.

Great game; I wasn’t sure if I’d play Knights of the Old Republic, but if this is what BioWare is capable of, then that game has vaulted to the top of my to-buy list.

(Well, near the top of my to-buy list: I just went out and bought We Love Katamari, Shadow of the Colossus, and Pirates!. But I’ll get to it soon!)

release planning

November 4th, 2005

For months, I’ve wanted my team to try actual XP/Scrum-style release planning; yesterday and today, we actually did it. I’m glad we did; if nothing else, it was quite interesting, and I think/hope it was productive. This planning is for a “release” at the end of the month that we’ll use for demos and trials and give to our external partners for integration work. (We do such releases every month.)

We don’t have an appropriate real customer to use for planning, so my boss was doing the Customer role. Which wasn’t completely ideal (a product manager might have been a better surrogate), but was good enough, and even had its advantages given the multiple teams working on the product.

We didn’t have an existing product backlog to work from, so we started by going through the new features that were high priority, and brainstorming each enough to come up with some tasks we could work on this month. Also, we discussed some things that we might work on other than new features: refactoring, fixing bugs, improving our testing. It is a flaw in our development that we have to do any of that outside the context of adding new features; we are flawed. (But we’re getting a lot better.)

Then he went through the tasks and marked them as priority top, middle, low. We then discussed how much work we’d do this month and the extent to which we habitually underestimate (like I said, we are flawed), and came up with a budget for our estimates this month.

Then he went away for a little while and we estimated the top and middle priority tasks, and came a proposal for how much we’d like to work on the hygiene tasks (refactoring, bugs, testing). We had been worried about external dependencies for some of the tasks; we talked about where we could minimize that and where we couldn’t. And there was one high priority area where we needed outside help to break it down into tasks, since it was in an area where another team had done most of the work.

Amazingly enough, the concrete top and middle priority items used up less than half of our budget; we put in a modest but nontrivial budget for the hygiene tasks, and that still left us with a noticeable budget for the vague high priority area. So we ran this by our Customer, and he agreed that it was a good plan.

I liked the outcome a lot. It’s a workable plan; there will be surprises, but I’m pretty sure we didn’t seriously over- or underestimate how much we can get done. We’ll make concrete progress in several important areas, including some areas that I’d been nervous about starting. We have some limits in place to discourage our desire to work on what we want to instead of what is most valuable for us to work on. We did a good job of analyzing possible roadblocks and working around enough of them that the remaining issues should be manageable.

There are some improvements we’ll want to make for next time. We spent too much time breaking down big issues into manageable tasks; in the future, that breakdown should be mostly done before the monthly planning meeting. So I’ll try to meet with my boss to do some more of that, so that next month we’ll be better prepared. And maybe my team can spend a little bit more time estimating the resulting tasks in advance, to further speed up the meeting. Having said that, though, while spending half a day on this is a big chunk of time, I’m almost positive it will pay for itself quickly: if it causes our team to spend even a day working on high-priority items where, left to our own direction, we would have worked on low-priority items, that’s a win right there.

I’ll make a Big Visible Chart out of this, we’ll break it down into weekly plans, and get going; I’ll report back at the end of the month!

questionable content

November 2nd, 2005

The most recent addition to the list of web comics I regularly read is Questionable Content, and this strip is a pretty good example of one of the main reasons. I am completely ignorant about the aspects of the music scene that the characters are into, but I just like to listen to people delve knowledgeably into what the rest of the world considers trivia. It reminds me of (some of) the good parts of grad school, I guess.

It doesn’t hurt, of course, that I like the interactions between characters. And the occasional throwaway Dune reference. Though probably what really sold me was the one where somebody couldn’t get the Katamari Damacy theme song out of his or her (I forget) head. Boy, do I know that feeling.

(And I just started playing the sequel, We Love Katamari. We do, we do!)

resident evil 4

October 31st, 2005

I didn’t play any of the Resident Evil games during the last generation. That was probably mostly because I didn’t have a Playstation back then; eventually, RE2 came out for the Nintendo 64, but it didn’t make enough of an impact for me to want to buy it. Also, the genre didn’t excite me too much: I don’t read horror books or watch horror movies, so why would I want to play horror video games?

The remake of the original on the Gamecube got a lot of attention, though. So I bought a copy, and I’m glad I did. While I’m not a big fan of the genre, it’s healthy to dip into different genres every once in a while to learn from their best examples. The graphics were stunning – this was near the start of the current generation, but even now they’ve held up well, I suspect. I wouldn’t want most games to have a fixed camera, but they used it to reasonable dramatic effect, and if that’s the price to pay for the graphics, so be it. I’m not a big fan of respawning enemies, but if there’s any game where that makes sense, that was the one. Limiting saves was a bad idea, the control scheme was awkward, there were probably other flaws, but even so, really good game.

Not a good enough game to make me go out and buy the rest of the series, mind you, or even to get me to buy the first new game in the series on the Gamecube, Resident Evil Zero. But then Resident Evil Four came out to much acclaim; the acclaim is well deserved.

To start with the superficial: it turns out that a fixed camera is not necessary for excellent graphics, you just need a really good development team with time to get used to the hardware. So they use an intelligent mix of third person with moving camera that goes into first person when you aim. It looks just as good as the earlier game; the cut scenes are done by the in-game engine, and look as good as most game’s pre-rendered cut scenes, but without compression artifacts.

On a side note, it would be interesting to track the development of POVs in action games; maybe it’s my imagination, but in this generation, it seems like there are a lot more games that are mixing first and third person, where last generation would have settled on one or the other. For example, I can imagine this game being a FPS in a previous generation, but third person plus first-person aiming works well. And, in the opposite direction, this generation’s Metroid games have gotten a completely different feel out of first-person than a traditional FPS, but those also drop into third person when necessary (morph ball).

Interestingly enough, it’s actually not much of a horror game. At the start, it was pretty scary: after fighting off the initial horde of enemies in the village, I was afraid to wander around much, being wounded and low on ammo, lest more people attack me. But more people didn’t attack me: after finding a save spot, I went back into the village, and wandered around it more, completely unmolested. So once the scary music stops, you really are safe for a while. Once I got used to that, I found that the game had a very nice balance in its enemy attacks: some areas have a few enemies around every corner, some areas have almost no enemies, some areas throw a horde of enemies at you that you just have to try to survive, and there are several boss fights. It keeps you on your toes, it’s pleasantly varied, and there’s always time after fighting enemies for you to explore and get to know (and loot) your environment. And no respawning to be found, unless you re-enter an area after being gone from it for a very long time.

The save points completement this well. You can’t save everywhere, but there are enough save points that, while there’s some tension getting between them without too much damage, you don’t have to constantly reload your game or block off hours of playing time to make sure you’ll make it between save points. (And you can usually go back to your previous save point without encountering enemies, should you so desire.) In addition, most times, when you die, it restarts you at a more recent point than your previous save spot: for example, if you die in a boss battle, you just have to refight that boss. And, mercifully, they gave up on the stupid “limited number of saves” idea from previous games in the series.

They also threw some bare-bones RPG-ish aspects into the game. Every video game has to have some aspects that make no logical sense, but are utterly necessary for gameplay reasons; items are a classic area where suspension of disbelief is necessary, and we see that here. You start off with a pistol, and pick up a shotgun quickly; periodically (once every save point or two), however, you find merchants, who are happy to take the gold that you’ve stolen and either sell you new weapons or, more commonly, upgrade your existing weapons. Exactly what these merchants are doing there and why they haven’t been infected by the parasites that have taken over everybody else’s body is never explained (good thing, too), but as a gameplay technique, it works fine. There are a few classes of weapons distinguished by the kind of ammo they use; you end up picking (at most) one weapon from each class, and upgrading it.

But they couldn’t let you carry around arbitrary numbers of weapons or other items – that would be unrealistic! Instead, you have to fit your gear into an attache case; as you progress in the game, merchants will sell you larger and larger attache cases, so in practice the size of the case is rarely a problem. So instead of something horribly unrealistic like letting you carry arbitrary amounts of items, you instead carry around larger and larger attache cases (which never show up in the third-person view, oddly enough), with loads of weapons, ammo, and healing items (but not key items or treasures – those you carry in some other, unexplained way), being able to switch weapons in and out of your attache case instantly! Much better.

And, like other games in the series, there’s ammo scattered around the environment; the amount is very well chosen so that you’re always under some amount of ammo pressure, but if you’re reasonably careful, you never quite reach the end of your ammo. The merchants can’t actually sell you ammo (even though they’re happy to buy ammo from you), except that they’ll refill your gun if you upgrade its ammo capacity, so you end up not reloading a weapon that you think you’re about to upgrade. None of this makes any sense, but the gameplay is very well balanced; the resulting illogic is more than worth the results.

The plot revolves around trying to save the president’s daughter; half way through the first part of the game, you find her, and get to protect here. (And occasionally she gets to help you, too.) Which is a pleasant enough change of pace, but ultimately an Ico style of gameplay wouldn’t fit this genre very well. They solve this problem by having her get recaptured three or four times during the game. So, as a result, she’s only with you maybe a third or a quarter of the time: you get the benefits of variety, but it doesn’t compromise the basic gameplay.

What else? There are some Shenmue-style quick time events; not many, but it makes the cut scenes a bit more interesting. The plot is interesting enough. It’s a good length (25 hours, maybe?). The boss fights are well designed. The levels are well designed. The puzzles, while hardly intricate, provide some structure to the game other than battles.

Don’t let the details here distract you: this is a great game. At every point, I felt that I was playing a game written by people who are confident in their artistry, who know the ins and outs of game design, who can throw in variety and interesting gameplay elements appropriately, and who are more than capable of painting some very attractive pixels on a television screen. My only regret was that, since I didn’t want to play it while Miranda was around, I was lucky if I could play it for as much as two hours a week; it took me months to finish, which I’m sure lessened the impact. But they were very pleasant months indeed.

css tweaks

October 30th, 2005

My first attempt at adding CSS to dbcdb was nice, but it had some flaws. In some places, I didn’t express the syntax as gracefully as possible; it put in an ugly and unnecessary scroll bar if your web browser was less than 900 pixels wide; and bright red is pretty unsuitable for a header color. So I’ve changed all that. (I’ve read through most of the CSS standard, though alas not yet the part about lists. Reasonably well-written.)

There are still some issues. I looked at pages with Safari, and in some cases the vertical spacing on the complex lists wasn’t what I wanted. I tend to think that the spacing between the header and data is a little large. Also, right now the header is an h1 where I override the font size to make it look like an h2; if I replace it by an actual h2, the page looks subtly different. (At least in Galeon.) It may well be the case that, in a month or two, I’ll have a reason to turn the header into an h2 (I haven’t decided yet); so I’ll defer that decision until later. And the spacing isn’t that big a deal; if I get enlightened by reading the list part of the spec, that’s great, but otherwise I won’t worry about it too much for now.

Busy weekend; I don’t have time to work on this much. Which is just as well, because the next big step is to tell it to use a SQL database as its backend, and I don’t know anything about SQL! So I really need to spend time reading about that. I can probably do some little steps in the meantime; a list of recently read books would be nice, for example.

dell bad; apple, ultra 20 good

October 27th, 2005

So I was just thinking that I would avoid Dell and get a Sun Ultra 20 and a Powerbook, when along comes this post; I guess I’m on to something.

(Part of the reason for my Powerbook craving is that all of the cool people at Sun seem to have one, including employee #1.)

dell annoyances; upgrade possibilities

October 25th, 2005

Our laptop took an unfortunate tumble the other day; it turns out that it’s not the best idea to pick up a laptop from a high shelf while carrying a dog in the other arm. Most of the laptop survived the journey, but the CD drive tray snapped in half; oops.

So I went to Dell’s web site, looking for a replacement drive. After a bit of clicking on links, I think I found the page that should list optical drives for an Inspiron 8200; unfortunately, no drives were shown.

Which annoys me; I guess Dell is of the opinion that I should have to replace my laptop every few years. (Which is consistent with other problems I’ve had with it recently: it doesn’t seem like it was made to last forever.) But I thought I might be missing something, so I tried to find an address to e-mail them to ask.

And I couldn’t find such an address; the only e-mail addresses they publish are for stuff that’s under warranty or for orders that you’ve already placed. Which is crazy – I want to ask a question which might (depending on the answer) cause me to give them money, and they don’t want me to be able to do so?

So it seems unlikely that our next computer will be a Dell.

Which raises the question: what should that next computer be? Some constraints:

  • It has to be able to run Linux.
  • It should probably be able to run something other than Linux. The main reasons here are that Liesl would prefer that, and that there are some video games that I’d like to play. (Civilization 4, recent Mysts, and Spore, when it comes out.)
  • At some point soonish, Miranda will want to start using the computer. It’s not clear if Linux would be adequate for her needs; it would be nice if it were hard for her to infect the computer with viruses, spyware, etc., though.
  • It would be nice to have a relatively lightweight, WiFi-enabled laptop to bring on trips, etc.
  • It would be nice for it to be easy to, say, add large hard drives.
  • It has to be able to drive my iPod.
  • It should be powerful enough to last for a few years.
  • Wireless networking will be increasingly important at home, as I buy new WiFi-enabled video game consoles.
  • I don’t mind spending some amount of money, but I don’t want to go overboard.

When I put this all together, it looks like buying a desktop as well as a laptop makes sense: the desktop machine is good for cheap power and expandability, the laptop is good for portability (and use in the den), and it will probably be cheaper and more satisfactory to buy two machines with different strengths than to try to buy one machine uniting their strengths. Plus, there will be more and more times when multiple people want to use a computer simultaneously.

I’m pretty tempted to get an Apple laptop: they’re some of the best designed laptops out there, I get the feeling that the operating system is good, and it would probably satisfy our desires for a non-Linux OS. (I think the video games that I’d want to play are popular enough that they’d be available for the Mac.) Of course, there’s Apple’s x86 transition coming up; I’m not sure which side of that fence I’d want to be on. (This purchase probably won’t happen for another year or so, so I really will have a choice.)

As far as a desktop machine goes, Sun’s Ultra 20 is pretty nice, and I can get a 35% discount on it. (Whether it will look so nice in a year isn’t so clear; I hope so.) It should satisfy my computing power needs for the time being. It can run Linux and Windows if necessary, but having it Linux-only sounds good to me. And the laptop can be MacOs-only, since I can run Linux applications remotely on it with X. (Which is another reason to make the desktop machine Linux-only, so people aren’t tempted to reboot it to run Windows while I’m in the middle of using it remotely…)

There’s no cable connection in the room where the desktop machine would go; I guess we’ll buy a wireless router and put it downstairs, and put a wireless card in the desktop machine?

It’s not clear how I’d migrate my existing music library to either Linux or MacOs to drive the iPod, but I’ll cross that bridge when I come to it; that’s certainly not a good reason to stick with Windows.

This is all a bit pie in the sky for now: I want to milk my existing setup until either the machine breaks or some external factor (Miranda, lack of disk space, whatever) makes an upgrade more urgent. On the other hand, judging from past experience, the machine could break at any time, so I should be prepared.

Suggestions, anybody?

style

October 23rd, 2005

I added a stylesheet to dbcdb; here is an example of what it currently looks like. Move your mouse over a link without clicking on it and notice the a:hover effect.

Most of the issues involved formatting definition lists properly; this page was helpful. I did have to modify my HTML, though; before, for compound entries (e.g. the list of volumes in a series), I had a single dt followed by a bunch of dd elements. I probably could have formatted that reasonably by adding an appropriate class, but I decided I liked bullet points for those lists, which I couldn’t figure out how to handle. (Hmm: looking at the CSS spec, maybe I should have dug deeper, but it looks fine now.) So I ended up nesting a ul inside a single dd, which is fine. (I still had to add a class to the latter dd.)

Let me know if anything looks wrong; I’ve only testsed it in Galeon, so while it should work in Firefox, Mozilla, etc., I don’t know about other browsers. And let me know if you have suggestions for ways to make it look better; I certainly won’t claim that it’s a marvel of web design as it stands.

Incidentally: books that I referred to during this were Cascading Style Sheets: The Designer’s Edge, which I wasn’t that thrilled with, and The Zen of CSS Design: Visual Enlightenment for the Web, which was fabulous. The latter is a discussion of the CSS Zen Garden web site; take a look. The CSS spec was useful, too; I should read the whole thing at some point.

generating valid xhtml

October 22nd, 2005

I just did my first work on dbcdb in about a month; if I was too sick to program for work, I was too sick to program on my pet projects. What I did was convert dbcdb to generate XHTML instead of plain old HTML. Which was trivial; the hard part was validating it. I still haven’t found a good standalone validator; I ended up running HTML Tidy on my generated output and comparing it to the original (after whitespace munging). But enough munging was necessary that I’m not sure I completely trust that; maybe I’ll end up using the W3C’s web validator instead.

semco

October 21st, 2005

I recently read Maverick: The Success Story Behind the World’s Most Unusual Workplace, by Ricardo Semler. Pretty amazing; they give a remarkable amount of control to their workers, have remarkably few layers of management, and are remarkably open, flexible, and responsive.

And, if the book is to be believed, it works extremely well. I was really impressed with their adapting to circumstances, to the extent that people would recommend changes to the company that ended up with their own job, even their own division, being eliminated. The ways they nurtured worker’s growth and development (both within the company and forming spinoffs) was great, too.

I have a lot to learn about how to manage, that’s for sure.

bill king, r.i.p.

October 20th, 2005

Bill King, the radio voice of the A’s for the last 25 years, died two days ago. I loved listening to him; he was an excellent play-by-play announcer, and he pulled in a delightful wealth of external referents. It will not be the same listening to A’s games next year.

(At least those of us in the Bay Area get a little more Jon Miller than the rest of the country; that will help somewhat.)

battalion wars

October 17th, 2005

I bought Battalion Wars for the Gamecube a month or so ago. Even as I bought it, I was thinking “why am I buying this when I have Jade Empire waiting to be played?” (Answer: I cut Gamecube games way too much slack.)

Anyways, I gave it a try. It’s a sort of RTS, which is a genre that I think I’d like but have essentially zero experience with, because of its PC-only nature. (Part of me is glad, because I suspect that its mouse usage would kill my hands.) It’s apparently a pretty basic example of the genre: you have set missions with set troops (both friendly and hostile), controlled from a third-person point of view (not top-down), where you’re directly controlling one character (you can change whom on the fly) while giving orders to other characters. No building units, no long-term development.

I could go into more details, but I won’t; after playing through four or five missions, my brain again asked why I was doing this instead of playing Jade Empire, to which I had no good answer. So I switched over to the latter, which proved an excellent choice.

(Addendum to my Xbox post: one thing I don’t like about the controller is the D-pad. It only has one major job, to tell if you’re pushing up, down, left, or right, but can’t do that reliably.)

xbox

October 16th, 2005

I finally bought an Xbox a few months ago. One thing it does right: it has a general console settings screen where I can tell it what my audio and video capabilities are. It’s just silly that I have to tell every Gamecube game “yes, I want surround sound; yes, I want progressive scan”. If I’m going to want those on one game, I’ll always want them.

The controller seems decent; I think I prefer the Gamecube controller, but it’s better than the PS2 controller. (In particular, the PS2 puts the left thumbstick in the wrong place.) If you leave the controller lying around upside down, it takes a while for the thumbsticks to recenter properly, but I can work around that now that I’m aware of the problem.

The machine has a bad optical drive: when I first turn it on, it has a hard time reading the disk. Fortunately, this can be worked around by opening the drive and then closing it. The annoying thing is that, when you open the drive, it kicks you out of the game you’re playing – why can’t it just put up a screen “drive is open, please close” like the Gamecube does? Too bad I threw away the receipt, though.

I’m not sure how many games I’ll play on it. I’ve already talked about the interestingly excellent Shenmue II; I spent about six hours yesterday playing Jade Empire, which is also excellent. Given how good the latter is, maybe I’ll give Knights of the Old Republic a try. Pirates sounds great. The Halo games have gotten good reviews, but I’m not convinced that their single-player modes are so hot, and FPS’s aren’t my favorite genre; given my lack of desire to play online, and my lack of local video game playing friends, I’m not sure I’ll buy them. What else? One of the Burnout series? If so, which? How is Fable? Any other suggestions?

shenmue ii

October 14th, 2005

Fortunately, the pneumonia drugs are working nicely. Compared to my dim memories of what I normally feel like, I’m still probably not doing too hot, but compared to the recent past, I feel great.

So: back to our normal subject matter. Today: Shenmue II. The second part of a three-part series telling the story of Ryo Hazuki’s quest for revenge in his father’s death. At least I hope it will be a three-part series: sales of the first two parts were such that Sega will need some convincing to produce the third part.

I played the first part when it came out on the Dreamcast five or so years ago; as I believe I’ve indicated here, it had quite an impact on me, the best of the games from that console’s short but glorious life. (Others being Soul Calibur, Jet Grind Radio, Space Channel 5.) It’s mostly an adventure game: get to know your map, figure out what the next key item or event is, find/trigger it, repeat. It also has a full-fledged fighting engine built in, with a hundred or so different moves.

Which is a distinctive enough combination, but there’s more. For one thing, the world of the game is glorious to explore. You start off the first part in your house, very closely modeled with tons of items that you can pick up, examine, carry around if you want to. (And not if you don’t: this is one game where the text adventure reflex of picking up everything will lead you astray.) As you make your way into the world, there are apartments full of doors to knock on, streets full of stores to shop in, and a pleasing wealth of other characters to talk to. You even get a daily allowance that you can use in those stores (or in vending machines): buy soft drinks, collectible toys, casettes, or play old Sega games in the arcades. And then you can just sit in your room (in the game) listening to those casettes, as I frequently did, if you’d rather do that than make progress in the game.

The other impressive aspect of the game is the theatrical nature of the game: it tries to feel like a martial arts movie (at least when you want it to, when you’re not listening to music or drinking random soft drinks), and carries it off better than any other game I’ve seen. The plot progress is very well done; while that’s a point of emphasis of most RPG’s these days, Shenmue has nothing to be ashamed of on that front. Such scripting, of course, depends on a variety of events coming off in sequence; the game provides the basic structure through key (adventure-game style) events triggering cut scenes, which are elaborated either by using the fighting engine (when appropriate) or, more simply, by forcing you to press buttons at certain times to get your character to, say, dodge appropriately in a cut-scene chase. These latter “quick-time events” may sound hokey, and obviously you wouldn’t want them to be a game’s main focus, but they really do work to keep you involved in long cut-scenes that are necessary for dramatic purposes. (Resident Evil 4 has also adopted QTE’s to good effect.)

And, on top of that, it has a pleasant selection of quirks, of which my favorite was the fork-lift races. What more could one ask for?

Well, a game that didn’t end in the middle of a massive cliff-hanger, for one. Apparently the original game was planned as the first of 16 (!) parts; I don’t really think they ever thought they’d release 16 separate games in the series, but the second part (the boat ride to Hong Kong) was jettisoned, parts 3-6 (Hong Kong, more Hong Kong, Kowloon, the road to Bailu) are in Shenmue II, and the remaining 10 parts will all be crammed into the third game in the series. (Given how the plot has progressed, I don’t think they’ll have any trouble coming to a successful conclusion in one more game’s worth of play.)

When I started playing Shenmue II, I’d forgotten the details of the first game. (It came with a preview movie, which I skipped.) Partially because of that, it took me a while to get back into the game. (There were other external causes; in particular, either I got a bad disk or have a bad optical drive in my Xbox, and the game wasn’t programmed to handle that gracefully.)

But the truth is, Shenmue II doesn’t start out nearly as well as the original. In the original, you could just spend time goofing off, getting to know the game, even getting an allowance every day to buy stuff. In the sequel, you have to earn money to pay for your hotel room every day; unfortunately, the main way to do that (working in a warehouse) is really tedious. They try to make the job interesting by turning it into a game, but fail miserably at that: the game has control issues, and it’s impossible to play the game well enough or badly enough to change the amount of money you make. (I suppose it’s possible to play badly enough to lower your paycheck, but you’d have to work hard at it.) And the amount of money you make in a shift of work, while more than a day’s rent, isn’t enough more to give you significant spending money. (Especially since you’ll want to spend most of the remaining money on maps.)

They do, I suppose, ease the pain by not giving you as much frivolous stuff to buy, but I can’t exactly see that as an improvement. And, if you wanted to break realism, I suspect that the game would let you get aways without paying for your hotel room; it also starts you off with items to sell, if you wish. But I didn’t like either of those solutions to the problem.

It gets better half way through Hong Kong, fortunately. On a game mechanics level, you stop having to pay for your hotel, freeing up your days. And even though I’d been spending my days with my nose to the grindstone, I’d seen enough of the city that I was starting to enjoy just wandering around in it. At the same time, the plot was getting me hooked again, getting me to care about characters I’d been meeting and introducing me to some interesting new ones.

So the rest of Hong Kong was a lot of fun, as was Kowloon. The level design in Kowloon was pleasantly different: most of it takes place in skyscrapers. Kind of weird skyscrapers, though: they arbitrarily decreed that most elevators would stop on a random subset of the floors. Well, not entirely random: it let them set up puzzles getting from place to place when an elevator ride would otherwise suffice.

The details of the gameplay felt pretty different from the original; I still enjoyed it, but I’m not sure it was a rousing success. There’s still a fair amount of fighting, but a lot more of other sorts of puzzles (e.g. having to press buttons to make it across rickety bridges). Unlike the first game, there’s no way to actually practice your karate, so you have to hope to be able to fight well enough in battles just by button mashing. Which, it turns out, you can; in fact, some key fights can be gotten through by just hitting X over and over again. (I’m pretty sure that wouldn’t have worked in the first game, but who knows.) I’m not sure this is a bad choice – it means that you can enjoy the game even if you only enjoy adventure games, not fighting games. Still, it feels like a bit of a loss.

So that’s Hong Kong and Kowloon; next comes Guilin, specifically the road to Bailu. And here the game takes a completely different and wonderful turn. No fighting, no shopping, no wandering around a town. Instead, you’re just walking down a road, through gorgeous scenery, talking to a new character you just met about her and your past. It’s basically an extended cut scene, with a few events thrown in to give you some buttons to press, existing only to advance the plot. (And to look pretty.) By the end of this, the plot threads are coming together, you know what the game is named after. (A tree, it turns out.) And somehow you’ve spent the last two hours of a video game doing basically nothing, watching an extended cut scene, and having a great time doing it.

So I’m looking forward to the third game. I just hope they make it…

pneumonia

October 11th, 2005

Two doctor’s visits later, it would seem that I have pneumonia. Sigh.

violent explusion of air

October 6th, 2005

Now I’m in my second week of flu. I could do without this.

From the virus’s point of view, the only point is to spread itself. Which breaks down into two components: reproduction and transmission. I’m not sure exactly where the reproduction is happening in my body; is it all over the place, or are some parts of my body hotbeds of disease reproduction while other parts aren’t helping in the cause?

As far as transmission goes, the mechanism is pretty clear: I’ve been coughing like crazy for the last few days, once my throat got irritated enough by the flow of mucus that’s been going down it. So are the nasal cavities where the virus has been reproducing itself? If so, is the mucus production somehow directly involved in the reproduction, or is it triggered separately somehow? Certainly a convenient mechanism for the virus: make lots of yourself, hang out in mucus that irritates the throat, causing said mucus to be coughed out into the rest of the world.

For that matter, why does the mucus lead to coughing in the first place? Why does it bother my throat for all that mucus to be going down it?

And what about the headaches? What causes them? Are they some sort of necessary byproduct of this process, or just a random side effect? Hmm. And the temperature changes?

At least I’m not getting serious body aches, like when I came down with the flu in college. That was really awful.

this spartan life

October 4th, 2005

I just watched the first episode of This Spartan Life. I’m pretty sure that my liking it wasn’t solely a byproduct of the fever-ridden state of my brain.