« December 2006 | Main | February 2007 »

January 25, 2007

Thoughts on the T60 wide-screen

I've had my new Lenovo T60 wide-screen (87445BU) for about a month now and I'd have to say that overall I'm very pleased. Here are some specific thoughts on my experience so far.

Performance: Great
The main reason for getting a new machine was performance. Deploying the codebase for FeedBurner locally was just starting to take too long. The new box is a 2.0 GHz Core 2 Duo with 2GB of memory and it feels nice and fast. Compiles are much quicker, Eclipse is speedy. One pleasant surprise so far has been drive performance -- I ended up getting a 5400 RPM drive so I thought I/O was going to be sluggish, but I have no complaints.

Screen: Not so great
I'm not sure what to think about the display ... it seems, well, just kind of dingy compared to the T42 display I had. Also, it's sitting right next to a 20" Dell display (giving me a 3360x1050 workspace) at work which puts the T60 display to shame. Color just seem muted and a bit washed out. I've messed around with the settings a little bit, but nothing so far has really helped all that much. I do like how much real estate you have on the 15.4" wide-screen, though, so I'm happy with that.

Upgrading from T42: Annoying
One thing that I hadn't counted on was having to update all the accessories. I had a T42, but for the T60 you need a different AC adapter and a different docking station. Also, since it's a 90W power supply, my iGo juice70 power adapter. Not really anyone's fault, just annoying.

Even with the bigger screen, it doesn't real feel any heavier or more bulky than the T42.

Niceties
There are some really cool features that I wasn't necessarily expecting. The one that surprised me most is the fingerprint scanner. I thought it was going to be worthless and stupid ... instead, I love it! I love being able to just swipe my finger to log-on whenever the machine turns on or comes out of stand-by. I totally didn't expect that.

I also like how the machine supports the Bluetooth 2.0 stack, so my bargain Bluetooth headphones work without having to use the silly adapter.

The battery life has been great, much better than it was on the T42. DVD-writer is convenient. The Access Connections app is still flaky.

That's it. I'm still a happy ThinkPad consumer. I haven't decided yet if I'm going to jump onto Vista when I cash in the little upgrade coupon. That will be the subject of a future post.

January 23, 2007

Anatomy of a Hack

Last Thursday we had another hackathon at FeedBurner -- our fourth -- which is always an event to look forward to. This one was a lot of fun and there are some really cool hacks that are live right now. My hack was an "Event Feed" service, and I thought I'd write up a bit more information about how it works and how I hope publishers might use it.

First of all, like most good ideas, the idea for this one came from one of our publishers. This suggestion came from Jon Morris (Matis). He keeps his upcoming performances in upcoming.org and wanted a way to display the events on different web sites.

At first, it seems like this should be easy. Upcoming.org has feeds, and FeedBurner has BuzzBoost (not to mention several other widgety tools). Should be able to just burn the feed and choose BuzzBoost, right? Well, not quite. For some arcane reasons, the dates associated with the items are not the event dates, but instead represent when the event was added to upcoming.org. Turns out, that's not terribly useful for most feed consumers. Fortunately, they include other elements in the feed using the xCal namespace that includes information like the event date and location.

Enter the "Event Feed" service at FeedBurner. When you activate this service on the "Optimize" tab at FeedBurner, you're saying that the source feed represents a series of events and that you want them treated that way. So, what FeedBurner does for each item is:

  1. Find the event date and make that the item date
  2. Put the items in ascending date order (optionally only including future events), and
  3. Optionally prepend the event date in the item title
So, Jon's case, his source feed isn't terribly useful. But if we burn it and apply the Event Feed service, we get a more useful feed. Finally, we can apply BuzzBoost to get an easy-to-distribute list of upcoming performances:

So far, so good. But I don't use upcoming.org ... I happen to use Google Calendar. And what good is a hack if it's not useful to the author?!? So, the Event Feed service will also work with public and private Google Calendars. You just have to find the RSS feed for the particular calendar you want, which can be a bit of a challenge sometimes. Hint: it's somewhere on the Calendar Settings page.

This will work for both shared and private calendars ... let's see how it works. Here's a public calendar: Chicago Bulls schedule. If you look at the feed, you can see it's not terribly helpful: events are totally unordered and it includes past games as well as future games. So, let's burn it and add the Event Feed service. Ah, much better. Here's a nice little headline animator for it as well:

Chicago Bulls

Finally, after staring at those nice upcoming.org feeds complete with event location information, I couldn't resist tossing a FeedFlare into the mix. This was literally cobbled together in 10 minutes right before the end of the day -- I love how easy it is to create these things. Anyway, here it is: Map Event FeedFlare. Take a look: it's just examining the item and looking for the lat and long elements and the venue name, then composing a URL to Google Maps with that information in it. This is actually a good example of how you can use XPath to pull arbitrary information from other namespaces out of a feed item and use them in your FeedFlare. Here's an example of a feed that's using that FeedFlare: source feed, burned feed. And here's what it looks like in as a SpringWidget:

I hope you enjoyed this behind the scenes look at this hack. I had a great time building it and I can't wait to see what people do with it!