Mash Note: Ninjawords online dictionary

In keeping with my new year's resolution to laud as many good Ajax apps as I trash bad ones, please allow me to celebrate the simplicity, beauty and utility of Ninjawords. An online dictionary developed by Phil Crosby, Ninjawords offers a fast, minimal Ajax interface built on the Ruby on Rails and Mootools frameworks.

When you visit the Ninjawords homepage for the first time, you see nothing but a Google-esque single-field search form and two buttons. When you type a word into the text field and click the "look up" button, a single definition for that word appears almost instantly. Most definitions come from the open-source Wiktionary; these definitions are linked to their respective Wiktionary pages and may also include a list of synonyms. For words not covered by Wiktionary, Ninjawords defaults to the Princeton Wordnet dictionary, which doesn't offer synonyms or linkable pages.

Picture_2

While this interface may seem under-featured, it actually replaces the bloat of most online dictionaries with lots of subtle, powerful features:

The lookup really is fast

The use of Ajax in an already stripped-down interface makes each lookup seem instantaneous on a decent connection. There are no banner ads and server-round trips to slow things down.

Definitions don't disappear ...

As you look up additional words, the definitions of previous words remain on the page. This is a huge usability improvement over paper dictionaries - and most online ones. You can compare words and "save your place" without resorting to multiple tabs, browser bookmarks, physical bookmarks or dog-eared pages.

... even if you leave the site

There's also a cookie-powered history sidebar that remembers your entire search history even if you leave the site and come back later. The history sidebar can be removed from the interface with a single click and added back from a link in the footer.

The search box is flexible

If you type a comma-separated list of words into the search box, the definitions for all of them will appear simultaneously.

The URLs are restful

You can also append the same comma-delimited list of words to the base url and bring up an instant list of those words' definitions. Voila, an easy API for linking words on your own site to Ninjawords.

Misspelled words still get results

Ninjawords employs the Google Toolbar spellcheck API to provide definitions for misspelled words. Whereas a typical online dictionary might load up a new page telling you your word doesn't exist and providing a list of alternate spellings, Ninjawords just guesses, based on Google's powerful algorithms.

The "random" button provides an instant vocabulary builder

In addition to the "look up" button, Ninjawords offers a "random" button. Click it, and you learn a word of Ninjawords' choosing. It's the Word of the Day on steroids.

If you've ever used a typical, slow-loading online dictionary, it's easy to intuit why Crosby built Ninjawords the way he did. Luckily, though, he spells it out on his blog:

I’ve built an online dictionary because I was frustrated with what’s out there. I often need to quickly check a word’s definition, and I usually find myself shouting these questions at the websites (I sometimes take bad usability personally):

  • Why are you inundating me with images and ads, when the content of dictionaries is purely text?!
  • Do you really think I need to see 50 definitions of the same word?
  • Why do I have to open 10 separate pages to look up 10 different words?

To sum it up, “get out of my face and show me a definition!”

I have a high-latency satellite connection, so it really is a huge pain to deal with cruft in a dictionary. We shouldn’t have to. If you want exhaustiveness, buy an OED.

From a user-experience perspective, Ninjawords is killer. But it's also notable from an entrepreneurship perspective. On paper, yet another online dictionary might seem DOA. But Ninjawords proves that a single engineer with a talent for UI design can create a compelling application out of component parts. Crosby built Ninjawords using a host of existing code libraries and content stores. It really is a pure mash-up: a far superior user interface built from open-source tools. When APIs didn't exist, Crosby got creative - for instance, using the Rails-based page scraping library scrAPI to harvest content from Wiktionary. What could be more inspiring?

Lest I lose my misanthropic reputation, I do have some minor quibbles with Ninjawords. It would be nice if you could clear your definition history without having to go into your browser's cookie dialog. I'd love to see the Wiktionary links come up in a lightbox - or even a separate window - instead of taking me out of Ninjawords completely. As for my biggest gripe - the lack of a public API - well, that could be in the works; see the bottom of the site's About page.

Comments: 3 so far

  1. I have been using http://definr.com/ for quite some time. I think their interface is much better than the one described in this article.

    Comment by Lance, Wednesday, January 9, 2008 @ 6:34 am

  2. hy…perkrnalkan aq dr indonesia aku ingin tau gmana cara settingnya agar bisa translate ke berbagai bahasa di dunia??///

    Comment by irawan, Monday, January 28, 2008 @ 1:46 am

  3. I really love ajax dictionary but the most comprehensive online dicitonary is this one. http://www.quickdef.net. It shows a lot more information on your word search. Try it too. I even downloaded their toolbar. :) Second, I like definr.com but it really lucks something. Anyway, it’s for own preferences. :)

    Comment by Louise, Monday, March 10, 2008 @ 11:49 pm

Leave a comment

Powered by WP Hashcash

About Pathfinder

Follow the Blog

    Get a monthly update on best practices for delivering successful software.

    Subscribe via email

      

    Subscribe via RSS      RSS icon

Topics

Search

WordPress

Comments about this site: info@pathf.com