Wednesday, January 30, 2008

Part of the Family

This is a little belated, but I have a very important introduction to make. World, meet Manwe. Manwe. meet the world.

GREETINGS HUMANS.

Heh, isn't he cute?

Manwe replaces Aule, who has served me with distinction for... gosh, I guess it's been six years, through multiple incarnations. This seemed like a good moment to reflect on the history of my network and my penchant for naming computers.

So, going back in time...

My first personal computer (in the sense of a computer that I bought for myself) came my senior year in high school. It was an IBM Aptiva, and I loved it. It saw me through my first few years of CS courses, was where I learned Emacs, and had some good gaming experiences (HalfLife, Baldur's Gate 1 and 2, etc.) A year later I did my first serious upgrade, when I got new memory and a video card to play Ultima IX.

Still later, when I had my epiphany/fit of rage and installed Linux, I had to come up with a hostname for my computer. I honestly don't recall what I picked at this point - probably "cirion". The experience of embracing Linux, though, forced me to consider my computer as a first-class entity, a host on the Internet, not simply a little device that did certain tasks for me.

When I broke away from my souped-up Aptiva and built a box from scratch, I wanted a new beginning. After doing a ton of research, I hit up a variety of online and brick-and-mortar sources to pull together a small behemoth, a Linux-only box.

At this time, I had to decide what to call it. In all the good networks I've dealt with, there's been a coherent naming strategy for machine names. At the CEC (Center for Engineering Computing) at Wash U, the servers were all named after hotel chains (hilton, clarion, etc.). At Raviant they were named after astronomic objects. Many organizations will pick characters from mythology. Others like picking the names of various Muppets. At my previous job, we were considering naming our servers after characters in the Marvel universe.

I actually didn't have to think too long to come up with mine. A fierce Tolkien fan, I decided that my network would be named after the Valar, the powerful entities created by Illuvatar who were responsible for much of the creation and governance of Middle-earth. This was perfect in multiple respects. There are 15 Valar, and 15 will probably be enough unique names for my network. The names of the Valar tend to be relatively short, memorable, and interesting. They also aren't obvious, which means I have the pleasure of explaining the names of my computers to fellow nerds.

My first computer was dubbed aule. It should have been Aulë, but umlauts are hard to type on some keyboards. I named it aule because it was my development box, the thing I used to produce code, write scripts, compile executables and generally create software out of bytes. This was in keeping with Aulë's position as the smith: among the Valar, he was the craftsman, creator of the sun and the moon, architect of Arda, life-giver to the Dwarves, the teacher of Fëanor who in turn would go on to create the Silmarils. I liked the sense of mission and focus that this name carried.

A few years later, I decided to add another Linux box to my fold. This was to be my entertainment center, dedicated to recording and playing back music, movies, and television shows. I named this box nessa, after the Vala most associated with dancing and the arts. Her grace and joy well reflected the role of an entertainment box, much as Aulë's strength and focus well conveyed the development box's role.

I proudly carried the Linux-exclusive banner for several years, but when I started doing BREW development in early 2005, I needed to reintroduce Windows to my life. This evil and corrupt force could only be adequately captured by giving it the name MELKOR, who is also known as Morgoth, the Enemy. Dual-booting on Aule's hard drive, the same physical machine would reveal one face or the other to the network. This was particularly apt, since among all the Valar, Aulë was most like Melkor, and might have followed down his path of rebellion were it not for his humility.

All that has passed, and after more time than I had planned, I am pleased to welcome manwë into the fold. Manwë is king of the Valar and lord of the air. In much the same way, my new computer rules over the network, surveying all from above.

Oh, and the network's name? Valinor, of course.

So, that's it. If you ever come to visit, bring your laptop. My machines would love to meet yours. Skynet is fully operational.

Thursday, January 24, 2008

Campfire Headphase

I like mobile development. I like Google. I love free food. So, it should come as no surprise that last night found me lurking once again on Google's campus as I attended their first campfire session for Android.

From what I can tell, this is the second "Campfire" that Google has held. It's kind of a cross between a barcamp and a typical product venue... Google hosts it and makes team members available for direct Q&A, but doesn't have much of an agenda and pretty much lets developers drive the action.

It was scheduled to run from 5-8, with refreshments, Q&A, and the chance to meet other Android developers offered as an incentive. After years of attending Mobile Monday I'm used to these things starting fashionably late, so I didn't exactly hurry over to Mountain View, and pulled into the parking lot around 5:30. By the time I checked in and got upstairs, the meeting was well under way, with all the chairs occupied and some heated debates under way. I grabbed a Guinness from their excellent hosted bar and floated in.

Even though most people in the room were developers, publishing concerns dominated the official Q&A (at least the portion that I saw). The reason why should be obvious to anyone who has worked in this space: carriers are the mortal enemy of the mobile developer, and while everyone's excited about Android, they are worried that all the same wounds will be re-inflicted, and it will become yet another platform to support that doesn't offer any greater stability. People repeatedly asked how Google would make sure that carriers did not cripple the available APIs, whether developers would be able to distribute their apps without going through a carrier portal, and how much control carriers would have over approving software.

Hosting these questions was Dan Morrill, a Developer Advocate at Google who has been a great and helpful presence on the official developer group. It didn't matter how many times he explained that he wasn't in a position to answer those kinds of business questions; they just kept on coming. I think this shows the depths of frustration mobile developers have with the current ecosystem, and if Google is smart they'll pay attention and use their weight to make sure that this time it works right. In retrospect, it probably would have been good to bring in someone who would be able to speak semi-authoritatively on those topics.

As it was, Dan could only speak vaguely, but he did explain that the entire purpose of the OHA is openness, and that their partners would not have joined the OHA if they intended to violate its spirit. This was a good answer, but I still remain skeptical. I can't help but wonder if wireless players are embracing openness in the same way that power companies are embracing greenness: they use it to promote their brand and improve their image, and take some symbolic steps, even as the core of their business remains firmly rooted in the opposite of what they claim to support. Specifically, I wonder if some of the players (Verizon in particular) are making a big show of openness prior to the upcoming wireless spectrum auction, and if we'll see backpedaling once that is complete.

We did get into some good technical talk, including a review of the Android security model and a developer update on how users will be able to install applications through the browser. Dan encouraged us to end the Q&A and move towards a more informal meeting with the advocates. They did that while I went to get food.

In keeping with the "campfire" label, the room we met in was made up as a faux camp. Instead of the standard Google chairs we got fun little fold-up camping chairs. A roaring fire was projected on two screens, but even cooler was a manufactured "fire" made from logs, light, a fan and ribbon. It would have made a great art project. And there was a giant "tent", inside which the food was served. I always wax eloquent about Google's food, so I should do the same here: they had "pigs in a blanket", which were petite hot dogs wrapped in pastry; baked beans and vegetarian chili; hot cider and hot chocolate; and, as the piece de resistance, "S'more cake", a fanciful treat that layered chocolate and marshmallow on a soft and airy cake with a subtle graham cracker taste. Altogether, while it wasn't the best-tasting meal I've had at Google, it may have been the most creative.

The coolest feature of the night, though, was definitely the seven-foot-tall Cylon Centurion. It stood just behind the speaker's podium, stock still, its single red eye balefully sweeping back and forth over the huddled programmers. That made my night.

(For those of you who haven't used Android yet: in the current SDK, when the emulator first starts and the kernel is booting, you see a red dot sweeping back and forth across the screen. A lot of people have commented that it looks like the Cylon eye, but until seeing the statue I had assumed it was just a coincidence... don't ask me why!)

The rest of the night was pretty low-key but interesting. I chatted with a few other developers who were there. I was struck by the non-mobile people who were there, which was cool... I'm used to working in my own little corner of the development world, without a lot of connection to those on the outside, and here it looked like Android was opening the gates a bit and letting more people in. Which I'm all for, of course. Now, some of that might just be Google's cachet, but still, it's a fun thing to see.

I also briefly chatted with one of the Advocates, and eavesdropped on a few more. It was impressive to hear how on-top of the platform some of them were... one developer was complaining about how difficult it was for a Service to determine which of several Activities was in the foreground, and that he had to broadcast Intents to all of them and then have them decide whether to react. This woman, whose name I forget, briefly explained how using an IntentReceiver would work in that situation, leading me to think, "Oh, of course!"

On the whole, I've been really impressed by the way Google's been proceeding with Android. Compared to other mobile platforms I've worked with, I think they "get it" and hopefully that will result in a superior product. Specific things I like include:
  • Giving an early look at the SDK to developers - even though they don't use the phrase, it's basically an alpha right now. This lets them collect early feedback before it's launched and make appropriate adjustments BEFORE phones start shipping. (Anyone else remember MIDP 1.0?)
  • Coming up with solid API code samples. All the forums I frequent for mobile development are filled with annoying posts saying things like, "Please give me a code example of drawing a square on the screen. This is urgent!" The examples Google gives aren't 100% comprehensive, but they are much better than anything comparable I've seen.
  • Along the same lines, having top-flight sample code. This is often handed off to interns, who come up with mediocre designs and style that is then adopted as gospel by the development community. This is crucial to get right early on, since those of us who are working with the platform now will be teaching others how to do it a year from now. Google is teaching us how to be better teachers.
  • The developer challenge, because it drives the earlier three points and lets Google get full advantage. They could have released the SDK when they did, but without the ADC, only a handful of super-geeks would have bothered using it before phones were announced. This builds adoption momentum AND encourages early adopters to learn how to use the tools properly.
  • Good tools support. I love Eclipse, and their plugins for it have been high-quality. Their emulator is also much better than some others I could name. Actual device simulation - who would have thought it?!
I tend to shut down socially after a few hours of extroversion, so by 7:30 I could tell it was time to go. I swung by the t-shirt table, where I saw that all the sizes smaller than XL had already been taken. I still grabbed one... it's a bit of a trophy, and who knows, in the future it might even become a collector's item!

Monday, January 21, 2008

I CAN HEAR YOU!

Wow... at long last, I am online!

I don't want to go into the whole icky story, but I've been having an awful time getting my wireless adapter working properly. I finally decided that it (the Netgear WG311) just wasn't going to work in Linux, so I RMA'd it back to NewEgg and picked up an Asus WL-176G. I was 90% of the way to making it work (it would connect to the router and get an IP address, but couldn't actually, y'know, send or receive any data). Then Space Age failed me yet again and I lost my home Internet connection for a freaking week. It was finally back up after work today (for which I give them some credit - means someone was working on a federal holiday), and after less than an hour of digging online, I was up and running. The culprit ended up being IPv6, which I thought I had disabled a week ago, but it turns out that it's insufficient to disable it in /etc/modprobe.d/aliases: that turned it off for eth0 but not wlan0. Instead, I had to add it to /etc/modprobe.d/blacklist. Poof! Instant connectage!

So that makes me happy. Last item left will be installing Vista (and making it actually work). It's supposed to rain for this entire week; guess I know what I'll be doing!

Focus? Focus? We don't need no stinking focus!

This is the most wonderful thing I've seen recently.

The most wonderful thing I've read recently is Murakami's Blind Willow, Sleeping Woman. The quality of the stories stayed high throughout. I love his voice, and it's amazing to see all the variations it takes through these stories, which span his career.

I've found myself thinking a lot about voice while reading this. "Voice" is a term that gets thrown around a lot by readers, and even more by would-be writers (myself included). What does this mean?

To me, an author's voice is that quality which makes you identify a work as being uniquely theirs. This is most obvious with writers such as Hemingway. You can pick up a Hemingway book, and even if you didn't know the author, within a few pages you would peg it as either being Hemingway or an imitator. Now, this does not mean that an author can't have a lot of variation within their works. "The Sun Also Rises" is a markedly different work from "Old Man and the Sea", in their scope, their narrators, their philosophies and aims. Still, there's an essential Hemingway-esque element to both that is hard to define but is nonetheless there.

One of the wonderful things about a short story collection is the way you can get more acquainted with an author's voice by seeing what remains constant as he changes between stories, narrators, tones, style and topics. To pick two dramatic examples: "The Rise and Fall of Sharpie Cakes" may be the one story I enjoyed the most. It is silly, pointed, arch and taut. I found myself thinking of George Saunders' best work when I read the dialog. On another extreme, the story "Crabs," while also "about" food, is austere, haunting, sinister and melancholy. What could possibly link the ironic description of a food convention with a man quavering over a toilet bowl? Their differences help underline what remains the same: the undefined mystery at the edge of the story, the author's reluctance to give pat explanations, the interest in how little people can actually know one another, a sense of individualism hopelessly adrift in a sea of uncaring chaos. You can laugh at that, as you do in "Sharpie Cakes", or it can make you sad, or even give you nightmares. (Last night I had a creepy Murakami-inspired dream that at one point included a cat burrowing into my chest.)

After finishing the book, I'm more inclined than ever to agree with Murakami's foreword, where he talks about how novels and short stories are very different things. I was expecting to summarize BWSW by saying, "It's good, but Kafka on the Shore is still my favorite," but I don't think I can even compare the two. To pick a crude analogy, it's like comparing a box of fine assorted chocolates with a pristine chocolate cake. They are similar and wonderful, but essentially different and trying to accomplish different things.

Other random thoughts:

It's only a matter of time until one or more of these stories gets turned into a Hollywood movie. The result will probably be horrible, but will lead to more people reading his stuff, which is all for the good.

I was amazed to get all the way through a Murakami book without encountering a single reference to incest! Wow!

I really like the attitude Murakami, and the Japanese in general, have towards animals. They give them a lot more personality and weight than you tend to encounter in American novels (at least, based on my experience).

Abruptly shifting gears:

I read an interesting article here recently about the California primary. Clinton has a lead here, though it is shrinking. There a couple of factors. First, Clinton's support is mainly coming from "traditional" Democrats: blue-collar, high school educated, low income voters, as well as members of ethnic minorities. (California is a minority majority state, so that's a very powerful bloc.) Obama supporters, on the other hand, tend to be college-educated, upper-income, and predominantly white. Anyways, this article distilled the issue down to, "If Obama is going to win the state, he needs to dominate the Bay Area." It sounds like this region is the strongest in the state for Obama, and mobilizing voters here will be key to overcoming Hillary's strength downstate. I love the fact that my prejudices against Southern California continue to be reinforced despite me spending almost no time there. On the other hand, though, California has an interesting primary system, where independent voters can vote in the Democratic primary but not in the Republican. Since independents (and some conservatives) have been strongly backing Obama, it's not impossible to imagine that we could end up with an Iowa-style upset here.

There was an interesting piece on Google in the New Yorker this week. I tend to really enjoy Ken Auletta's reporting, but he seemed a bit... off this time. I'm generally frustrated when I read media coverage about technology, so some of that may be in play, but I also was just not sure what the point of the piece was. It felt like a forum where a lot of people aired criticisms about Google, and then Google replied to them, all of which was dutifully recorded by Mr. Auletta. This kind of "journalism" is common in political coverage, but I guess I've come to expect more from the New Yorker.

That's neither here nor there... maybe he had a bad week, or maybe I was in a bad mood. I do, though, want to talk a bit about Google, cookies, and privacy. There is a lot of chatter out there, and little solid information about what's going on. Hopefully this will clear the waters a bit.

First: What is a "cookie"?
You can see for yourself! If you're using Firefox (which you should be), take a quick detour from this post. Click "Tools" in the top menu, then "Options..." Look for the "Privacy" tab and click it, then click "Show Cookies." You should see a bunch of site names pop up. You can search for specific cookies you're interested in - try "google". I'll wait here for you.

As you can see, each cookie has several types of information. First, there is the site (or "host") that the cookie came from, such as google.com, yahoo.com, facebook.com, etc.
Next, there is the name of the cookie, which is usually something short and cryptic.
Third, there is the "content" of the cookie. This is usually a long series of letters and numbers, and is the meat of the cookie.
Finally, there is an expiration date.

So, let's take a step back: what are cookies, again?
What you're viewing here are small text files stored on your computer. When you connect to a site like google, it can pass back a "cookie" that gets saved. The next time you connect to google, your browser will pass that cookie back to google.

This is important and useful for several reasons. Most significantly, it lets the site "remember" who you are. When you sign in to Amazon, it uses a cookie to remember you, and because it knows who you are, it can recommend products, show you what is in your shopping cart, etc.

What Google does is a little more complex. First, if you use any Google services, like gmail or personalized search, it acts like Amazon: it looks up who you are, and logs you into the right account. Even if you don't have a google account, though, the cookie is still very useful for Google, because even if it doesn't know who you are, it will know how you search, and can use that information to improve its products.

Let me run through an example. (I should emphasize here that I am not a Google employee and don't have access to their algorithms, so the details may be a bit off, but I'm confident in the overall design.) Suppose that I am searching for information on how to fix a flat bike tire. I search for "flat tire", don't like any of the results it gives, so I hit the "Next" button to go to the second page of results. I continue this several times before finding something on the fifth page that I click on. I read it for a bit, then come back to Google, and try another search. I type in "bkie flat tire". As you can imagine, I only get a handful of results back. Realizing my mistake, I correct this and do another search for "bike flat tire." This time I get many more (and better) results, click on the first three, and then stop once I find what I'm looking for.

If I had disabled cookies on my browser (which you can do), Google would have only seen a random sequence of searches, with no way of knowing that they came from the same person. Because of cookies, Google can look at the way a user is interacting with the site, and use that information to improve.

In this specific example, Google would realize that, at least in this particular case, the results for "flat tire" didn't seem to match what the user was looking for. If many users did the same sort of thing (not click on anything until the fifth page), Google could automatically re-sort the results, pushing the helpful ones higher up so people more quickly find the useful information.

Also, by seeing that "bkie flat tire" was immediately followed by "bike flat tire", Google can realize that the first query was probably a typo, and the second one was correct. If a lot of users do the same thing, then Google can start prompting people automatically when they type "bkie flat tire," asking them if they meant to type "bike flat tire".

There are a few points worth summarizing about Google and cookies:
1. Cookies are only sent to the site that originated them. That means that, for example, Yahoo will never see your Google cookies. When talking about "privacy," therefore, the only question that matters is how much you trust Google with your data.
2. Cookies are stored on your computer, but don't contain personally identifiable information. Only Google can interpret the information stored in the cookies. Even if someone stole your computer and looked at your cookies, they would only see gibberish.
3. Cookies have a legitimate role to play in improving a user's browser experience by keeping them logged into an account.
4. Even absent an account, cookies have a legitimate role to play by allowing companies such as Google to see how people are using their sites. Without this data, companies are forced to guess at what people are doing rather than actually seeing it.

As I see it, therefore, everything boils down to a simple question: do you trust Google? What people are concerned about is that the semi-anonymous information, such as people's searches, will be linked together with personal information, such as a credit card if you've created a Google Checkout account. If Google tore down the barriers between different kinds of information that they collect, AND made all that information available to advertisers, then theoretically you could start getting phone calls about products you'd searched for, text ads about your credit report, and similarly invasive, too-personal openings. (Current Google ads are semi-personal, only in the respect that they are displayed in connection with what you are doing RIGHT NOW, as opposed to what you've done before.)

I guess that individuals need to make a decision about how they feel about Google and offset the immediate convenience of a better browsing experience against the risk of a future invasion of privacy. Personally, I think that Google is well aware of the responsibility it has; as Brin says at one point in the article, they have to respect privacy, because if they don't, they'll lose everyone's trust and business. Google has become a phenomenally successful company while carefully maintaining individual privacy, and I just don't see the incentive for them to turn away from this in the future.

Friday, January 11, 2008

I like making lists

My least-favorite things about being an adult:
  1. Paying rent.
  2. Choosing a doctor, mechanic, dentist, etc. instead of going wherever your parents do.
  3. Having a desk job: not because I dislike it, but because it decreases the time available for playing video games.
  4. Lack of time in general to pursue non-productive interests like reading, learning new languages, writing the Great American Novel, etc.
  5. Looking for a job. (Glad I don't have to do that any more!)
My favorite things about being an adult:
  1. Going to bed whenever I want.
  2. Voting.
  3. Self-directed travel: to Japan, to the Googleplex, and more.
  4. Being able to buy a new computer... and put it together!
  5. In general, feeling secure and in charge of my destiny.
The strangest things about being an adult:
  1. Being called "sir".
  2. Getting carded for alcohol more than five years after turning legal.
  3. Attending friends' weddings and seeing their children.
  4. Using first names when speaking to people in my parent's generation.
  5. Realizing that I am a twenty-seven year old lying on my living room floor and playing Final Fantasy XII for four consecutive hours.

Saturday, January 05, 2008

The Agony and the... well, more agony

I'm now about 18 hours into my new computer setup. The good news: for the first time since I started building boxes, I managed to complete the entire physical setup without a single injury. I usually anoint a new computer with blood at some point of the process, but I seem to have passed that hurdle.

The bad: Vista stinks. Badly. I spent several hours last night trying to get my wireless card to work, but no dice. The install was bug-ugly at first, but improved a bit when I installed my video card drivers. It all felt pretty useless without a network connection, though. I abandoned my initial plan and instead shifted gears to Linux.

I couldn't get my card working in Linux either, but at least there the problem was clearer: Netgear hasn't provided good 64-bit drivers for this card. I hadn't realized this before buying, but there are actually 3 versions of the WG311, each of which has a different chipset and separate, incompatible drivers. Version 2 evidently boots out of the box on Ubuntu, but Version 3 uses ndiswrapper. My heart sank when I read that - I had to wrestle with ndiswrapper for hours on my last computer, and I was never very satisfied with the results.

Stayed up until nearly midnight trying to get that to work, then tackled it again this morning. I got closer after I removed the included version of ndiswrapper and installed it from source, but I still couldn't load the module. Finally, because I didn't have anything else to do, I plugged in my old, inferior USB adapter.

Surprise! It was automagically detected. Turns out that, starting in gutsy, they have a native driver for the WG111 (v2!), rather than the crummy ndiswrapper/XP one. I just plugged in my WEP information, and now I'm flying.

I'm currently downloading what feels like the entire world... there are a ton of tools I want on here. I figure I'll spend the weekend getting Ubuntu configured the way I want it, and next weekend take another swing at Vista. I love what I see so far, though. Other than gaming and a few programming tasks, I should be able to live in Ubuntu for the next few years.

Update: Well, I'm ready to declare this PC more or less complete and screw in the side panels. This is the quickest to date on any machine I've built, notwithstanding the time I spent/wasted on the WG311. And, hooray! I was able to get Eclipse and my development tools up and running. I was delighted to see that I can launch into my debugger in about 10 seconds, as opposed to about a minute under Windows on my old PC. Since that's the single factor that convinced me to upgrade, it's a welcome validation, even if it feels like half of my computer is still broken.

Update 2: Heh, wow... I just shoved the new tower under my desk, and ended up on an archaeological expedition. I was literally pulling out cables whose purpose I did not know. It's simply amazing what kind of detritus can accumulate over just a few years. Among other things, I found the jack for a cheap desk microphone that I had bought in my waning Kansas City days. I'd never been able to get it working properly and forgotten about it, even though it was on my desk the whole time. Since I've been on a roll, I figured I'd plug it in and give it another shot. Thirty seconds later, I was recording lo-fi sound clips in Ubuntu. Hooray! Man, it's going to be such a letdown when I return to Vista next weekend.

Friday, January 04, 2008

Weekender

Some random thoughts:

I'm really looking forward to the weekend. First of all, I'm still buzzing from Obama's victory in Iowa last night, and I think those positive vibes will be propelling me forward.

Second, we are at the start of one of the biggest Bay Area storms in years. I really like storms. So far, it doesn't seem bigger than the worst storm of any given year in the Midwest, but it's quite impressive for the generally placid Bay Area.

The one downside is that I won't be doing my typical hike tomorrow. The offsetting upside, though, is that I should have all my new PC parts here by the end of the day, and so I will be able to spend tomorrow geeking out on that without any guilt. I'm looking forward to plugging in my very first SATA cable, my very first PCI-e card, and setting up the new Ubuntu system.

For a while there, I was worried that I wouldn't be able to do this tomorrow. I'd ordered my parts on the 30th, paying an extra $3 for rush processing and the standard amount for 3-day shipping. As of when I went to bed last night, some of my stuff still hadn't shipped. This morning, there was an email when I woke up: the package had shipped from Tennessee, where they upgraded my delivery to next-day air for free. It's now left Oakland and is heading for Los Gatos. I was prepared to write a post about how disappointed I was in NewEgg, but it looks like they've come through yet again. It was even worth paying CA sales taxes for!

Other random small notes:

"Paprika" is one of the best movies I've ever seen. It combines what I like best about "Eternal Sunshine of the Spotless Mind" with what I like best about "Millennium Actress." Can someone remind me again why the Academy didn't give it an award?

I'm a few stories into "Blind Willow Sleeping Woman" by Haruki Murakami and am darn impressed. There's a really touching introduction where he talks about his attitude towards short stories and novels, and it actually made me feel a little guilty for liking his novels so much. The best story so far is probably "New York Mining Disaster," though I also loved "Birthday Girl." And "The Mirror" almost gave me nightmares, no small feat for a story that's just four pages long and in which arguably nothing happens.

Finally saw "Hot Fuzz" after the rest of the civilized world, and I officially add my voice to its chorus of praise. I enjoyed most of the movie, but the finale took me by storm, and made everything that happened before seem all the funnier. We need more movies like that, and I can't wait to see how they follow up this and "Shaun of the Dead."

Oh, and a while back I finished "Clash of Kings," book 2 of "A Song of Fire and Ice." I'm still really digging the series. Martin continues to keep everyone on their toes, and I really like the way he keeps an arms-length distance from the mystical.

I never thought that I watched much television, so I'm a little surprised to feel so deprived by the writer's strike. I'm very curious what The Daily Show and The Colbert Report will feel like next week. It would be amazing if Colbert spent the whole show doing Formidable Opponent, and Stewart just read the New York Times.

Back to the election: I really hope Obama's momentum keeps him going. One cool quirk of the California primary: even though we vote on Super Duper Tuesday in February, they start mailing absentee ballots early next week. Every California voter is automatically an eligible absentee voter. Around 44% of all voters are expected to vote early. With a fresh Obama win in their minds, that could bode well for an upset here. Last I heard, Clinton held a 15% lead, but that's been steadily shrinking.

Right on our doorstep is Nevada the one early Western state. I really should volunteer to help the campaign there, but I can't help feel that I'd do more harm than good.

On the gaming front, I'm loving Guitar Hero 3. They haven't messed much with Harmonix's winning formula, so you don't really feel their absence. The song list has been really strong so far. My favorite tunes to play are probably "Even Flow" and "Welcome to the Jungle."

They need to rethink their "Legends of Rock" thing, though. I mean, the basic idea is cool. But come on, Tom Morello? Don't get me wrong, he's very talented, but if I don't know his name, he probably doesn't count as a "legend." I recognize that many of the true legends are dead, but what about Jimmy Iha? Keith Richards? Pete Townshend? The Edge? Johnny Greenwood? Freaking Eric Clapton? I just think their title bit off more than they could chew. Nice work on Slash, though. That was well done... not only does he deserve the title, he's a perfect boss.

I'm also playing Final Fantasy XII, and can't decide whether I like it or not. For a while I felt like, from a pure gameplay perspective, it's the best entry in the system. Most FF devotees hate the gambit system, but I love it. It takes care of mindlessly pressing "O" hundreds of times when you fight through endless battles, letting you focus on strategy instead of mechanics.

Where I am at the game now, though, it's just aggravating. I'm at too low a level to comfortably advance in the plot, and all the interesting side missions are too challenging. In order to have more fun, therefore, I'll need to spend several hours grinding through monsters for experience, loot and license points. People have unfavorably compared the game to an MMO, and I can see where they're coming from. The mechanics as such don't bother me, but the emphasis on nonstop combat and leveling does. In this respect, it feels like a step backwards from FF X. In that game, for the first time in an FF universe, I felt like the game was designed to advance my characters as they progressed through the story; I rarely needed to take a break from what I wanted to do in order to level up. I hate it when games make me do work.

On a related note, this week I will be sorely tempted to get a new game to test out my new computer. I'll try to hold out, but if I cave, it'll probably be for Half-Life 2. It's a few years old, but that means my setup will be able to soar with it. Best of all, I won't lose the months of my life that getting Oblivion would demand.

Update: Whoops! It looks like Paprika may be eligible for the Academy Awards this year. Cool. Ratatoille probably has it sewn up, so I won't be too bitter, but I hope it at least gets nominated.

Corrections have also been made in the text above regarding the proportion of absentee voters in California. One other interesting thing about our primary: the Democratic party, but not the Republican, allows non-affiliated voters to vote in their primary. That means that independents will be heavily recruited for this primary... and, as Iowa has shown us, Obama is strong among independents. I doubt he'll actually take the state - he has a bit lead to overcome - but if he splits the delegates here and continues picking up smaller states, he could be in a great position.