All posts by Dylan Schiemann

About Dylan Schiemann

Known for things called Dojo, SitePen, and Comet.

Case Study: eEnglish

The large companies that use Dojo are widely known. As part of a new feature, we’re going to start introducing users of Dojo and tell their stories. First up is eEnglish, with an interview of Marty Humphreys.

Q: How did you learn about Dojo?

A: I first found out about Dojo, I think it was version 0.3, while searching for a rich user interface toolkit to aid in rapid development of some internal web-based tools. The first project was a utility that performed DNS record lookups at regular intervals to track changes to the whois information for websites hosted for clients. We called it Dr. Whois. In a record time of only a few days, I was able to get a fully functional app up and running that completely exceeded all expectations and included a lot of handy features that I doubt could have been added in if more time had been spent on working through GUI challenges.

Since all the components provided by Dijit, such as toolbars, drop-down menus, and tabs closely mirrored desktop application equivalents, the resulting system was intuitive to use, and continues to be used today with no modifications needed to keep updated with the latest browsers. Everything ‘just works’ and continues to do so.

Q:Why did you choose Dojo?

A: Given the early successes, there was a natural gravitation towards Dojo when a port to HTML was required for a sister company‘s English pronunciation learning software, eEnglish.

Despite a very rapid release schedule, tight deadlines, multilingual and multimedia requirements, and very complicated user interface component interactions, it was relatively easy to mold Dojo to do exactly as we needed. Honestly, with regards to how nicely all the Dijit widgets snapped together, combined with the robustness of the utility functions that the Dojo core provided, what initially took many years to build as a desktop program took a fraction of the time to deploy as a web application.

We were able to draw upon years worth of assets such as video and audio clips, but nonetheless, after restructuring everything as HTML there was time left to extend the product beyond the original capabilities, adding in features such as a speech test (find out what parts of speech you have most difficulty with) and a vocabulary building component, while still improving details like animations and transitions, and also creating a great administration dashboard.

Q: Were you previously using another toolkit?

A: Yes, other projects were built upon other frameworks, including SproutCore, jQuery UI, TikiWiki, and ExtJS, all to varying degrees of success. It is a matter of picking the right tool for the job; for applications that depend on reusable, stylish, well-behaved components in complicated, heterogeneous systems, Dojo really shines. Being able to easily mix and mash widgets around alongside other libraries like soundmanager2, swfobject, and still be able to freely use vanilla html when needed was a huge plus.

Q: How does your application use Dojo?

A: Initially, eEnglish only made extensive use of the the Dijit interface components, however as the project grew it became necessary to bring in other modules like dojo/data and dojo/store to make dealing with database resources much more simple to manage and reuse. We started with version 1.2 and kept upgrading Dojo alongside the project as it was developed and I was always pleasantly surprised to find that with each version bump almost none of the existing code broke, and usually some new feature landed that solved some problem like adding in stylish graphs charting a person’s progress. I’m not exactly sure what version the final product is using, as we ended up migrating to the source trunk to keep up with the bleeding edge, but dojo.version lists it as revision 22487.

Q: Overall, what is your experience with Dojo?

A: Getting everything running smoothly was really low stress, and pain free. I liked that. It was completely possible to build in a very organic fashion, adding in code where it was needed, have it auto-magically load on demand, and not fret about a new commit breaking some other part of the site. Maybe as a result of this there was a bit too much monkey patching happening but it worked as a development strategy. After all of the main parts were built and put together, lessons, example sentences, listening discrimination, speech analyser, dictionary, etc, etc, etc, and were working well, it was a joy to make some small overrides in a few key places, namely the Claro Dijit theme and watch the app totally transform its style to fit exactly what we were looking for.

Q: What’s your favorite thing about Dojo?

A: There is a lot to like about Dojo, at first there were some concerns about page load speed, but after making a custom Dojo build that included only the parts of it that we were using we got an amazing improvement, and now the site loads super fast, doubly so if it’s cached. With the module based system, it is great to know that it is a cinch to drop in almost any functionality on-demand. Being able to intermingle declarative widget creation with a programmatic approach was also a big win for us.

Q: What are your future plans with Dojo?

A: There is still a lot of room for eEnglish to grow and mature as a product for english learners and I hope to continue to improve upon it as more people find out about it and give it a go. For future projects I will certainly be keeping Dojo near the top of my developer toolbox as it is one of the most versatile yet stable projects out there for applying rich user interfaces and great functionality to web applications.


Thanks Martin for telling us about your experience with Dojo. If you would like to share your experience, please contact us.

Autumn Dojo Events

There are a number of Dojo events coming up this autumn. We hope to meet you at one of these events:



Training Workshops

  • Dojo Skills. SitePen. October 9-10. Ottawa, ON. Paid registration required.
  • Dojo Skills. SitePen. October 11-12. Toronto, ON. Paid registration required.
  • jUMP into Dojo. SitePen. October 16. Boston, MA. Paid registration required.
  • Dojo Skills. SitePen. October 17-18. Boston, MA. Paid registration required.
  • jUMP into Dojo. SitePen. November 12. Denver, CO. Paid registration required.
  • Dojo Skills. SitePen. November 13-14. Denver, CO. Paid registration required.

Dojo 1.8 Released!

The Dojo team is very excited to announce the immediate release of Dojo 1.8, our last major release before the big 2.0!

This release would not have been possible without significant contributions from the Dojo team. Special thanks to Colin Snover, Bill Keese, Dylan Schiemann, Rawld Gill, Ken Franqueiro, Bryan Forbes, Kitson Kelly, Brian Arnold, Doug Hays, Christophe Jolif, Mark Wubben, Doug Hays, Yoshiroh Kamiyama, Kris Zyp, Patrick Ruzand, Adam Peller, Evan Huang, and dozens of others, and to IBM, SitePen, AltoViso, and Research in Motion for their generous contributions of development time and financial support.

With that out of the way, let’s talk about what’s new in Dojo 1.8!

Better Documentation

The top goal of Dojo 1.8 was to significantly improve the quality of our documentation. In order to achieve this, in this release, we’ve:

  • made more than 500 fixes to our documentation based on community feedback (thank you!)
  • re-organized and committed over 1500 changes to our reference guide
  • developed a brand new, extensible JavaScript-based documentation parser, which we use to generate output for the API viewer
  • significantly enhanced the API viewer with full AMD support, module cross-linking, property source information (useful for modules that are augmented by other modules, like dojo/NodeList), and other improvements

We’re still in the process of updating the Dojo tutorial series to bring you the latest and greatest advice, but over 70% of our existing tutorial series have already been updated, with the remainder to be completed in the coming weeks. We’re also adding ten brand new tutorials to teach you about the new features added to Dojo 1.8. We’ll be announcing the remaining tutorials as they are released on our Twitter account (@dojo), so keep an eye out there.

New Features

Dojo 1.8 isn’t all documentation, of course! We’ve also been hard at work adding several major new features to the toolkit that we think you’ll enjoy. These new components include:

dojo/request: A cross-platform AJAX component, designed to be more flexible and extensible than the existing dojo/_base/xhr component (which it deprecates). Notable new features of this component include the ability to perform AJAX calls from Node.js, XHR2 support, and a mechanism for registering handlers to convert arbitrary response payloads into usable objects.

dojo/node: A new loader plugin that enables server-side code to load Node.js/CommonJS modules from within the AMD loader.

dojo/router: A component that enables client-side applications to register and navigate between discrete “pages” that change based on the current browser URL, like the navigation of a “traditional” server-side application.

dojo/promise: A redesigned, Promises/A-compliant deferreds/promises implementation which deprecates dojo/_base/Deferred. Notable new features include improved instrumentation and error handling, an easier-to-use API, and a reduced footprint for applications that only need a subset of its features.

dijit/Destroyable: A new base widget class that makes it easier to ensure event handlers, topic subscribers, and other connections are properly cleaned up when their owner objects are destroyed.

dojox/Calendar: A new, feature-rich calendaring widget that enables you to quickly and easily create event calendars. View a demo.

dojox/dgauges: A new framework for creating graphically rich gauges used to represent and manipulate data. View a demo.

dojox/treemap: A component for creating treemap data visualizations. View a demo.

In addition to these all-new features, we’ve also significantly enhanced several other components from earlier versions of the toolkit. Some of the more notable improvements include:

  • dojox/mobile includes 28 new mobile widgets including audio, video, grid layout, and tree view. (View a demo.)
  • dojo/dnd and dojox/gfx are both now fully functional on mobile devices.
  • dojo/parser now accepts AMD module IDs in the data-dojo-type attribute. It also includes a new asynchronous mode that allows modules to be automatically required based on the data-dojo-type attribute if they haven’t been explicitly required yet.
  • dojo/Stateful now allows the use of getter and setter functions; previously, only dijit/_WidgetBase enabled getter/setter functions.
  • Dijit’s Claro theme now uses CSS3 gradients instead of images in browsers that support it.
  • DOH Robot now works with the loader set to asynchronous mode.

A more exhaustive list of new features and enhancements can be found in the Dojo 1.8 release notes, along with some migration instructions for any changes that are known to be incompatible with code written for Dojo 1.7 and earlier. The complete list of 971 new features, enhancements, and bug fixes can be found at the bug tracker.

What’s Next? 1.8.1 and 2.0

Now that we’ve released our “final” version of the Dojo 1.x series, we’re moving full speed ahead into planning for Dojo 2.0! In the meantime, we’ll continue to issue maintenance releases for all major Dojo versions 1.4 and later as necessary to ensure your apps continue to work well into the future. We’ll also be releasing a Dojo 1.8.1 release in the next 2–6 weeks to address any bugs that were introduced in Dojo 1.8.

We’ll be providing more information on the blog shortly about our vision for Dojo 2.0 and how you can help to make it the best version of Dojo ever.


We hope you’ll find Dojo 1.8 to be exceptionally stable and reliable. However, if you do run into any issues, please let us know by open a ticket. If you find a problem in the documentation, you can also provide feedback via the link at the bottom of every page. Otherwise, enjoy the release!

Dojo 1.8 Talks at London Ajax

Dojo Committers Kitson Kelly and Mark Wubben gave a pair of talks this week at the London Ajax User Group. Kitson gave an overview of the changes in Dojo 1.8, while Mark dove into his work on updating dojo/promise. In case you missed it, you can read the slides or watch the videos:



Thanks to Kitson and Mark for delivering these talks, and to SitePen and Skills Matter for sponsoring the event. If you’re ever in London, the group meets the second Tuesday of every month to talk about JavaScript and Ajax topics, with many Dojo users and committers in attendance.

CometD 2.5 Beta 1 Adds AMD Support

The CometD project just announced their first 2.5 beta, which adds AMD support to their Dojo-based JavaScript client, as well as their jQuery client with an AMD loader.

The release notes contain full details. They have set things up such that it will work with AMD syntax, and still work with the legacy dojo.require/dojo.provide syntax.

If you are using the require/provide syntax, you need to register a module path prior to requiring dojox.cometd:

dojo.registerModulePath("org", "../org");

For AMD applications, either use the “tlmSiblingsOfDojo: true” configuration attribute, or use a configuration object specifying the “packages” field and map that to the location of cometd.

CometD 2.5.x ships updated demos that you can use as examples:

* Dojo 1.7 AMD-style demo: the Reload demo, the Chat demo
* Dojo 1.7 non-AMD demo: the Echo demo, the TimeSync demo

Please report any bugs you find to the CometD issue tracking system.

For Dojo 1.8, we will remove dojox/cometd from the repo, and add an svn:externals to the CometD project source code.

Dojo Recognized at the Great Indian Developer Summit

The Dojo Toolkit was recently selected as the 2012 recipient of an award for excellence in web development technology at the Great Indian Developer Summit. We are honored to receive this award. The conference has over 14,000 attendees, India’s largest tech event. Anuj Dubey and Lakshmi Sharma accepted the award on behalf of the Dojo Foundation.

The selection criteria for the award emphasized functionality, usability, innovation excellence, bleeding-edge features, and feedback from the developer ecosystem. The web development category specifically emphasized web development and deployment tools that are helping developers and designers push the boundaries of the web, which is consistent with one of Dojo’s primary objectives!

Dojo 1.5.2 Released

We’re pleased to announce Dojo 1.5.2, a set of updates for anyone using the 1.5.x line of Dojo. This release is a departure from our approach in the past, and is something new we’re trying to better support you.

The 1.5.2 update consists primarily of backports of browser compatibility fixes for Internet Explorer 9 and Firefox4+, most of which were originally added in the 1.6.0-1.6.1 time frame.

If you are working with a Dojo 1.5 code base and are interested in benefiting from browser compatibility fixes heretofore seen only in 1.6+, please give this a whirl in your apps. It’s a low risk update that will provide you with better browser compatibility, without any changes to APIs or features from 1.5.1.

Note that 1.5.2 is not yet available on the CDNs, but will be available in the near future.

Please report any new issues you find in your testing with your Dojo Foundation account.

1.7 Tutorials, CometD 2.4.0, Wink Toolkit 1.4.1, and Documentation Feedback

This past week included four significant announcements:

  • The Dojo Tutorial series has been updated to include version 1.7 of Dojo. Read the announcement from SitePen for more details.
  • Wink Toolkit has been updated to version 1.4.1. Wink Toolkit is a Dojo Foundation project that is mobile-specific, now builds on AMD, and is now easy to use with Dojo. See the Community Connections demo app which shows off using Dojo and Wink together, and introduces some of the committers to Dojo and Wink.
  • CometD has released version 2.4.0. In addition to improving their WebSockets support, they have also updated their Dojo client to work with Dojo 1.7.1 (though it does not yet support AMD).
  • We’ve long heard that we have issues with our documentation, and in spite of our best efforts to improve them, especially with the tutorials, we need help identifying and resolving issues with our docs. If you’re interested in contributing, less us know on the mailing list or on IRC. But even if you’re not interested in that level of help, we’ve simplified the feedback process. At the bottom of each API viewer and tutorial page (and soon reference guide as well), you’ll find a link to a quick feedback form. If you see an issue on the page you’re reviewing, simply click the link, type in a note with the details of the problem, and we’ll make it a priority to fix.

Looking for DojoConf in Europe? Try Web-5 in April!

The very successful and inspiring DojoConf in DC last September has led many to ask us when there will be a DojoConf EU?

While we have no immediate plans, active Dojo user “PEM” of the Web-5 Association is organizing Web-5 in Béziers, France in early April. In addition to 6 excellent Dojo talks, the conference will also include more general talks on HTML5, Mobile Web, Node.js, WebGL, performance, and general JavaScript and web application development topics.

Early registration is now open with a 33% discount available for the first batch of sign-ups. We hope to see you in beautiful Béziers, to talk about Dojo and web development: