Catch a Shortwave

Shortwave ~ an extensible quick-search and shortcut system

Shortwave is an extensible quick-search and shortcut system like Firefox’s Smart Keywords or Safari Stand’s Quick Search except in the form of a browser-agnostic JavaScript bookmarklet. It’s launching with some universal defaults and can be customized using a simple, specially formatted, self-hosted text file called a Wave (here’s the default wave.txt as an example).

Where is this coming from?

A number of reoccurring nuisances recently motivated me to create Shortwave:

  • Updating to the Safari 4 Developer Preview disabled Saft and its Shortcuts. Stand still works but I hadn’t configured its Quick Search.
  • Frequently using multiple browsers, I often find myself typing a shortcut or trigger that isn’t recognized by that particular browser.
  • While out and about with the iPhone on the Edge network, the fewer full page requests the better (really the last straw).

24 hour back-scratch

So Wednesday night, literally Thursday morning, before bed I hashed out a proof of concept and slept on it. That morning I did some (really) quick work on an identity, keeping inline with the style I’ve been developing for Fever.

Later that evening I rewrote the entire thing making it more extensible and purchased the domain name shortwaveapp.com. (catchashortwave.com was available and more inline with haveamint.com and feedafever.com but was too long and had too many hidden words that reduced readability.) The new domain was live a little after midnight that same day.

Take that Matt! <emoticon type="wink" />

Keep an eye on the Shortwave category archive for updates.

Privacy Addendum

Custom Waves must be web accessible so make sure there is no sensitive info (email, passwords, etc) in your urls! And while the Shortwave homepage is Minted, trigger calls (including help), which may provide the path to your Wave, are ignored. I’m not collecting any usage data beyond hits to the homepage—I already have a little brother, I’m not looking for anymore younger siblings. See also my comment on privacy.

Previous
Twitter Quick Reply Favelet
Next
Favicons
Author
Shaun Inman
Posted
July 6th, 2008 at 5:48 pm
Categories
Apple
JavaScript
Web
Shortwave
Comments
031 (Now closed)

031 Comments

001

Hey Shaun - super cool idea!

… And don’t worry, Matt still wants to be your bud.

Author
Ryan
Posted
Jul 6th, 2008 6:29 pm
002

In Safari, the first 9 bookmarks of the Bookmarks Bar are mapped to cmd-1 through 9. Makes for a great keyboard shortcut.

Author
Byron McCollum
Posted
Jul 6th, 2008 6:50 pm
003

Awesome idea Shaun :) I could get used to this!

(just one other thing I thought you might want to know about.. I tried signing up for the Fever notification, but every time I tried submitting my address is cacked out and threw a generic error at me (We apologize for the inconvenience but an error has occurred. Please try again later.))

Author
Jonic
Posted
Jul 6th, 2008 6:56 pm
004

Jonic, thanks for the heads up. Looks like Campaign Monitor took a header for about half an hour around 7pm EST. Everything appears to be working again.

Author
Shaun Inman
Posted
Jul 6th, 2008 8:22 pm
005

Shaun,

The default behaviour when adding short wave as a bookmark in FireFox 3, is to output ‘null’ in the current focused tab if one ‘cancels’ the Shortwave dialog.

Is this intended? It’s not a complex task to open another tab prior to running Shortwave, but that does diminish the time saved in return.

Fantastic concept and I can see a huge amount of potential - looking forward to making use of Shortwave for a number of tasks.

Author
BrendanB
Posted
Jul 6th, 2008 8:36 pm
006

Is it possible to completely overwrite the available commands (as to not have the defaults from your wave.txt) and only those in your custom wave.txt? Perhaps I’m missing something, even while using my waves.txt I’m still getting the defaults. It’d be great to trim the list a bit and get rid of the triggers I wont use.

Otherwise this is an awesome tool and something that will definitely become part of my every day browser use.

Author
Mike Vitoroulis
Posted
Jul 6th, 2008 8:47 pm
007

Well, this certainly is a nice idea (and a very cool site design - which you sadly wont see much when you use it), but why does it have to pass all searches through your site? I mean, since this all works with a Javascript bookmarklet, why not do the whole implementation in Javascript?

You see, search terms are a very sensitive matter and I do feel uncomfortable giving everything I search for into the hands of a private person I don’t know. I’m sure you won’t do any evil with this, but the sole fact that you could, probably scares many people away.

I tried a similar thing some years ago ( phoboslab.org/cmd ) - It works great for me, but everyone else who tried it told me about his privacy concerns and never used the site again. At that time the thought to implement this all client side never came to my mind.

Author
Dominic
Posted
Jul 6th, 2008 9:03 pm
008

BrendanB, grab a fresh copy of the bookmark. I’ve updated the JavaScript, encapsulating the entire operation in a function to play nice with Firefox.

This update is only necessary if you’re having the issue Brendan describes.

Mike, try adding the following comment to the top of your waves.txt:

> #kill-defaults

That should—unsurprisingly—kill all the defautls.

Author
Shaun Inman
Posted
Jul 6th, 2008 9:13 pm
009

Dominic, as I mention in my post, I don’t have an interest in and am not monitoring the searches that pass through Shortwave.

All searches pass through the Shortwave domain for one very simple, evil-free reason: if all the triggers and destination urls were embedded in the JavaScript bookmark that bookmark would need to be updated every time a new trigger was added—in every browser and on every computer that uses it. That would be an absolute syncing nightmare.

The way Shortwave currently works you simply update a text file that you control. It’s a trade-off between perceived lack of privacy and convenience. You decide.

Author
Shaun Inman
Posted
Jul 6th, 2008 9:21 pm
010

Mr Inman,

A most agreeable change - excellent.

Author
BrendanB
Posted
Jul 6th, 2008 10:24 pm
011

Hrm. Works fine in Safari and Firefox, but does nothing for my iPod Touch.

Author
Ernie Oporto
Posted
Jul 6th, 2008 11:14 pm
012

Very cool little app, and a great design to go with it! How’d you come up with the name?

Author
Karan Lyons
Posted
Jul 6th, 2008 11:20 pm
013

Ernie, works fine on my iPhone (1.14 with JavaScript On). That goes for pre- and post-Firefox fix. Are you adding to Safari and then syncing via iTunes? There’s no easy way to add a JavaScript bookmark to MobileSafari that I know of (said in the hopes that someone will enlighten me).

Karan, Shortwave started as Quicksand as an homage to Quicksilver (Waves would have been Grains). As I was falling asleep different names were racing through my head. I don’t remember actually making a decision but when I woke up I “knew” that I had decided on Shortwave (which is closer to “short way” or “shortcut” and unique in this namespace). For such a small app, that was good enough for me. ;)

Author
Shaun Inman
Posted
Jul 6th, 2008 11:56 pm
014

Shaun, awesome app. I think it’s going to be a part of my daily browsing. I use Saft but this seem to be quicker since I can evoke it with a simple key command. Brilliant work.

Author
Antonio
Posted
Jul 7th, 2008 12:13 am
015

This actually works remarkably well as a firefox search engine (added as an addon).

No need to select a search engine prior to launch - takes advantage of Firefox’s built in search tool and makes a good alternative to the javascript pop-up.

Author
BrendanB
Posted
Jul 7th, 2008 1:46 am
016

It really is a sweet little tool you have created Shaun, great work as always. Love your naming abilities too! ;)

Author
Sam Brown
Posted
Jul 7th, 2008 4:30 am
017

This is really cool, thanks a ton! I’m not really sure how I am supposed to add custom triggers; I don’t completely understand the whole .txt thing, but a Fandango or last.fm shortcut would be great!

Author
taylor
Posted
Jul 7th, 2008 7:07 am
018

Very cool tool indeed Shuan and very neat and clean design, kudos!!

Author
Buaasz
Posted
Jul 7th, 2008 7:43 am
019

Hi Shaun,

One wave you could add would be the “Feeling Lucky” feature of Google, as it can be a real time saver in some situations. Here is the URL : google.com/search?q=stuff&btnI=I%27m+Feeling+Lucky

I guess a “gl” trigger could go (or uppercase G, maybe).

Cheers.

Author
Louije
Posted
Jul 7th, 2008 7:53 am
020

hi shaun. looks like a great tool.

i would suggest adding google image search. i use that one most days.

img http://images.google.com/images?q=%s

Author
david
Posted
Jul 7th, 2008 9:01 am
021

I’m a little confused how to use this on MobileSafari. Can someone explain to me? Thanks.

Author
Matthom
Posted
Jul 7th, 2008 10:06 am
022

Matthom, Like any bookmark, just add the bookmarklet to Safari on your desktop and then sync your bookmarks to your iPhone/iPod touch with iTunes. Open up MobileSafari, hit the bookmarks button and then click the Shortwave bookmark.

Author
Shaun Inman
Posted
Jul 7th, 2008 10:22 am
023

Lovely lil’ app. Thank you.

Author
Stuart
Posted
Jul 7th, 2008 10:38 am
024

Brilliant little app!

I’ve been manually shortcutting for a while (rather than loading wikipedia, I would just google “wiki something”) - this takes it a step further and speeds up the iPhone/iPod Touch search process.

Thanks!

Author
Ian Hart
Posted
Jul 7th, 2008 1:19 pm
025

Django documentation would be a great add-on.

Just a simple Google search with “site:www.djangoproject.com/documentation” tacked on to it.

Author
Peter Baumgartner
Posted
Jul 7th, 2008 1:41 pm
026

Shaun, is there anyway to have a history of the searches? One thing I love about the Saft quick searches is that it keeps a list of the most recent searches. If something like this could be implemented it would make it perfect.

Author
Antonio
Posted
Jul 7th, 2008 11:33 pm
027

Shaun, this is a great tool, will try to use it as much as I can! Thanks!

Author
Ivan Nikolic
Posted
Jul 8th, 2008 5:40 am
028

Antonio, history would be a bit tricky since I don’t keep a record of recent searches. Because the bookmarklet uses a JavaScript window.prompt() (enabling use on an empty window or framesets which have no DOM) we can’t store recent searches in a cookie. The cookie would be set by whichever domain you were on when you triggered the search and unaccessible to other domains. Additionally the window.prompt() method doesn’t allow for scriptable autocomplete/suggestions.

I’ll mull it around a bit more but I don’t think its possible without requiring an account or crippling Shortwave on empty windows and framesets.

Author
Shaun Inman
Posted
Jul 8th, 2008 7:48 am
029

Shaun, thanks. I would sign up for a free account to get a history of my searches.

I’m no developer so I apologize if this sounds stupid but couldn’t you “write” each search to a text file that would be hosted locally and then invoke the page when you type in “history” into Shortwave? Similar to the behavior of when you type in “help”.

Author
Antonio
Posted
Jul 8th, 2008 10:20 am
030

Cool, works as advertised…

Would you be open to making the source available so someone might want to install a local version?

Author
Dave
Posted
Jul 8th, 2008 11:31 pm
031

In my wave file, a couple that many might find useful:

rt for RottenTomatoes Search
down for DownForEveryoneOrJustMe

Author
Camron
Posted
Jul 9th, 2008 3:19 am