Ajax Functionality and Usability Patterns – Podcast 1 of 4: Widgets of the Web

And so, a new series begins, based on the Ajax functionality and usability patterns (Book: Part 4, pp 327-530). We’ve already looked at the technical details, now we’re looking at what Ajax can do for users and how to implement these features.

I’m asking guests to join me for most of the remaining Ajax Pattern podcasts. Seeing patterns from someone else’s perspsective will make the discussion richer and hopefully cover more questions you might have as you’re listening to the podcast. The guest for this week is Andre Charland of E-Business Applications, widget guru and author of the upcoming Enterprise Ajax book.

This 83-minute podcast covers nine patterns of Ajax widgets:

Looks Good, Tastes Good

The Search Engine Experiment – a blind test where users rate relevance of results – reveals that Google is better, but not that much better. The methodology is reasonable – the only serious flaw might be if people are assuming Google is always relevant, then trying to pick the Google results. Or if people go for Google because they’re used to it, so the results are the most comfortable. For example, when I tried the test, I jumped straight for the results that included wikipedia, partly because it just felt more pure and Googlish. It turned out to be a Yahoo! result.

Anyway, taking the results at face value, how to explain MSN and Yahoo! being more relevant than the grand-daddy of search 60% of the time? Seth has a good theory:

Google is better because it feels better and quicker and leaner and easier to use. The story we tell ourselves about Google is very different, and we use it differently as a result … Music sounds better through an iPod because we think it does.

cf. Nicholas Negroponte in “Being Digital”explains he always puts on his glasses to eat steak – it tastes better that way. (BTW “Being Digital” is the greatest tech book never to make it on Joel’s MBA reading list. A real mind-opener, like Philip and Alex’s Guide to Web Design).

So Google is a cognitive dissonance machine that actually has no clothes on? Hard to believe, but bring on more of these mashup experiments.

Rolled My Own Ajax Search

I just added an Ajax Searchroll with Rollyo, the new search engine that lets you “roll your own” (get it?) search. For example, click on the following link to search for “xmlhttprequest” on my selection of Ajax sites:

[http://rollyo.com/search.html?q=xmlhttprequest&sid=2220](http://rollyo.com/search.html?q=xmlhttprequest&sid=2220 )

(The 2220 ID corresponds to “Michael Mahemoff’s Ajax Search”.)

Rollyo lets anyone add up to 25 sites, and then constrains search results to those sites. Best thing is the site contains a link that lets you easily add a particular search to the Firefox search bar.

The Ajax search consists of links from the publicly-editable (nudge nudge) Ajax Links page as well as a few others worth searching. Please add any further suggestions here or on the links page. Given the constraint of 25 or under, I’ve limited it to Ajax content sites and very-Ajax blogs. Due to rollyo restrictions, the site must also have its own (sub-)domain rather than being qualified by a pathname (so I couldn’t, for example, add Scott Isaacs at http://spaces.msn.com/members/siteexperts/).

Rollyo wishlist:

  • Combine SearchRolls – e.g. there’s already a couple of other Ajax searches on there, it would be nice to search all at once. You could even give more relevance to sites listed in both. Maybe exclude a searchroll as well.
  • More than 25 URLs! Fair go, ref!
  • Sync URLs to some other source, e.g. a delicious tag, or in my case, the AjaxPatterns Links page.
  • Integrate as A9 columns, start.com gadgets, etc. They already have plans for Dashboard widgets, so they’re probably on to it.

It will also be interesting to see how Yubnub integrates with it. Also of note is the number of “high rollers” high-profile bloggers and celebs who’ve established their own Searchrolls (given that, based on my uid of 1882, there are under 2000 users). Looks like a nice example of guerilla marketing.

Google: Edgy Minimalist or Choice-Deficient Simplist?

Don Norman questions the conventional wisdom on Google:

Anybody can make a simple-looking interface if the system only does one thing. If you want to do one of the many other things Google is able to do, oops, first you have to figure out how to find it, then you have to figure out which of the many offerings to use, then you have to figure out how to use it.

My first reaction was, “But the user’s always right!” If users think it’s clean, then it’s clean by definition. And it is users who sing Google’s praises, not just the usabilerati.

But when you think about all of Google’s other services, how many people really use Google for anything other than search? I bet people use a lot more of Yahoo’s services.

Take another careful look at Google’s front page. Want a map? You have to click once to be offered the choice, then a second additional time to get to the map page. Want to use Google Scholar to check references? Um, well, is that “Advanced Search” or “more.” What about their newly announced blog search? Why is Google maps separate from Google Earth? (Oh, those were purchased from different companies. Yes, but why should I, the user, care about the history of Google’s acquisitions?)

All of these things require you to click on “more” which gets you to the options page where there are 29 alternatives, plus links to “About Google,” “Help Center” (if Google is really so simple, why does one need help?), “Downloads” and then a special section on “web search features,” which has another 24 links of web features, a book search toolbar, and then another 23 sections of text — not links, text descriptions and an entire meta-language you can learn to improve the searches.

This made me think, why isn’t Google of all people playing the URL as command-line game with their own products? Sample searches:

  • “groups” – Yahoo Groups first, Google Groups 2nd.
  • “map” – MapQuest first, Google Maps 7th (Google Moon 90-something).
  • “news” – BBC first, Google News 5th.
  • “images” – YES! Google finally made it to no. 1! (Quick, get the SEO lawyers, Google’s cracked the Google algorithm!)

Now, this is all very nice and integral of Google to provide honest results rather than sprinkle in their own services. But what gets me is that they often provide no relevant link to their own service. I wouldn’t expect Google to show all of their services on the homepage, but I would expect it to point me to Google Maps when I search for “map”. And when I search for “Paris Map”, it’s nice that Google offers some images in the results, but I can think of something more relevant.

Cross-Domain Portlets with Start.com Gadgets/Widgets/Startlets

Scott Isaacs on a new Start.com feature (quoted on Ajaxian):

DHTML-based Gadgets: Start.com consumes DHTML-based components called Gadgets. These Gadgets can be created by any developer, hosted on any site, and consumed into the Start.com experience. The model is completely distributed. You can develop components derived from other components on the web.

Remote portlets take the Ajax portals to another level. In fact, the whole concept is one of the biggest developments in the history of the web. A9 pre-empted it with their “Open Search” capability, which allows developers to hook into the A9 interface with live search results. Now MS is going a step further, with Konfabulator-style interaction directly on the web. It’s likely Yahoo has similar plans, given that it’s now the owner of Konfabulator. What Google does is anyone’s guess. Strategically, MS has a big edge here because of its experience working with Developers, Developers, Developers! (YES!)

The idea combines [Cross-Domain Mediator](http://ajaxpatterns.org/Cross-Domain Mediator) with Portlet. Those patterns have subsumed a now-deleted pattern that previous covered this kind of thing:

Cross-Domain Portlet: Introduce Interactive Portlets to facilitate a conversation between the user and a third-party, e.g. for services or “advertising as conversation” (http://radar.oreilly.com/archives/2005/05/remaking_advert.html)

Ajax makes it possible because there’s no page refresh. Conceptually, each portlet is autonomous and capable of conducting a conversation with another domain in parallel with other portlets. When a result comes back to one portal, the other portlets are unaffected. (You can obviously yoke portals together if you want to.) In practice, there are a couple of finer implementation points:

  • You can’t make an XMLHttpRequest Call to an external domain. Hence, the portal server must mediate.
  • Conducting parallel conversations, you’ll need some form of Call Tracking. Hopefully, you’re using a library that abstracts those details from you.

Now that a happening, here are a few things I’d like to see:

  • An open standard for conducting cross-domain conversations, one that protects the end-user and the portal host, but provides sufficient functionality to the
  • Useful ads (the advertising as conversation) concept. There’s definitely a business model here for opt-in advertising. That is, users would be willing to add advertising portlets that offer genuinely useful information. e.g. a travel portlet that lets you check flight availability.
  • RSS aggregator integration The nature of a portal can change, right? So RSS aggregators should be able to include remote portlets.
  • End-user-created portlets. Make it easy for end-users to construct their own gadgets. This idea is inspired by Charlene Li’s comments on Konfabulator: “The problem is I already know what the ultimate widget would be me … There’s only one small problem — I don’t know JavaScript! So I am at the mercy of app developers …”

Meta-Search with Ajax

I just discovered a new feed meta-search: TalkDigger (via Data Mining). It’s Ajax search all the way (buzzword overload!).

The site shows how ideal Ajax is for meta-search. Each time you enter a query, the browser fires off multiple queries – one for each engine it searches. That means the results all come back in parallel – no bottlenecks.

Back in the day, metacrawler and others were smart enough to start writing out the page straightaway, so users start seeing some results while others are still pending. The Ajax meta-search improves on the situation by directly morphing the result panels, so the page structure remains fixed even as all the results are populated. Each panel gets its own Progress Indicator.

This is an example of Multi-Stage Download – set up a few empty blocks and populate them with separate queries. When I initially created the pattern, it was pure speculation, but TalkDigger now makes the third real example I know of. I recently created a Multi-Stage Download Demo.

Another nice feature of TalkDigger, which fits well with meta-search, is the use of Microlinks: You can click on the results to immediately expand out a summary.

There’s some more features I’m hoping to see:

  • The results page definitely needs work – it’s nice seeing a brief summary of all results and having them expandable, but it’s difficult to get an overall feel. An “Expand All” would help, or showing at least one posting for each search engine.
  • The results are broken up by an ad. To me, that’s counter-productive as they look like two separate panels. I think most users will mentally filter out the ad anyway and just see the results as broken into two.
  • [Sortable columns](http://ajaxpatterns.org/Query-Report Table] – so I could sort by engine name or feed count.
  • Unique URLs Unique URLs are critical for a search engine. Unique URL Demo. Jon Udell mentioned the issue recently, regarding MSN Virtual Earth, Google Maps, and others’ lack thereof. This demo, based on Mike Stenhouse’s ideas shows it’s actually fairly straightforward to emulate standard URLs.