YubNub: My entry for the Rails Day 24 hour programming contest
(Credit for the cute snail drawing goes to Igor Križanovskij)
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.
But on a bigger scale, YubNub is the realization of a very big idea: the URL command line of the web OS.
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.