Star Wars Episode III: ROTS

On Friday a bunch of people from work went to see the latest, and hopefully last, Lucas epic. I don’t think I can add all that much to the volumes that have already been written about how bad it is, so I’ll settle for just a few quick points:

  • There was way too much copying from Lord of the Rings, from Saruman/Dooku and the droid who goes “gollum” to the orcs guarding the door at the separatist stronghold and the extended Mount Doom scene at the end.
  • Lucas has an ear for dialog the way Godzilla had an eye for Japanese architecture.
  • I want a T-shirt with an annoyed-looking Yoda saying “On, bring it.”

Amy’s New Tricks

These are all from yesterday.

Amy Pointing (328KB WMV)
Pointing is one of Amy’s latest tricks. She particularly likes to point at lights – even if they’re off – but sometimes she points at other things as well.
Amy Standing (820KB WMV)
Amy has become a lot more ambitious, standing and grabbing stuff on top of higher objects such as Cindy’s nightstand. I also managed to get the camera orientation right this time.
Amy Babbling (176KB MP3)
Whereas before she used to make single sounds, perhaps repeated, now she’s making more of a variety. This collage doesn’t fully represent her current repertoire, but I’m working on it. Last night I swear she actually said “mushroom” during dinner. Maybe it was kind of an accident, but she had just been eating some – they’re one of her favorites right now – and we had been saying the word for her.

Last, but certainly not least, here’s another picture. It doesn’t show her doing anything new, but she’s just so darn cute.

Just Another Amy Picture

Bul Go Gi

I’ve been a big fan of bul go gi (Korean barbecue beef) for a long time. I first encountered it in sandwich form in about 1983, in a little out-of-the-way place in Ann Arbor whose name I can’t remember. Like many of my favorite Ann Arbor restaurants, such as the Wolverine Den where I discovered gyros, it closed not long after I started going there regularly. Many years later I rediscovered it at Cindy’s and my favorite pan-Asian restaurant (Asiana Grill in Arlington) and it quickly displaced sushi and pad thai as my dinner of choice when we go there. Now I’ve found a way to make it at home. This month’s Fearless Flyer from Trader Joe’s had an entry for “Trader Ming’s Korean Style BBQ Sauce” so I picked some up this past weekend. Just a couple of hours of marinating some beef in that, and then a few minutes at the stove, and voila! Bul go gi, just like at the restaurant. Yum. I don’t make a habit of endorsing products here, or for that matter talking about food, but this just has to be one of the best effort/reward ratios I’ve seen so I had to share.

Care and Feeding of Architects

Now that I’ve been out of the architect hot-seat for a while, here are some collected thoughts on how to make it a more productive role. I’ll start with a couple of things management needs to do to enable an architect to do their job.

Gimme Some Power
What do you call an architect who has no actual power to make sure developers do The Right Thing? A lame duck – one who can be and often will be ignored by exactly those developers who are most likely to do The Wrong Thing in the first place. If you want someone to be responsible for the technical success of a project, that person must have some means other than mere persuasion to ensure that success (because some of the people writing the code don’t respond to persuasion). In essence, the architect must be able to reject any code checkin. The relationship between the architect and the release engineer should be one of the closest in the organization, with each in their own way determining what does and does not go into the product. Only when there are real consequences (e.g. missed deadlines) to checking in something that works now but will break tomorrow will most developers pay attention.
Rein in the Managers
It’s part of a manager’s job to keep an eye on schedules, and also to play advocate for developers. For both reasons, managers will often try to force a questionable code change through despite an architect’s objections. This can’t be allowed to become the norm. That doesn’t mean that the architect should run rough-shod over managers either, but any director/VP who allows managers to get their way every time has just hamstrung their architect. Similarly, developers usually go to their manager first when they need a higher-level technical decision, often with some urgency. It’s generally almost impossible to reverse such decisions after the fact, so if they’re often made without consulting the architect responsible for the “big picture” the project very rapidly turns into another Tower of Babel with components and their developers all working at cross-purposes. Managers must be constantly on the lookout for this, and make sure that the right people – not just the architect – are consulted for any change affecting more than one component.

Now, what can the architect himself (or herself, but I’m a guy) do? Here are some ideas.

Computers and Chess

Bram Cohen recently started an interesting discussion about why computers are able to play chess well, and how chess could be made harder for them. One point that he and others tried to make is that the branching factor (number of possible moves at a given time) isn’t as important as conventional wisdom suggests. I’m sure that satisfies everyone’s desire to feel special by defying conventional wisdom, but it’s wrong for a reason that Bram himself hits on later:

an alpha-beta pruner is quite hopeless unless either its evaluation function is basically sound or the total number of possibilities is so small that it can exhaustively evaluate everything

In other words, the “branching factor doesn’t matter” argument is based on the idea that the branching factor is effectively lowered by the computer’s ability to ignore “uninteresting” moves…but Bram’s own observation shows how this might not necessarily be the case. What really matters is the number of positions the computer must evaluate, which is a function of both the branching factor and the usefulness of the evaluation function to facilitate pruning. This, I believe, is why some of the “anomalies” such as removing queens or allowing pawns to move backwards work the way they do. A change that increases the branching factor can still help the computer (apparently supporting the non-conformist view) if it also increases the effectiveness of pruning, and a change that decreases branching can hurt the computer if it makes pruning less effective. In fact, I’d reformulate Bram’s observation a little:

A pruner is quite hopeless any time the importance of a global evaluation function is reduced relative to separate goal-specific evaluations.

This is one of the things that makes Go hard – not just that the branching factor is so high to begin with, but that conventional pruning techniques don’t do much to reduce it. That’s why some of the most successful Go programs rely on evaluating several aspects of the game (e.g. tactical concerns, “shape” and connection/influence) separately. Generating several trees where pruning can be done effectively and then combining the results requires that fewer positions be evaluated than generating a single tree where pruning doesn’t work. This naturally points to a way to make games more difficult for computers to play: target the evaluation function. One of the reasons Arimaa might be more “computer-proof” than chess is that it has features that make global evaluation less useful, and there might be other ways to increase that effect. The downside, of course, is that any such game is only difficult for computers as they are currently programmed to play. When someone comes up with a good general way to deal with the problem of having to rely on several kinds of evaluation instead of just one, we’ll be back at square one (heh). The problem of how to make a game that’s permanently harder for computers to play is an entirely different one.

Footwear for Democracy

Via Ezra Klein, here’s a link to an excellent post by Lorelei Kelly about the calls for more “boots on the ground” to spread democracy:

We need more than boots. In fact, over-reliance on boots may be a primary cause of our public relations problems with the rest of the world. We need loafers, pumps, Birkenstocks, waffle-stompers, sensible flats and tourists in tennis shoes out around the planetâ?¦ working to retrieve the golden reputation of the good ole USA. The more the face of America is seen in uniform and holding weapons, the less this reputation holds up.

Exactly. Peace will only come when the first image that comes to people’s minds when they think of Americans is of regular people doing regular things, not of people with body armor and automatic weapons telling them to keep their hands in sight at all times. We need both, mostly in different times and places, and the Army is simply not the instrument for both. It’s not what the organization is designed for, it’s not what the personnel (for the most part) are trained for, and nor should it be. Read Lorelei’s post for a fuller description of a workable alternative.

Akregator Name Change

RSS readers are now among the essential tools for people who use the web to keep up to date on technology, politics, or online friends, and Akregator is the KDE version. I have previously sung the praises of various KDE programs, including Kate and Konversation, but now I have to say that Akregator deserves to be called Aggravator. The problem is that it frequently – nay, almost always – locks up for many seconds or even minutes while fetching/parsing a feed. Worse, if it decides to fetch feeds – which it apparently wants to do just about all the time – while I’m looking through the previous batch of articles then when Akregator unfreezes it redraws the entire item list with all previously-new items removed. If something had caught my eye but I hadn’t gotten to it yet I can only find it again if I can remember which of my 60+ feeds it came from – and then only by switching from my default “New/Unread” view to “All” and back. At the same time, paradoxically, Akregator seems stupider than most readers about showing me the same articles over and over again even in the New/Unread view. That problem pales in comparison to the total unacceptability of removing information from the screen before being asked to (even implicitly), though, not to mention the ineptitude that has to be behind the freeze-up behavior in an era when the default way to write any kind of GUI-oriented program is to use a separate GUI thread precisely so that the user is never left staring at a window that isn’t even being redrawn in response to standard window events. People who falsely claim that a project is in a “Production/Stable” state on the various open-source sites (e.g. Sourceforge, Freshmeat) should be banned from using those sites to distribute anything for a year.

Stopping Evolution

This sort of comes from the “why didn’t someone think of that sooner” department. I remember reading quite a while ago about how bacteria mutate more rapidly when under environmental stress. It looks like some blessedly bright folks took the next logical step of figuring out how they do it and how to stop them from doing it.

the team describes how a protein called LexA in the bacterium Escherichia coli promotes mutations and helps the pathogen evolve resistance to antibiotics. The scientists also show that E. coli evolution could be halted in its tracks by subjecting the bacteria to compounds that block LexA. Interfering with this protein renders the bacteria unable to evolve resistance to the common antibiotics ciprofloxacin and rifampicin.

Way to go, guys. This will save lives, and is the stuff that Nobel prizes are (or certainly should be) made of. If the folks in power had any real sense or concern for humanity instead of just for profit, they’d fast-track research aimed toward making such inhibitors generally (and cheaply) available, and then require that they be given to anyone receiving any of the newer antibiotics. Maybe then resistance won’t develop and we won’t need to face the prospect of returning to pre-antibiotic conditions.

Carnival of the Copycats

It looks like “carnival” is the latest fad in the blogosphere. I’ve known of the Carnival of the Capitalists for some time. Today I saw a reference to the History Carnival. A quick search turned up Carnival of the Un-Capitalists, Carnival of the Recipes, Carnival of the Liberated, Carnival of the Canucks, Carnival of the Consumers, and Carnival of the Cats. Enough, already.

New Links

Not much news today, but I found a couple of mostly-scientific slightly-political blogs today – Pharyngula and Respectful Insolence (they’re over on the right as well, for posterity). The Eighth Skeptics’ Circle is how I found both, and a good starting point. RI’s story about the return of polio as a consequence of anti-vaccination paranoioa is IMO the best of the linked articles I’ve read so far.