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.

188 Comments:
dude..I just discovered your blog. It's awesome. Your modified keyboard is awesome too.
By
hanieh, at 6/04/2005 11:04 PM
Hi hanieh - Sounds like we have similar interests. Rock on.
By
Jonathan, at 6/04/2005 11:05 PM
yubnub is just great .. sorry for bothering (the commands i mistyped)
By
ichigo, at 6/05/2005 4:56 PM
Thanks ichigo! Now get to bed already!
By
Jonathan, at 6/05/2005 4:59 PM
Jon the gim and am commands are cool. I used gim "Firemind" because I know my pics pop up a lot in Google Image search. Voila! It is was faster than clicking on google then google images then...
I am off to experiment with delicious tag searches. Good work Jon!
By
Leon, at 6/05/2005 5:16 PM
Leon - fantastic! And make a "fm" or "firemind" command!
By
Jonathan, at 6/05/2005 5:19 PM
So if anyone makes a typo or discovers some spam, just send me an email. I'm a sort of "benevolent editor" of YubNub.
By
Jonathan, at 6/05/2005 5:35 PM
Thanks to the friendly folks on the #rubyonrails IRC channel for critiquing YubNub and adding a bunch of cool commands to it.
By
Jonathan, at 6/05/2005 5:46 PM
The YubNub "Snail" logo is licensed according to th Free Art License, in accordance with the wishes of the original artist, Igor Križanovskij.
By
Jonathan, at 6/05/2005 5:50 PM
Awesome app!
By
Jomdom, at 6/05/2005 7:44 PM
Thanks Jomdom! I'm quite proud of this puppy.
By
Jonathan, at 6/05/2005 8:17 PM
A profound and truly excellent web application!
In a matter of minutes I created four useful commands (some might even be useful to others!):
Define word at www.dictionary.com
http://yubnub.org/kernel/man?args=def
Track FedEx shipments
http://yubnub.org/kernel/man?args=fedex
Display site-specific NEXRAD radar images
http://yubnub.org/kernel/man?args=nexrad
Display state-specific NWS weather warnings and watches
http://yubnub.org/kernel/man?args=nws
By
Andrew Collins, at 6/05/2005 9:48 PM
Andrew - I love the commands you have created. It's neat to see stuff go beyond standard web searches.
By
Jonathan, at 6/05/2005 11:20 PM
And thanks for taking the time to make good descriptions.
By
Jonathan, at 6/06/2005 2:34 AM
Really Excellent. Simple idea, well executed. Liked it so much i knocked up a simple Firefox search plugin for it.
source
image
(copy to your firefox searchplugins directory)
By
Stuart Eccles, at 6/06/2005 6:44 AM
Jon: that just rocks.
By
Darius Kazemi, at 6/06/2005 7:26 AM
A great early step towards getting the Web OS idea out there and into people's minds in a very practical way. Bravo!
By
Darren Torpey, at 6/06/2005 8:35 AM
Jon, your app rocks. Great idea: simple yet profound. Wonderful notion of using pipes and shuttling output between web sites.
By
Bill, at 6/06/2005 11:05 AM
Stuart - Thanks for the Firefox search plugins. I will link to them in the app and acknowledge your work.
Darius - Yeah, I'm thrilled with this web app!
Darren - Let us build the Web OS together!
Bill - Yeah, pipes are going to be awesome! Need to figure out a standard way to shuttle POST parameters between commands. Any ideas?
By
Jonathan, at 6/06/2005 12:10 PM
This is scarily good. I just added 5 items in 5 minutes. This could easily grow extremely quickly. No business model though, which is fine, since you can't really display your own adds without really screwing this all up.
By
Anonymous, at 6/06/2005 1:34 PM
Hi anonymous - I saw you entering in those commands. Thanks a bunch!
YubNub has the following business model: to make life wonderful.
By
Jonathan, at 6/06/2005 1:41 PM
The more things I add, the more I realize I think you may need to make this personalized. copy will help do this, but I think maybe each person should be able to change any command but the community decides on the default. the namespace is quickly going to be cluttered, especially since I want to use this to just go to sites as well. (ie rails->rubyonrails.org without search). A lot of these sites just interest me and will clutter others' namespace. I think the ultimate goal is to be able to do anything from the command line (including launching notepad for example), with sensible defaults, but complete control for each user if they want.
Figuring out a way to do posts sensibly would also be nice, helps with things like currency conversion. Perhaps allow named parametes {$name} goes to something and {$$name} is the key name (which is sometimes useful). Called like: "lookup name:jon." There could also be a default order so "lookup jon" does same thing, but "lookup company:ibm" is different.
I also think it would be nice to have a second url for the case when no second parameter is specified, so that I can type slashdot and it will take me to slashdot homepage not slashdot search.
Since all this has the potential to take away for the simple beauty of yubnub, you could hide it all behind an advanced settings option.
Finally, it would be nice to make this open source so people could contribute more complicated stuff like the backpack integration (which could be very cool and pretty easy).
You could also script all sorts of cool stuff like "email jon how's it going" which would go into gmail, find the "jon" contact and send him email with "how's it going." Anyway, there is tons of genius stuff like this no doubt, full open access would enable. I doubt you have time yourself for all these ideas.
By
Anonymous, at 6/06/2005 2:22 PM
Interesting and very nice. I could see myself using it.
By
jason, at 6/06/2005 3:23 PM
Jon, I'm not sure how you are approaching pipes, but my initial reaction is to have people create input and output filters for each command. Each pipe is more than a simple transfer of one web site's output to another's POST or GET parameters. If a pipe is specified like X | Y, the pipe takes the output filter specified for X (perhaps it knows to convert google output to particular XML format), generates the output data, and then applies the input filter for Y that goes searching for appropriate data. within X's output data. Yubnub just supplies the glue, or in this case the specification for what output filters should produce and what input filters can sift through. If no pipe is specified, it's business as usual.
Putting a pipe between web commands might only makes sense some of the time. This would be equivalent to the input filter for Y being able to find reasonable parameters passed to it from output filter X. If it can't find acceptable parameters, an input filter can throw up its hands and return a message to the user saying as much. Does this make sense?
By
Bill, at 6/06/2005 4:36 PM
I should add that the above pipe logic sounds a lot like XSLT, but the output from a web command will probably not be well-formed. So the tricks are:
(1) coming up with a decent output filter for each command, which may be nothing more than letting users write scraping routines tailored for each web site in some language that doesn't compromise YubNub.
(2) coming up with a decent set of tags that maximize the ability to shuttle output from one command to the input of another.
By
Bill, at 6/06/2005 4:50 PM
Anonymous - Lots of excellent ideas. Yeah - How can we launch native apps (e.g. Notepad) with this thing? Named parameters is a great idea. Maybe someone can make an auxiliary service that will do this - then we don't have to change YubNub at all. Amen to extensibility!!! Interesting idea about having two URLs: one with a %s and one without. And yeah, it's nice and simple, so all this stuff could go under an Advanced options screen, as you say. Yeah - open sourcing it - awesome idea. I need to figure out a way to give read-only access to my Subversion repository to the public.
And I *love* your "email jon how's it going" command idea. But you can implement this even without the YubNub source code. Just make the service on your web server, and add to YubNub the URL of your server.
Jason - I'm delighted about your finding it useful! Yay!
Bill - Excellent ideas about output filters and standard tags. You know, maybe the output filter can just be another command. We'll see. Hoo boy - I'm tired today. I want to re-read you two comments because it sounds like there's some good stuff in there.
By
Jonathan, at 6/06/2005 7:11 PM
I have implemented a feature called "implicit commands". Basically if you type in a command that does not yet exist, YubNub will try to guess where you want to go. If it's not sure, it will return a list of search results. So if you type "porsche" it will take you to the Porsche website, but if you type "cars" it will return a list of Google search results for cars.
Actually all YubNub is doing is defaulting to Google Browse By Name if you give it a non-existing command.
By
Jonathan, at 6/06/2005 8:18 PM
Update: We now have text-to-speech and language-translation commands!
By
Jonathan, at 6/07/2005 12:50 AM
Jon,
You are right that it takes a community to create a command line. At least if we mean a command line like the one you envision.
This brings up very interesting questions of common vs. customized components.
What's interesting here is that can begin to see how the Web OS has the *potential* to be the ultimate operating system. Take this command line idea. Operating systems (in places) put some of the strongest emphasis on modularity we even find in software engineering.
The web is inherently modular (despite our ignorance leading us to miss this concept in a deep way thus far); thus, if we design this command line correctly (I imagine it will require at least on full new version), it could really begin to get across the ideas of what the web is really about.
Actually, Jon, I think I do want to help you with this for real. I've been talking to Darius about how what really irks me about the web is that despite all the cool services popping up everywhere we STILL seem to be missing the concept of ANYTHING GOING TO ANYTHING (within reason).
The dream is that one day, perhaps soon, we'll be able to use an online word processor to type up a document, then quickly (possibly within the document) specify three email addresses and two rss feeds which all automatically know what to do with the document, etc. And it goes on and on...
It's all about free, open, extensible tools, which are a big passion of mine. What do you think? This is the dream, right?
By
Darren Torpey, at 6/07/2005 5:44 AM
Hi Darren - Sounds like you have great hopes for web app nirvana: free, open, extensible tools. I share your dream. (Gmail was a major step forward! And maybe also delicious.) Amen about web apps not easily interacting yet. I just think of all the places I have to enter my profile info (I re-enter my name, email, interests, fave books in Blogger, Flickr, OurMedia, etc.) Why can't I just put my profile info in one place? So yes the web is "small pieces, loosely joined", but it needs better glue.
By
Jonathan, at 6/07/2005 8:08 AM
hmm, what about backticks?
By
jpath, at 6/07/2005 12:45 PM
Hi jpath - I'm intrigued by your backticks idea. What would be an example of their use?
By
Jonathan, at 6/07/2005 1:47 PM
Nice. How about an equivalent of the Unix 'apropos' (man -k) command?
By
Brett, at 6/08/2005 6:08 AM
Brett - Fantastic idea! I've added it to the todo list.
By
Jonathan, at 6/08/2005 8:12 AM
I just stumbled upon yubnub today and I think it's really useful. I've been using it all day. I'm not using google any more.
One suggestion:
How about using tags (like delicious) to classify the commands?
Going through the command list, especially after it gets really big, might be a bit overwhelming especially for a new user.
I already created a command and named it rotten to search the rotten tomatoes movie review site. It could be tagged with search and movies.
By
shanabak, at 6/08/2005 2:20 PM
This is by far the best RailsDay app I've seen. Thanks!
It would be useful to have an RSS feed for the commands list page to keep up with the new entries.
By
Brian, at 6/08/2005 2:34 PM
Hi shanabak - Great idea about using delicious tags!!! Maybe YubNub could run a nightly process to get the tags from del.icio.us.
Brian - Wonderful idea about an RSS feed. I'll add it to the todo list
By
Jonathan, at 6/08/2005 8:55 PM
incredible! I'd like to see refinement of all of the commands for depth and usefulness: ie, all those searches of google, yahoo, clusty, etc., should include maximum number results, 100 in their output.
very cool:
you could marry YubNub to sets of web applications, like the web applications list:
http://webapplist.com/design.html
and then make some logical commands...
I'd like to see somebody cull and refine the command list so that the end result is logical, useful and universal...
You are a genius....
This is going to make my HOME PAGE, something I've NEVER given to any url (I'm an about:blank kind of person)
By
Anonymous, at 6/09/2005 6:43 AM
Anonymous - I love your ideas. Great idea about grabbing all the apps listed on webapplist.com. Also the bit about specifying multiple parameters -- that's high on the todo list.
By
Jonathan, at 6/09/2005 12:34 PM
Also if you want 100 search results, just make your own command for now! e.g. g100, y100.
By
Jonathan, at 6/09/2005 12:49 PM
Jonathan:
Actually I was thinking about implementing tagging with-in yubnub in a way similiar to delicious, but it might be better (more flexible and truer to the idea of "the web as a platform") to use delicious as the tag organization source.
You might want to take a look at
Then each went to his own home -> Tags: Database schemas to see how to implement tagging locally at yubnub.
I'll look at how delicious could be used, you might not need to re-invent the wheel.
In any case the number of commands is blowing up (a good thing) but as the number gets larger it will become more difficult to find that command you haven't used for a while but need now, or discover new commands easily.
By
shanabak, at 6/09/2005 3:05 PM
great, it lloks like your web.app. is the target of spammer.
you can delete basically 95% of all the new commands starting from "seth" and above.
what a pitty.
maybe you should create a karma system for votting or something, with a deletion threshold or something like that.
also. beaar in mind your app. is not a shortcut for long urls.
like
gmail.com, or spam links.
By
xtracyx, at 6/09/2005 5:02 PM
oh.. i see you have the spam feature.
anyways.. who is gonna take care of that.
if it becomes too popular as i'm sure it will be... it won't work.
peer review to the rescue!
here are a couple of more ideas.
* reserve 1, 2 and 3 letter long command names to the very popular ones.
* if you are thinking about not deleting any input, ask for an email address saying if we find your cmd as spam, we will add an underscore to it.
* karma system for spam
* you can already determine the most popular commands, so you can give them 1-3 letters and place a page for them (based on popularity, i'm sure google will get the "g", yahoo the "y", and wikipedia the "w", maybe php.net the "php" etc.). I think the success of your social service will be based on how easy it is to use it, and if the easier names are taken by not the most popular sites, who's gonna use it?
* search feature. basically, given a domain, list all the cmds that link to it.
i think that's it for now.
btw, great web.app.!!!
i take my hat off~
By
xtracyx, at 6/09/2005 5:21 PM
Jonathan:
yubnub is facing the problem of netbios name clashing (solved by DNS.)
solved it by using numbers: not useful in yubnub's case.
what to do?
* use namespaces
* accounts and each define his own, and use his own
* the account becomes the namespace: shanabak.smt [search string]
* within the account settings the user chooses which accounts show up in his/her own namespace.
Creating accounts will add many possibilities, and also complexity.
Am I making any sense? I need to sleep.
By
shanabak, at 6/09/2005 5:26 PM
I definitely need some sleep. I fixed previous ugly post.
Jonathan:
yubnub is facing the problem of netbios name clashing (solved by DNS.)
tinyurl solved it by using numbers: not useful in yubnub's case.
what to do?
* use namespaces
* accounts and each define his own, and use his own
* the account becomes the namespace: shanabak.smt [search string]
* within the account settings the user chooses which accounts show up in his/her own namespace.
Creating accounts will add many possibilities, and also complexity.
Am I making any sense? I need to sleep.
By
shanabak, at 6/09/2005 5:30 PM
Hi shanabak - Very interesting idea about namespaces, and how people can choose which namespaces to include. Hmm ... !
By
Jonathan, at 6/10/2005 1:04 AM
Hi xtracyx - thanks for the ideas. Yes, We Need Search! In Unix they have a command called "apropos" that they use to search descriptions. Maybe YubNub will have something similar (so, for example, you could do "apropos movie").
By
Jonathan, at 6/10/2005 1:07 AM
Egads, we are in spam city!
By
Jonathan, at 6/10/2005 1:09 AM
Spam for kevincaoshow.com
has taken over FireFox, osx, and god knows what else. I think multiple entries for the same url should need approval. Or b/c of the sucess of YubNub you need an outamated system for users to call out spam.
By
Anonymous, at 6/10/2005 6:09 AM
Great app!
However, if something to stop or slow down spammers isn't put into place soon, it will be crushed by the parasites. Captchas? A limit on posting speed?
I personally marked several dozen entries as spam just this morning. Sheesh.
By
Bruce, at 6/10/2005 11:37 AM
I visited this morning, after an elated visit yesterday, and I was horrified of all of the spam and self-serving links.
Hooray to everyone who rescued YubNub from the dregs of the web!
It's wonderful to see this elegant web tool replete with useful links, as it was intended.
the implications for its extensibility are awesome!
congratulations
By
Anonymous, at 6/10/2005 1:17 PM
I just saw that the command list has been cleaned up with the use of the spam marker feature, nice!
Why not prevent the creation of any command without the command parameter, %s?
By
shanabak, at 6/10/2005 2:05 PM
I had the same idea that Shanabak had, but three hours later...and before I realized that I'm supposed to post them here instead of e-mailing them to Jon.
Oops. >_<
Here's another suggestion: how about a method for the site's admins (I'm guessing just you at the present time) to certify a command as a good one and to remove the "Mark as spam" option for that given command? After all, we don't want useful search commands to be disabled...do we?
Also, deleting the spam from the list once it's been certified as useless would be a very smart thing to do if you're not already. But considering that you came up with the idea and I didn't, I'll just assume that you have. :¬)
-Paul Webb
By
Anonymous, at 6/10/2005 2:25 PM
sounds like slickRun by bayden systems. its a cool free app that does what is described in the "what is yubnub" section. just google slickrun. its the first result. cant live without slickrun. keep the apps commin. good work. nice blog.
By
Anonymous, at 6/10/2005 5:16 PM
I've been using yubnub exclusively now, and I think it's great!
Question:
Is there a way to create a command for a POST type request?
By
shanabak, at 6/10/2005 5:30 PM
I recently discovered your web app on G4TV, and I have to say i'm realy impressed with what you created.
Keep up the good work!
By
Anonymous, at 6/10/2005 7:22 PM
Anonymous - I've removed the kevincaoshow.com entries.
Bruce - I'm grateful to you for taking the time to mark dozens of commands as spam. Yes, captchas is a good idea - I will add it to the list of possible future enhancements.
Anonymous - Yes I'm touched when I consider the people who are helping by marking spam as such.
shanabak, Paul - Good idea about marking non-%s urls as spam. Someone has been very busy doing just that - I was delighted to see almost all of the non-%s urls marked. I'm very impressed with the people who are doing that.
Paul - Very good idea about allowing admins to remove the "Mark As Spam" link for commands that we know are good. I will add this to the enhancements list.
Anonymous - I took a look at the slickRun desktop app, and yes it is quite similar to YubNub. How about combining the two! i.e. create a slickRun command for YubNub!
shanabak - To create a YubNub command for a POST request is kind of tricky. What I did for the tts (text-to-speech) command was return a page with a submit form that submits itself. See http://yubnub.org/kernel/man?args=tts . I suppose I could make this functionality available to people - I will add it to the todo list.
Anonymous - Thanks! I'm quite proud of this little app!
By
Jonathan, at 6/11/2005 9:11 AM
i'm glad to hear that you appreciate what i did-- it makes me feel like less of a spammer.
I had the same idea as shanabak, and used that as the criteria for marking close to 3000 commands as spam.
last night i decided to make it a cron job that runs every 10 minutes.
if you reply to this snd tell me to stop i'll shut it off.
i think the listing is looking a little better, though.
be good.
By
rando, at 6/11/2005 11:10 AM
rando - I'm grateful for your taking the initiative to create an automatic process to detect and mark spam. I was quite impressed when I saw the results actually!
By
Jonathan, at 6/11/2005 11:20 AM
Suggestion: Have rando give his magical spam removal tool to jonathan.
That makes complete sense, does it not? :¬)
-Paul Webb
By
Anonymous, at 6/11/2005 1:22 PM
Hi Paul - Good idea. You know though, I actually kind of like the distributed idea of rando running his spam cleaner on a different server. It takes a village to build a command line!
By
Jonathan, at 6/11/2005 5:44 PM
please add "you can get the code here" to the installing section on the site.. Iìm planning to use this in our company lan :)
By
Anonymous, at 6/12/2005 4:25 AM
Ian - Done!
By
Jonathan, at 6/12/2005 9:41 AM
I just came up with yet another suggestion...
It would be great if we could preview the tags and test them before they go live.
Any chance of coming up with a way for others to contribute to the project? As nice as the suggestions are, it would be even better if we could write the code ourselves to speed up the process.
-Paul Webb (who should really register for an account)
By
Anonymous, at 6/12/2005 12:21 PM
Jonathan - First of all thanks for putting my name, and the names of the other people who posted ideas, in the "upcoming features" page of yubnub.
I've never programmed in ruby before, but with a little research I found that adding the POST feature to yubnub shouldn't be too difficult. the NET::HTTP class has a post method: response = http.post('/cgi-bin/search.rb', 'query=foo')
Great job and good luck!
By
shanabak, at 6/12/2005 1:10 PM
I've been experimenting with tagging yubnub commands via del.icio.us.
Since it's main "consumer" will be a parser of some sort, I've been trying to come up with a format that maximizes the information for it.
In the first one I used the imdb yubnub command:
In the description field of del.ico.us: "yubnub command: imdb" (No quotation marks of course.)
The command name is preceded with "yubnub command:".
Then in the extended field:
"Searches for anything on the International Movie Database: imdb [search term]" which is the actual command description as shown in the yubnub man page of the command.
In the second one I used the rotten yubnub command:
In the description field of del.ico.us::"yubnub command: rotten | Search the Rotten Tomatoes movie review site (www.rottentomatoes.com). Search restricted to movies only." (Also, without quotation marks.)
The command name is preceded with "yubnub command:" and then after it a pipe and the description of the command as shown in the yubnub man page. Then in the extended field:
http://www.rottentomatoes.com/search/search.php?search=%s&searchby=movies&x=12&y=7
which is the actual command as shown in the yubnub man page of the command.
In both cases I used the following tags:
1. yubnub
2. sitename: In the case of the above examples -> imdb & rottentomatoes respectively. This will allow for looking up all tags related to a specific site.
3. Any other descriptive tags: such as search, movies (related to above examples)
I'm not sure how the parser will work exactly, but the goal is to maximize information for it. Of course the only issue is that the people posting will need to stick to a certain format for the sake of the parser. So maybe less info with a friendlier and easily remembered format will be better than a more informationally dense yet cryptic one. To strike a balance, though, between using the command via del.ico.us (i.e. readability to a person viewing from the del.icio.us page) and maxing info for the parser, the first format seems a bit better. You might even want to experiment with getting the command name from del.icio.us and then matching it up with the entry in the command name database to get the actual command string?
I think that adding a link in each man page that would bring up a pop post to del.icio.us would ease and speed up the process of tagging.
Any thoughts?
By
shanabak, at 6/12/2005 2:12 PM
Jonathan - How about a link that takes you back to the command listing (ls) on each man page?
By
shanabak, at 6/12/2005 2:17 PM
wow... this just gets better and better. I'd like to see this hook into many of the searchtools at Mycroft: http://mycroft.mozdev.org - It looks like it's heading in that direction. YubNub (I dubbed it Yub) integrates web services, heh!
ps. I added the gsuggest tool and didn't know how to add the %s part...
By
Anonymous, at 6/12/2005 8:22 PM
Hi Paul - I've put a link to the Subversion repository, so you can browse/download the code, play around with it, and submit patches if you like.
Hi shanabak - Hm! Thanks for the code snippet about POST. I gave up on it because I read somewhere that the HTTP spec prevents a GET from being converted into a POST. I will check out the function you found.
Also I skimmed your description of your idea about integration with del.icio.us. I got kind of lost, but then again I'm pretty exhausted right now! But marrying YubNub and del.icio.us is definitely a fantastic idea! Bravo for your current research into the possibilities!
Also shanabak I have put an "ls" link in the footer as you requested - will this do?
Anonymous - Believe it or not, Aaron Ransley has actually posted a YubNub search plugin for Firefox! And a couple of other people did too!
OK the gsuggest (Google Suggest) command is now fixed.
By
Jonathan, at 6/13/2005 12:17 AM
Yes! great! thanks!
By
shanabak, at 6/13/2005 3:33 AM
OK, we've now got search! Just type "ls dictionary" to get a list of commands pertaining to dictionaries. Thanks to John Gilman for that syntax.
By
Jonathan, at 6/14/2005 12:01 AM
Hi Jonathan,
Compliments for such a useful webapp! Suggestion: how about predictive typing a la google suggest:
http://www.google.com/webhp?complete=1&hl=en
That way, existing commands show up without the user having to search for them explicitly.
Keep up the good work!
By
marco, at 6/14/2005 5:03 AM
Props on this; it's fantastic.
By
Dan, at 6/14/2005 11:48 AM
I love the idea.
You might be able to reduce the amount of spam by requiring a %s in the command URL. I know this restricts things somewhat, but the more useful commands will probably have a string substitution in them.
The other comment is, you've made it easy to remove spam. But I'm concerned that someone could easily remove all commands by submitting the mark as spam URL in a small loop!
By
Bernard Farrell, at 6/14/2005 11:55 AM
rando - would you be willing to modify your spam detector so that urls with ${...} are not marked as spam? I'm planning to implement multiple parameters using this syntax. Email me if you need more info.
By
Jonathan, at 6/14/2005 12:43 PM
Hi marco - Yeah, actually Michael Pacchioli is thinking about making a YubNub Suggest page (when he gets a free moment). It would be cool!
Dan - Sounds like you're delighted with YubNub. Right on!
Hi Bernard - Yeah, I'm a little worried about it too. If something bad like that happens, I'll go into the database and unmark the commands.
By
Jonathan, at 6/14/2005 12:46 PM
Jon - I'll make sure Rando gets your latest post for him, also, you may hav enot considered this yet, but you could stop automatic scripts from adding AND/OR removing commands by requiring more information. I'd suggest possibly an image verification step. The other possibility might even be asking people who'd like to submit to go through an email address verification process to become a "member" of the YubNub community before submitting commands, you could even allow for ranking of people's commands so spammers can no longer add commands, and we could recognize the community members adding all the useful stuff.
By
mightybs, at 6/14/2005 7:13 PM
mightybs - Thanks a lot for taking my message to rando. Captcha codes is a great idea. I'm slowly warming to the idea you mentioned about having people optionally sign in. Not sure if I have the energy to implement it at this point though.
By
Jonathan, at 6/14/2005 11:44 PM
Love the idea. Mind adding autocomplete to the input field?
By
Wei, at 6/16/2005 11:09 AM
Wei - Michael Pacchioli is thinking about implementing autocomplete ("YubNub Suggest") when he gets some free time.
By
Jonathan, at 6/16/2005 12:55 PM
Hi Jon:
hey, I just used the 'antipagination' feature of an extension for Firefox
on the Golden Egg! and it worked!(I'm using Deer Park)
url here:
https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&category=Newest&numpg=10&id=853
but... I'm spoiled, how about a sorted , alpha listing of all GEs on one page.
thanks so much
a grateful user
(dontcha just luv FireFox, I can't believe how good it's becoming)
By
Anonymous, at 6/16/2005 3:23 PM
I just added a new command.
sometaithurts
which maps to
http://www.yubnub.org/parser/parse?command=sometaithurts
You may want to remove it, and add code to prevent self-reference in yubland
By
Tom Joad, at 6/16/2005 4:49 PM
Hi Anonymous - Hmm! Everything on one page, hey? Let's wait and see if others also want it.
Tom - I was scared when I read about that infinite-loop command you just made. Fortunately it looks like it doesn't take the server down -- evidently HTTP imposes a redirection limit (that's what my browser is telling me anyway). I'm so relieved!
By
Jonathan, at 6/17/2005 12:03 AM
Anonymous - Meanwhile, although the list isn't sorted alphabetically, you can search it if you are looking for something in particular e.g. "ls dictionary" will give you a list of commmands pertaining to dictionaries.
By
Jonathan, at 6/17/2005 12:23 AM
Pipes and Filters. You need 'em if YupNub aspires to the role of web command line.
Filters: I want a "grep". If I'm searching for a support forum for a spaecif brand of laptops, I'd like to write
grep -v kelkoo
Similarly, if looking for printer support info, I'd like to filter the million and one "ink" references. Google supplies the - operator but that's never very reliable. I'd also like to be able to filter by ip address to get those sites that pick up on google keywords and dynamically create unrelated ad sites.
Set Operations. Some relational algebra operations would be fantastic. Imagine running three queries from three different engines, merging the result into one list, anf then removing those sites that appear in a third query. Basic set theory. You wouldn't need to do consider projections (I would say) since your tuples are likely just going to be {address,description}.
Using the results of one query to parameterise another: is there a site that will do soundex expansions, for instance? If you weren't sure of the spelling, of something, you could use that to search sound-alikes
You're going to need some concept of type if you go down this route, since people will need to be able to treat wav files ifferently from web urls, from screen scraper results
How about a facility to auto run the result through babel fish? Better, what tools would the user need to be able to do that? How could you create user defined filters for anyone to use...
I'll stop before I get too carried away
By
Nick Fortune, at 6/17/2005 1:50 AM
This reminds me of the excellent Dave's Quick Search Taskbar Toolbar Deskbar but that only works on Windows or Sogudi (which only works on Safari), while yours can work on any OS and is more easily extensible. Congrats on a great idea! Take a look at Dave's tool to see how yours might evolve...
By
David Brake, at 6/17/2005 4:01 AM
fabulous idea. I just posted about it on my blog. I hope it will bring some more users to YubNub. I already added a search command for my blog, and recommended it for my users. good job!
By
koby, at 6/17/2005 2:34 PM
idea for yubnub: namespaces.
avoids command-name-collisions, allows groups to form spontaneously.
hardcode a couple: testing, reserved
using [ xxx ]
search [ yyy ]
By
Anonymous, at 6/17/2005 2:53 PM
Great site Jonathan. It would be nice to have a search for all the available commands. The search would go through the titles as well as the description. Also, I noticed that not all people are adding decent descriptions. Time to pass it on to my friends.
By
Act II, at 6/17/2005 3:15 PM
Seen via DannyAyers and searchblog; first thing it reminded me of was surfraw, which does this from a shell command line. surfraw.sourceforge.net. You might find it interesting, perhaps even be able to mine it for mapping urls...
By
Mark Eichin, at 6/18/2005 1:00 AM
Nick - Yeah pipes would be good. Still thinking about a simple way to implement them. Next on the list though is something easier yet useful: multiple parameters. So you could do: craigslist -city san francisco -item tennis shoes.
I like your ideas Nick. Will need to revisite them once I impement pipes.
David - Thanks for the pointer to Dave's Quick Search Taskbar. That's the second mention I've come across. I will add checking it out to my action list.
koby - Thanks for mentioning this on your blog! Looks like it's written in Hebrew? Cool!
Anonymous - Interesting idea about namespaces. Hmm!!!
Hi Act II - Actually there is now a search command! For example, to search for "music", type in "ls music". It searches titles, descriptions, and urls.
Mark - Thanks for the pointer to surfraw. I will definitely need to check out what commands they have. I like the currency converter.
By
Jonathan, at 6/18/2005 1:18 AM
Jon - this is so cool! One suggestion - I don't know if this is workable, or if this is already possible by means beyond my comprehension, but here goes:
Make it possible to have other variants of %s, such as (say) %self, which would take the URL of the page you're currently on as the %s. This would help for things like looking up the current page in the Google cache, getting a tinyurl for the page, looking it up in the Internet archive, etc., without having to copy and paste the URL.
Currently, I've other ways (bookmarklets, menus) set up so I can do these things easily, but I was just thinking how you could get these to work within the context of Yubnub.
Keep up the good work!
By
C. Callosum, at 6/19/2005 9:07 AM
Hi C. Callosum - Hm! Sounds like you are looking for the best way to use those url-based commands (like "shrink"). Not sure either how to implement a %self keyword. If you've got YubNub installed in your Firefox search bar, I guess you could just copy the url from the addressbar to the search bar.
Ideally you would be able to stick one of these commands before the current url in the address bar, but unfortunately FireFox sees the dots and gives you an error message about it being a bad url. I wish FireFox would, if it sees spaces, go directly to keyword.URL instead of giving an error message.
By
Jonathan, at 6/19/2005 9:36 AM
Cool stuff!
By
Anonymous, at 6/19/2005 11:54 PM
Anon - Thanks!
By
Jonathan, at 6/19/2005 11:56 PM
Wicked cool, as everyone else is saying.
It should be noted that the Google Deskbar can be modified to use this as well, by adding it as a customized search with a shortcut (I used ctrl-y).
By
Michael Brindamour, at 6/20/2005 8:50 AM
This is great, and I'll put in another vote for dealing with the absence of %s in a smart way.
I'd like to see this as pretty much an IF statement - if there is a %s do this, otherwise do this.
I was trying to add a link command "photoblog" where you could just enter that and it would take you to Photoblogs.org (before someone 'steals' it and has it point to their own photoblog), OR enter "photoblog seemsartless" (or whatever name you provide), and it would take you to the search results at photoblog.org.
By
Anonymous, at 6/20/2005 10:14 AM
This is great work! I love the idea and it seems to be taking off. One suggestion for further improvements that I would LOVE is some connectivity that would let you search YubNub by SMS on a cell phone. Google SMS has something kinda small-scale in beta, but it's only local whitepages/weather/movie showtime type stuff. I think there's a lot you could do with this.
By
Max, at 6/20/2005 11:40 AM
Awesome, Jon!
For OSX users, you can create an even faster "web command line" using Quicksilver. Just create a bookmark in any of your indexed bookmark sets (Safari, Firefox, etc; I used del.icio.us so it's accessible across multiple machines) with this URL:
http://www.yubnub.org/parser/parse?command=***
Now I just need to Enter my YubNub shortcut into QS (I'm using "ys" for "YubNub Search"), type my command-line operation, and my Web browser pops up with the operation performed.
By