[ Content | Sidebar ]

more on counterpunch

January 24th, 2006

I subscribe to the paper edition of CounterPunch, but I’d never seriously looked at their website before today; clearly I’ve been missing something. Some examples, all from stories appearing today or yesterday:

  • This is just scary. It does make me happy that it’s a Reagan appointee and former WSJ editor who’s pointing it out: I’m sure there are many areas about which I would disagree with the author, but at least some of our core beliefs agree.
  • Plain old good reporting. Dig into DoD budget numbers, try to figure out what they mean.
  • Noam Chomsky being Noam Chomsky. If we’re going to propose standards of behavior, we should examine our own action in light of them.
  • Yes, voting machines can be hacked. Who knows the extent to which they have been hacked in real elections (my guess is only in a few relatively unimportant ones), but this should be reason enough to ditch the things unless they get subjected to much more scrutiny and come with a paper trail.

If only they would add an RSS feed…

iraqi death toll

January 24th, 2006

Just how many Iraqis have died because of our invasion and occupation? The press doesn’t seem to be doing a very good job of answering (heck, asking) this question, and it seems to me like a fairly important one. After all, the only potentially legitimate reasons for the war that I can think of are:

  1. It helps us.
  2. It helps them.

The original claims for the invasion were based on the first reason; they haven’t held up very well. (To be sure, I still believe that the first reason is the main cause, for a value of “us” that I don’t particularly identify with.) So what about the second reason? It’s great when a dictator falls from power. But we haven’t exactly seen a flowering of freedom, choice, and democracy in the country, and I’m ashamed to say that I’m not at all convinced that our occupation is a qualitative improvement over life under Hussein.

Which leaves the possibility that at least it’s a quantitative improvement in Iraqis’ lives. Which is a lousy reason for a war and occupation, but let’s run with it: can we get some numbers here? Was Hussein killing more Iraqis, or were we, for example? Here’s one article that tries to answer this question; unfortunately, halfway down the article, I get this feeling that it’s slipped into crackpot mode. This is, alas, a problem with CounterPunch: they talk about subjects that are woefully undercovered, and some of their reporting can be quite good indeed, but the editors have an unfortunate sympathy for crackpot science.

To be sure, I’m not completely convinced that the math in that article is bad; maybe statisticians would agree with it, or maybe it’s exposing a genuine difference in the statistical community. Anybody know? My statistical background is embarrassingly weak.

lean manufacturing reading

January 24th, 2006

I e-mailed the author of the blog I mentioned recently, and he was kind enough to put together a lean manufacturing reading list.

an interesting exception idea

January 22nd, 2006

Here’s an idea about exceptions that I hadn’t seen before: catch them as early as possible, and then

To avoid strong coupling between parts of the system we shouldn’t inform the caller that we had a problem. Instead, the object that catches the exception should set its own state such that it will answer future messages in the light of the problem that occurred. (In particular, the NullObject or SpecialCase pattern is useful here.)

I actually like exceptions just fine, but it would be interesting to think about how this suggestion might work out in practice.

lean manufacturing?

January 22nd, 2006

Various mentions I’ve seen recently make me think I should learn more about lean manufacturing. An interesting quote:

Kaizen activities in lean manufacturing often begin with red-tagging, in which all superfluous inventory, tools and rubbish are marked with a red tag and moved into one corner. At the end of a week, if any tagged items haven’t been used, they can safely be disposed of. Perhaps software projects and teams could begin the move to agile by red-tagging tools and code…

This entry from that blog is worth thinking about, too.

cambodian chicken curry

January 22nd, 2006

Tonight’s dinner. It takes a bit too long to make on a weekday: it’s not as complicated as the list of ingredients might make you think, but it does take a little while and requires you to juggle a few skillets. Nice if you’re looking for something a bit special to cook during the weekend; also, it is a rare guest in my experience who won’t be pleased by being served this.

It’s from The Elephant Walk Cookbook; I trust the restaurants continue to serve the populace of the Boston area well. I’ve modified the recipe lightly to reflect the way we actually cook it; the most significant difference is that the original recipe calls for a couple of pounds of whole chicken pieces. (I’m just not into large pieces of meat.) I did, however, leave all of the esoteric ingredients intact, despite the fact that we rarely or never use several of them; please don’t let their absence from your local supermarket dissuade you from cooking this recipe. We did use star anise once when cooking this, but I didn’t notice a difference; we’ve never used shrimp paste whith it, and while I imagine I probably would notice a difference there, our kitchen isn’t well enough ventilated to want to play around with the stuff. (Rotting fish; yum!)


Cambodian Chicken Curry, from The Elephant Walk Cookbook

Paste:
1/4 cup vegetable oil
4 stalks lemongrass, trimmed and sliced
3 dried New Mexico (or Anaheim) chiles, soaked, seeded, and deveined
5 garlic cloves, coarsely chopped
1 large shallot, coarsely chopped
1/2 inch piece of ginger (or galangal, if you can find it)
1 1/2 cinnamon sticks, cracked
4 whole star anise
9 cardamom seeds
1 small Asian nutmeg
16 peppercorns
1/2 tsp coriander seeds
1/2 tsp fennel seeds

1 cup water
1/4 cup coarsely chopped fresh cilantro stems
1/4 tsp turmeric
2 1/2 tsp shrimp paste
1/2 cup plus 1 Tbsp vegetable oil
1 can unsweetened coconut milk
1 – 1 1/2 lb chicken breast
1 medium onion, thinly sliced
2 Tbsp fish sauce
4 tsp sugar
1 tsp salt
1 – 1 1/2 lb potatoes, peeled and cut into 1/4 inch thick slices

First, make the paste: heat oil in skillet, and add the rest of the paste ingredients. Fry for about 5 minutes. Use a slotted spoon to move it to a blender, and combine with water, cilantro, turmeric, and shrimp paste; blend until smooth.

In a large, heavy pot, heat 1 Tbsp oil, add half the coconut milk, and cook for 2-3 minutes. And curry paste and cook for another 2 minutes. Add the chicken, onion, fish sauce, sugar, and salt, and cook for 5 minutes. Add rest of coconut milk, and continue to cook.

Meanwhile, heat 1/2 cup oil in a large skillet; fry potatoes until golden brown. Add them to the main pot when done; cook for a few more minutes to let the sauce pervade the potatoes.

bad patents

January 22nd, 2006

The Microsoft FAT patent scares me. In the past, I didn’t like software patents because patenting algorithms didn’t make any sense to me as a mathematician. But patents that prevent reverse engineering are directly harmful, too: those are my pictures on my digital camera, and it’s none of Microsoft’s business if I want to upload them to my Linux box. And then there’s this Microsoft patent application, which really is ridiculous.

Sigh. Should we just throw out the whole idea of patents, or are they actually helpful anywhere? Software patents are bad, even evil. Pharmaceutical patents are definitely used for evil: people die because of those things, people live in poverty because of these things. Maybe those are the areas where patents are currently getting abused the most; I’m getting increasingly dubious about the whole idea, though.

And I’m pretty dubious about the idea of copyright, too. Let’s give the whole thing up and start again. At the very least, let’s try to make sure we’re allowing the fewest protections consistent with the notion that their purpose is

To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.

Setting the whole prior art issue aside, does anybody seriously believe that patenting the idea of IM’ing smiley faces serves to promote the progress of science and useful arts? Or even useless arts?

bush text adventure

January 22nd, 2006

This is really funny.

good journalism

January 22nd, 2006

Despite my complaints a few days ago, I do think that the Mercury News is a decent paper by today’s standards, and this morning they reminded me why. They’ve been reviewing 700 appeals of local criminal cases; the results will appear in a five-part series that began with a special section of today’s paper, the main article of which can be found here. (The link may go stale after a week.)

Good stuff; it’s not serving advertisers or power interests, it’s just reporters putting in the time and effort to dig up facts, construct an intelligent narrative around them, and, with a bit of luck, help make the world a better place.

mindful programming

January 21st, 2006

The last section of The Fifth Book of Peace talks about Thich Nhan Hanh a lot, so I decided to read one of his books next. One of his big themes is “mindful behavior”; as I understand it, this means that, when you do something, you should simply be doing that, not thinking about or working on many things at once. When you’re walking, you should simply be walking; when you’re sitting, you should simply be sitting. I’m quite bad at that: right now, for example, I am not mindfully writing a blog post, but am also looking up periodically at what’s on the TV. (The anglerfish battle on Iron Chef, which is really quite something: maybe I should be mindfully watching it instead of writing.)

Anyways, it seems to me that some of the XP processes could be thought of as enabling mindful programming. Take TDD, for example: rather than trying to simultaneously figure out what your code should do and writing code that implements that as well as possible, you’re instead either writing the next test, getting a test to pass however you can, or tidying up your code. So you’re always focused on one quite narrow task, trying to do it as well as possible. Pair programming helps with this, too: it enables the driver to narrowly focus on implementing what is closest at hand. It’s not clear to me that the navigator is working mindfully, however: the navigator has the jobs of writing down potential future tasks as they come to mind (so the driver doesn’t have to worry about them), doing low-level checking on the driver’s work (e.g. syntax checking), and paying attention to their direction at a high level.

I suspect that the customer/implementor split could be seen that way, too: you’re either picking what’s most important or implementing the chosen stories. (Or estimating stories; I’m not quite sure how to do that mindfully.) And I suspect a mindful attitude would make it easier to accept the pause in your work caused by the integration process, too.

I guess I’m pushing the analogy a bit far by that last paragraph, and I doubt it’s profitable to explain all XP practices in terms of mindfulness. But I’m pretty sure that there’s something to this at the TDD level: it’s much closer to what I would understand mindful programming to mean than almost anything else I can think of.

interactive interaction with a language

January 21st, 2006

It’s fun having an excuse to interact interactively with a language, as I work through the Learning SQL examples and exercises; almost all of my interaction with languages since I was an undergraduate has been mediated through a compiler, and I’d forgotten what I was missing.

Hmm: I suppose I interact with bash all the time, but most of the time the interactions are so simple that it’s not really the same thing. Then again, interacting with SQL is hardly as rich as interacting with Scheme. And, now that I think of it, I do evaluate Emacs-Lisp expressions in the *scratch* buffer not infrequently, or redefine functions in my .emacs file (.xemacs/init.el, actually, but never mind that) and evaluate them without reloading the whole file. So I guess my life isn’t as barren as I thought when I started this post. The point that interactive interaction with a language can be quite pleasant still stands, though.

shifting cards between people

January 20th, 2006

At our weekly meeting today, my team members had some interesting comments on what had gone wrong over the last week. Among other things, we had planned to work on two 2-point cards; we break up cards that are larger than that, and in the past even cards that size have been problematic. In this case, we didn’t finish (or even come particularly close) to finishing one of the cards, while we breezed through the other card.

In the case of the card that proceeded smoothly, we already had a very clear, eight-step list of the tasks involved in carrying out the card. Normally, one person owns a card from start to finish (frequently pairing with others while working on it, to be sure); in this case, however, the card was owned by three separate people, as our schedules changed. But, because of the clear task list, it was very easy to hand the card off: I was the first owner of the card, and my pair partner and I finished off the first task one morning; I was too busy with other work that afternoon to be able to continue working on it, and one of my team members had just finished his card, so I handed my card off to him. (And he later handed it off to somebody else, perhaps because the latter was working alone in the evening.) Also, while I don’t think we ended up working on tasks in parallel (I was out of the office in manager training most of the week), we would have been able to parallelize many (though not all) of them. This would have been really useful if, for example, we hadn’t gotten around to working on the card at all until the latter part of week: by then, we might not have had enough time to finish the card without parallelizing, but the task breakdown would have allowed us to deploy our resources more flexibly.

We made progress on the other card, but not nearly as much or as quickly. (To be sure, it may have actually been more complex than the first card, despite the fact that both were 2-point cards: the points are just estimates, after all.) Again, it would have been nice to have been able to hand off the card: the card’s owner had to work on something else (something came up that only he could do well: a sign that we still need a bit more knowledge transfer, but that’s another story, and one which we understand better), so it would have really helped if somebody else had been able to easily pick up the work. Unfortunately, the lack of a clear roadmap made that difficult to do. It also would have been nice if we’d been able to parallelize the work, as it became clear that it was a bit trickier than expected; again, doing so was impossible.

So we’ve renewed our agreement that, if possible, we should break up each card into tasks during our weekly planning meeting. And, if we don’t quite understand the details well enough to do so then, then the card owner’s first task should be to come up with an implementation plan which takes the form of a task list. I’m pretty sure this will help us going forward. So, even though we’re not shifting roles as frequently the people on the podcast I discussed last weekend, it does seem that behaving as if we wanted the capability to do so would have some real benefits.

functor moustache

January 20th, 2006

I just got a piece of spam whose subject line was “functor moustache”; for some reason, this amuses me.

paper = air?

January 20th, 2006

The chapters of The Fifth Book of Peace are titled Fire, Paper, Water, and Earth. This, of course, sets up an analogy of paper with air. Which I can relate to, but after thinking about it, it’s either a bit too specific or a bit too general for me.

Words = Air: sure, I can get behind that. But the words I’m writing now aren’t on paper: they’re on a computer. And I don’t necessarily mind reading words on a computer, either: I’d just as soon read an article online as on a computer.

If we make the paper more specific rather than less, I also like Books = Air: one of the determining factors of my last two choices of residence was how many blank walls they had, so we could find places for our bookshelves (and places to add more). Now that I think about it, I rather prefer equating air with books over equating it with words, though I’m having a hard time articulating just why. Maybe it’s because I haven’t spent a disproportionate amount of time trying to actively work with words: I did go through a phase around eighth grade when I was trying to become a writer, but I’ve spent as much or more time working with mathematical concepts, programming, playing music, or trying to understand and improve power relations. So words don’t really stand out in my creative activities. But when it comes to consumption, books have played a much larger role in my life.

I, however, am not Maxine Hong Kingston: she does spend time crafting words. And, again unlike me, she spends time actually crafting words on paper; the thought of doing significant amounts of writing on paper makes my hands cramp. (And I have horrible writing, but am a fast typist. Which doesn’t make my hands cramp as long as I don’t overdo it; mouse usage, however, is another story…)

Editing, though, I do like to do on paper. Which sets up a bit of a disconnect, because I’d just as soon avoid having to print out what I’m working on; perhaps not coincidentally, the Tablet PC was the only Microsoft product that I can think of that has particularly excited me. Not that I’ve used one, but I’m sure that there are UI advances to be had there; and my DS experiences have shown me that I was underestimating the new elements that a touch screen can bring to your experience. Maybe when Apple comes out with something like that, and when display technology has taken another few jumps, I’ll get one…

magical mystery tour

January 19th, 2006

I was just listening to Magical Mystery Tour; what a good album that is. I only got it a year or so ago, when I was rounding out my Beatles collection; somehow it had never entered my consciousness as one of the great Beatles albums. But it really is quite fine; I’d heard most of the songs before (more than half of them are on the blue album, which was my introduction to the Beatles, which is doubtless coloring my reactions here), but I’m getting to like the others as well. (“Your Mother Should Know” is charming.)

Maybe the issue here really is that it’s hard to limit yourself when picking “great Beatles albums”. I might have started by saying Seargent Pepper, Rubber Soul, Revolver, and Abbey Road, but for all I know I’m only saying that because those are the albums I’ve had for the longest; what about the white album? Or Help!? I’m not a big fan of most of their earliest stuff, but after that it’s hard to say no.

shadow of the colossus

January 17th, 2006

Today’s game: Shadow of the Colossus. Developed by the same team that did the excellent Ico, and it shows: Liesl immediately commented on the similarity between the two games’ graphical styles, despite being unaware of the connection.

The gameplay of the two games is quite different, however. This game consists almost entirely of a series of sixteen boss fights, with only the smallest amount of exploration and plot development stringing them together. A paean to boss fights, I initially assumed; not something that necessarily excites me, but I trusted the team to not let me down too badly. I’m not completely against the concept of boss fights, after all: there is something satisfying about staying on your toes and figuring out the boss’s vulnerability, and when done well they can provide a satisfying sense of completion to your recent task. But when done badly, they just annoy me; I’m sure that I have ranted here in the past about how I dislike idea that the final boss fight should require you to first defeat the boss, after which the boss reveals his true form, after defeating which the boss then reveals yet another true form, all without any chance to save. Not the way that I want to spend a few hours of my time; gamefaqs make such battles (usually) bearable, but developers should know better.

Back to the game at hand: I’d been assuming it would be a paean to boss fights, but the reality turned out somewhat differently. Right before the first boss is a section of the environment where you have to climb walls, slide along ledges, jump from one ledge to another: a platformer tutorial area. And then I got to the first boss; lo and behold, fighting him was like playing a platformer, with the difference that the environment moves. Some areas of the boss you can’t climb on, but there are bone ridges that serve as ledges, and fur that you can climb on. (You’re supposed to work your way up to the boss to a glowing spot, which you stab repeatedly with your sword, while he tries to shake you off.) It didn’t feel like any boss fight that I’d ever played: a strange platformer variant, which is a pretty neat idea.

So, over the course of the next few bosses, my opinion changed: it’s not a paean to boss fights, it’s a paean to bosses themselves. It continued to have platformer elements that I’ve never seen in a traditional boss fight, and after a while, you start almost rooting for the bosses: they are noble, glorious creatures, and I started to feel like I was committing a crime against god by killing them. And they are gorgeous, gorgeous: no polygon was spared, the textures are lovingly designed. (The environment is quite nice, too, and I can only hope that the next Zelda will have a horse looking half as good as this one.) There have been some nice looking PS2 games recently; early in the system’s life, I would look at games and think “Soul Calibur looked better than this, and that was a Dreamcast launch game”. No more.

After a while, though, the game elements did start to feel more like traditional boss fights. In a traditional boss fight, you have to observe the boss’s movements, figure out the pattern, and chose the right moment (and method) to attack. Here, you can’t just start climbing up the boss: there aren’t holds on the bosses’ feet, so you need to figure out how to trigger an action which will cause a climbable part to appear, which is a similar way of thinking to a traditional fight. It’s normally much easier to dodge the bosses in this game than in a traditional boss fight, which is all to the good, given the number of fights in this game: rather than dying ten times while trying to figure out a fight and execute properly, I’d play for 45 minutes without dying while trying to figure out a fight and execute properly.

I’m glad the game wasn’t any longer than it was, but honestly I enjoyed it until the end; I wouldn’t have felt unfulfilled if the game had been half the length, but there was enough novelty in the fights to keep me going. (And the bosses are beautiful!) One of the defining games of the end of this generation (which is going out nicely; and we still have the new Zelda and, especially, Okami to look forward to!); it makes me happy that game developers are willing to experiment this way.

i want to build jet engines

January 17th, 2006

This is great. Ricardo Semler would approve. (Found via the XP mailing list.)

(My volume of posts that link to something else with minimal comment of my own has increased; I guess I’m turning into a more normal blogger. Which is okay; I try to have at least one more substantial post on any day I blog, posts like that take very little time for me, and they’re easy for you guys to skip.)

newspaper political coverage

January 17th, 2006

The Mercury News had an article this morning headlined “Gore says Bush broke law in use of wiretaps”. (The link may go stale after a week, alas.) Which really annoyed me for two reasons:

  1. Why can’t the newspapers venture an opinion themselves on whether or not the wiretaps are illegal? This isn’t entirely a straightforward factual matter, but as it is, I get the impression that, if Bush walked into a 7-11, pulled out a gun, and killed everybody there, the papers wouldn’t venture an opinion as to whether or not doing so is illegal: maybe that’s legal for the Commander in Chief, too! (Speaking of which, anybody else like watching Boondocks?) If they think that the legality of the acts is seriously in question, then they should interview experts on the subject, not dance around it or post opinions from random people. Which brings us to my second point:
  2. Who cares what Al Gore thinks? In general, why is their political coverage almost all treated as a combination of partisan fights and personality coverage? If I want that sort of reporting, I can read the sports pages or the entertainment pages. Honestly, much of the time I think the quality of analysis is better in those sections than in the front section: it sure seems to me that the Merc’s movie reviewers take their job more seriously than their political analysts.

Despite all of which, I still think the Merc is probably a better than average paper. Sigh. At least it has a good comics section.

kung pao chicken

January 17th, 2006

If I’m going to post random recipes here (not entirely random – they’re all good!), I suppose I might as well try out other recipes in blogs I read. The kung pao chicken recipe from this blog entry is pretty good, it turns out.

go keith knight

January 17th, 2006

An excellent MLK day celebration. (You’ll probably have to watch a free ad first, though. Which might then dump you at Salon’s home page; I’m not sure.)