Welcome hackszine readers!


Jason Striegel over at hackszine, the blog of Maker magazine, has been a big supporter of my hacking with Google, and has just published an update on my IE porting work. He mentions the wiki I’ve set up to shed light on the obscure world of IE plugins, and you can look forward to lots of other fun stuff on the Facebook API here as I learn more about it. Thanks for the mention Jason!

Nice review from Bob Jomart

Bob Jomart has just posted a quick positive review of GoogleHotKeys on his blog. He’s using the Internet Explorer version, which is good to see since it’s been a lot easier to reach Firefox users thanks to addons.mozilla.org. I’m in the process of getting onto Windows Marketplace, which is the MS equivalent, but I’m not sure if it’s as widely used as Mozilla’s, it’s certainly less focused on add-ons.

New review posted


Sridhar Katakam has just posted a thoughtful review of Google Hot Keys. He’s a keen user of SearchKeys, so it’s good to hear he agrees they complement each other, and his overall verdict is that it’s "a useful add-on".

He also brings up some suggestions for improvements; being able to disable the term highlighting, turning off the hot-keys for moving between terms, and being able to go to the next page with a key command. I think those are all good ideas, I was planning on removing the term movement keys since it’s not working as well as I’d hoped. I’ll need to figure out a good way to term highlighting as an option, maybe in the top tool bar that’s shown on all search pages. I think it’s a good idea to offer a next-page key, I removed it to simplify the tool, but it does seem like that might have been too much of a simplification.

Thanks Sridhar for taking the time to write up that review! You should check out his blog if you’re interested in productivity and key commands. He pointed me towards Mouseless Browsing, a Firefox extension for keyboard navigation, and has a lot of other tips on power surfing using Firefox.

Why client-side mashup tools are important

One of the things that’s driven me to experiment with Java applets, Firefox extensions and now IE BHOs, is the conviction that the only way we’ll get to a richer and more usable web is through client-side code.

There’s lots of data stored on servers across the world, data that could be used to create some really interesting applications. For example, if there’s a URL that my facebook friends have tagged in delic.ious, or dugg, or stumbledupon, I want any links to that page marked with a gold star as I browse the web. As a human user, I have access to all the data I need to do that. Ignoring the digital life aggregation issue until another post, there’s a fundamental problem that’s blocking this.

Can’t get the data!

That data is mostly only accessible as human-readable web pages, or as an RSS XML feed. This means there’s no reliable way for a computer to take those text representations of the data, and figure out what they actually mean. It’s a weak AI problem, but even weak AI problems are hairy. It’s not quite as bad as trying to turn a hamburger back into a cow, but it’s close.

This is something that GoogleHotKeys has to do, to extract the search result links from all of the other links on a typical results page. Even for the comparatively simple and uniform format used for those pages, it took some time to get right, and it’s still vulnerable to small changes on Google’s side, such as when they added Orkut to their menu.

How do we fix this?

It would be much better if all sites gave access to their data directly, in a computer-readable form through an API. Facebook has had great success doing just that, Amazon has had a flash-based API available for a couple of years, and Google used to give you access to search results. There isn’t much standardization in what these APIs return though, apart from usually being XML (apart from some JSON mavericks). They’re also usually subject to a lot of restrictions by the site owners, can be shut down like Google’s, and easily run foul of security restrictions like the cross-domain policy unless you run through a proxy.

The semantic web is a different approach to solving this problem, it allows you to specify the meaning of the text representations, eg this link is a result link, this link is a friend link. Unfortunately, there’s no point in site owners going to the extra work of embedding that information into their web pages if there’s no compelling applications that use it. And since no sites implement it, there’s no compelling applications! It’s chicken and egg.

What this means for client-side tools

This is why client tools are so important. They aren’t subject to the draconian security restrictions of server-side code. They have access to the same data as users, without the arbitrary restrictions site owners apply to APIs. This sounds like an invitatation to a DoS attack, but they can still block an individual machine if you start being obnoxious and flooding their servers. With a server-based proxy, they can easily block you on a whim, with client-side they can’t even distinguish you from a regular user as long as you’re well-behaved.

It’s a great environment for innovating in ways that just aren’t possible on the server. This is where I think we can build some compelling and practical semantic web tools, cutting through the gordian knot that’s blocking development. I’m convinced we’ll see some appear within the next couple of years.

Why aren’t there more client-side tools?

There’s two big obstacles. Client-side web tools are hard to write. Development environments are poorly documented, buggy and don’t have big user communities. This is something I’m trying to do my small bit to help with, by documenting how to develop for IE. I don’t see this changing in the near-term, but if there were more commercial demand, developers would overcome this.

More serious is the distribution problem. It’s hard to persuade users to download and install your tool, when server-side tools can give near-instant satisfaction, and don’t raise security concerns. I don’t have a good answer to this one yet, but believe me, I’m working on it!

GoogleHotKeys is Go!


I’ve officially launched Google Hot Keys. Check out the new site for the Internet Explorer and Firefox versions, help and screenshots.

There’s already been a lot more Firefox downloads since the name change, now I’m going to work hard to promote it to IE users too. So far, I’ve started the submission process for CNet’s download.com, at the confusingly named upload.com! It looks like this will take around three or four weeks to go through their submission process, though I could speed it up if I paid $250, or went for a $9 a month package. One nice bonus is that it will appear on Windows Marketplace once CNet accepts it.

I’ll be reaching out to some of the people who’ve shown a past interest in PeteSearch, since I’m finally happy that I’ve got a product that will deliver a great experience! There’s an audience out there for this, and I will be pushing hard to get it in front of them.