Tuesday, June 14, 2005

Processing a mountain of email -- attack it from both ends

When you have a mountain of email that you want to process, there are two schools of thought: start with the oldest, and start with the newest. They both have pros and cons. If you start with the newest, you might not get to the oldest for months. And if you start with the oldest, you might not get to the newest for months.

I'm going to try alternating between the two ends. I'll process the oldest email, then the newest, then the oldest, then the newest, etc. Ideally I would randomize my inbox, but Gmail doesn't support this. Anyway this is probably close enough.

Part of the reason I'm getting so much email these days is because of YubNub, that popular web application I wrote last weekend. Here's a great picture of a blog post from a very distant part of the world. (Anyone know what they're saying?).

Saturday, June 04, 2005

YubNub: My entry for the Rails Day 24 hour programming contest

Well I have completed my submission for the 2005 "Rails Day" 24-hour programming contest. The idea was to make the coolest program in 24 hours, using a wonderful programming system called Ruby on Rails. I made a web application called YubNub (haven't had a chance to make it publicly accessible -- will do soon). But first, a question:

1. What is YubNub?

YubNub is a command-line for the web. After setting it up on your browser, you simply type "gim porsche 911" to do a Google Image Search for pictures of Porsche 911 sports cars. Type "random 49" to return random numbers between 1 and 49, courtesy of random.org. And best of all, you can make a new command by giving YubNub an appropriate URL.

2. Why did you make YubNub?

On a practical note, I was tired of setting up the same Firefox keywords on each of the 5 computers that I use. By putting my keywords into YubNub, I can hit "am mark twain" for an Amazon search, or "gmap vancouver" for a Google Maps search, no matter which computer I'm on.

Web applications were once considered slow and unreliable, compared to their desktop counterparts. But these days, people are increasingly choosing web applications over desktop applications. Amazingly, GMail is found to be faster than desktop email programs. The snappy Google Maps interface feels as responsive as a desktop application. The web is morphing into the desktop, and today we are witness to the command line making its appearance in this new world, as YubNub, the (social) command-line for the web.

The beauty of YubNub is that anyone can help to extend it. If there is an existing web service with a submit form, they can add it pretty easily (like I did with the Amazon example above). But even more interesting is the adding of complex data-processing services (like validating an RSS feed, or converting webpages to audio using text-to-speech).

This will really come into play when I implement pipes (e.g. "google jon udell | to_rss | xargs text_to_speech"). Now that is going to rock! And I don't have to be the one to make these commands -- anyone in the world can create the code for to_rss, xargs, and text_to_speech, hosting it on their server. YubNub is just the glue that enables these pieces to interact.

3. What's up with the name "YubNub", anyway?

I remember hearing this word as a kid, watching one of the Star Wars movies. Evidently it means "Hooray" in the Ewok language.