Archive for November, 2007

Beowulf the Movie

I found the movie Polar Express to be a very creepy experience due to the motion capture animation. It was like watching zombies riding a train to visit Santa (not to mention Santa’s entrance was straight from The Triumph of the Will). I think taking any child to see that movie would most likely scare the whole idea of Christmas right out of them.

I recently saw Beowulf, in which director Robert Zemeckis (who also directed Polar Express) makes another try at motion capture. And, I have to say, it is much much better. The character no longer look like zombies, which is really a vast improvement. Now they look like puppets. The main difference is in the eyes–they have evidently improved the technology significantly when it comes to tracking eye motion.

There are some movies where puppets would work fine. I mean, Team America was not a particularly good movie, but it wasn’t because of the puppets. Unfortunately, for Beowulf, which is intended to be a fairly realistic action movie set in a fantasy world, puppets really don’t work at all. The animation was continually distracting. The monsters (Grendel and the dragon) were moderately successful, because we don’t know how such beings should move. But the movements of the human characters were consistently unconvincing. This time around, the facial close-ups worked pretty well–not perfect, but not distracting. But larger movements were really bad. Also the weights of the characters when they walked or ran were all wrong–it looked like they were walking on a trampoline or something, sort of like the characters in Shrek.

I don’t know why Zemeckis is so fond of this technology. The Lord of the Rings movies showed that you can do superb effects with live action filming, and Beowulf didn’t require anything as complicated as Lord of the Rings. Also, plenty of animation movies have showed that you can excellent story-telling without life-like motion. Zemeckis is presumably trying to make entertaining movies, not experiment with animation. It’s not even a tip of the hat to older techniques, like those stop-motion animals at the start of Return of the Jedi. So why does he do it, when he must see that it doesn’t work?

I saw Neil Gaiman speak a few months ago. He mentioned his screenplay for the movie. As I recall, he said that he was talking to Zemeckis about some other project, and Zemeckis mentioned that he was interested in doing Beowulf, but couldn’t see how to transition between Beowulf killing Grendel’s mother and then, 40 years later, facing the dragon. Gaiman said something like, “well, I would handle that transition like this” and described his idea. Zemeckis asked him to turn that into a screenplay, and he did.

And it is an interesting idea, and it could make a good short story, though as a story it would have to be handled sort of experimentally. And maybe it would have made a good movie, too, but unfortunately I guess we’ll never really know.

(Nathan reminded me to write about this when I saw his blog entry about the movie.)


Political Dislocation

In an article in the New York Review of Books about the transcript of the conversation between President Bush and Spanish Prime Minister Aznar before the Iraq war, Mark Danner writes a comment that I found interesting:

Surely one of the agonizing attributes of our post–September 11 age is the unending need to reaffirm realities that have been proved, and proved again, but just as doggedly denied by those in power, forcing us to live trapped between two narratives of present history, the one gaining life and color and vigor as more facts become known, the other growing ever paler, brittler, more desiccated, barely sustained by the life support of official power.

This really struck a chord with me, because it neatly encapsulates my feeling about what the Bush administration is trying to do. The administration seems to try to make statements true by repeating them. When that eventually fails, they don’t apologize, or admit that they said anything wrong. They simply stop talking about it. Thus we heard again and again that Mohammed Atta met with Iraqi agents in Prague, or that Saddam Hussein was buying uranium from Nigeria. And then we didn’t hear anything about those facts, or former facts, at all. George Tenet got the Medal of Freedom even though by any sane standard he failed horribly; anybody can fail, and Tenet didn’t have to be punished, but he certainly didn’t deserve the highest civilian award granted by the U.S. government. What was that all about?

Bill Clinton had a rather casual relationship with the truth, but at least he was eventually able to admit it when he got something wrong. George W. Bush doesn’t seem to have that ability. That is very strange to me, and it leads to that strange sense of dislocation described by Danner’s quote above.

I find it very worrying that Hilary Clinton also seems to find it difficult to admit when she got something wrong. Obviously I’m thinking of her vote for the Iraq war, or as far as I know she hasn’t really admitted that her 1993 health care plan was a complicated debacle even before the health care industry trashed it. Though things can change fast, at the moment Hilary seems to be the person to beat to become our next president. Can we really handle another four or eight years of dislocation? Or will she make more sense when she no longer has to run for office?


Link Time Optimization

Various gcc developers are working on Link Time Optimization, also known as Whole Program Optimization. When using LTO, gcc will write the intermediate representation into the object file. At link time, gcc will read it in and use it to implement cross-module optimizations. The canonical optimization which requires LTO is inlining functions across object file boundaries, which can be a very effective optimization for many programs. Most modern compilers support a version of LTO; gcc is a late-comer here, but that is typical for gcc.

However, the main issue with LTO is speed. If it takes too long to compile a program in LTO mode, then nobody will use it. That is the fate of gcc’s current whole program optimization mode, selected by -combine. The -combine option is also currently restricted to be C only, although the author, Geoff Keating, has done some work toward extending it to C++.

In order to make LTO fast enough to use, we need to make reading the IR during the LTO phase as fast as possible. We need to make decisions about inlining and other optimizations as fast as possible, which means that we need to have compact summary information about different object files, and we need to be able to process it quickly. Once we have made decisions about what to optimize, we need to implement those optimizations as quickly as possible. We can not assume that we will be able to hold the IR for all functions in memory; that will not be feasible for a reasonably sized program. We must be prepared to read and discard IR as necessary.

Our goal for this has to be that we can apply LTO to a large program in a few minutes at most. Anything more is going to be useless in practice. This is going to require attention to speed at all levels. The IR and summary information must be designed for quick reading. The implementation of optimizations will have to be done in parallel where possible–e.g., we will need to be able to have the backend invoke distcc to complete the compilation steps.

In practice we will need to use profile information to drive the LTO optimizations. We will need to be able to only apply LTO to hot functions, in order to reduce the time and maximize the benefits.

There is a long way to go to make all this happen.


Tofurkey Day

I’m back after a Thanksgiving trip. What do vegetarians like myself eat for Thanksgiving? All sorts of things, actually. That said, for a traditional Thanksgiving dinner, we need a big centerpiece food item. Ideally it will both look festive and taste good. I find this combination to be harder for vegetarians.

Lasagna or macaroni and cheese is a good filling centerpiece, but doesn’t look like much of anything.

There are various vegetarian turkey substitutes available. Tofurkey attempts the look-and-taste-good combination, and top that by trying to look like a turkey and even having stuffing. Unfortunately, they fail. Tofurkey slices (which can be bought separately) taste good in a sandwich, but the Tofurkey centerpiece doesn’t really taste very good.

Quorn sells a nice-tasting vegetarian roast, made out of myco-protein, whatever that is. This tastes good and filling, and even has a turkey flavor. Unfortunately, it looks more or less like a roll of marzipan.

The most successful vegetarian centerpiece I know is a stuffed pumpkin. It’s not absurdly hard to make–only slightly harder than stuffing an actual turkey. You use a roasting pumpkin, of course, not the usual jack-o-lantern pumpkin which is much larger. The main problem is that you need a pumpkin at just the right level of ripeness, but as far as I know there is no way to tell how ripe a pumpkin is without cutting into it. The pumpkin can be roasted whole, and then sliced at the table. When it works, it’s quite tasty.

Comments (5)

Head of a Rock

The New York Times Sunday Magazine ran a short piece by Jim Holt on the idea of universal consciousness. The idea is that consciousness can be found everywhere in the universe, even in rocks.

This is based on the premise that “physical properties alone cannot account for subjectivity. (How could the ineffable experience of tasting a strawberry ever arise from the equations of physics?)” The argument is logical: if we accept that premise, and we accept materialism, then we pretty much have to conclude that consciousness must be in everything.

Now, if this were a sane world, that would be a nice reductio ad absurdum, demonstrating that the premise is false. Yet somehow sensible people are so attached to that premise that they are willing to believe in conscious rocks rather than give it up.

Astonishing stuff. Some people need to apply a little more reasonable thought and a little less ineffability.


« Previous entries Next Page » Next Page »