Google Suggest Dissected
byAs a former Macintosh developer, I've always been disappointed with the user-interface of web pages. The state of the art of UI design moved backwards with the advent of the browser -- we traded connectivity for ease-of-use. With the advent of pages written in Flash, some better user-interfaces were created, but at the important cost of things like being able to copy text, have semantic and meta-data information imbedded in web pages, searchability, etc.
So I keep an eye out for innovative ideas that preserve the essence of what is so powerful about web pages, yet also offer a good ideas. My posts on Map Mashup and TiddlyWiki offer some interesting web UI exemplars.
To this list of exemplars I now add Google Suggest by Google programmer Kevin Gibbs, who wrote this as part of Google employee's ability to work 20% of the time on their own projects. Google Suggest replaces the browser's default auto-complete with one specific to Google searching. As you type each letter of your search request, you are shown the most popular requests for that term, and how many search hits are available for that search term. You really have to try out to understand how amazing and intuitive it is.
Blogger Chris Justus has dissected and documented how Google Suggest works. If you are a web developer, I recommend you read his analysis and I hope it will inspire you.
This specific technique is probably not useful for all web sites -- the amount of load that even a small number of users can place on a database using this technique requires a large server infrastructure, as basically every time you type a letter a database is being hit. Google can do this as they understand server farms and how to scale large loads. However, as inspiration for other ideas, I think it is marvelous.
For instance, I didn't know you could take control over your browsers auto-complete functionality by setting autocomplete="off" in your input field. Given this and the other techniques for display and cursor control, you could create dynamic auto-complete functionality on your own web pages, but skip the bandwidth intensive XMLHttpRequest by either caching the data in your web page, or in a user's cookie, or both. An example of this is BitFlux blog's LiveSearch functionality (which is also documented here).
The technique for retrieving the data using XMLHttpRequest is also marvelous. This functionality has been around for a while but this is one of the cleanest examples of how to do it on the client side.
I've got some other ideas on how to apply some of these techniques to Wiki pages -- hopefully in the next few months I'll have some proof-of-concept examples for you to play around with.
In addition, Google Suggest is now, in a sense, a new web service from google that can be used independently. For instance Adam Stiles has written about a hack to help suggest keywords for AdSense.