- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
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.
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.
Topics: Ajax Applications, Mash Note, Ruby on Rails
Comments: 3 so far
Leave a comment
About Pathfinder
Recent
- Project Website Part 4: Drag and Drop in jQuery
- The App Store, iPhone, and You
- Multiple Column Sorting with Drag and Drop using Scriptaculous
- Five jQuery plugins that are a joy to use
- Visualizing Your Database Schema Entirely in Rails
- jQuery plugins: Five tips for separating the good from the bad and the ugly
- Resolved: Should schema.rb be included in your source control?
- Flash 10 - FileReference Runtime Access
- Papervision3d 2.0 (Great White) in Flex 3 (Part I)
- MetaWidget - Convention over Configuration UI
Archives
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006



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
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
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