Jun 9

Dojo is Doing it Again

By on June 9, 2016 12:34 pm

Peter Higgins, former project lead for Dojo, gave an excellent talk at JSConf in 2013 titled “Dojo Already Did That” (which reflected a humorous meme started at the first JSConf). It was highly informative about how Dojo had already solved problems that the JavaScript community were solving again in 2013. Even 3 years later, there are a lot of modern solutions that were solved in Dojo 1.

Jun 6

Migrating from DOH to Intern

By on June 6, 2016 8:53 am


Until a few years ago, our testing efforts with Dojo were focused on the Dojo Object Harness (DOH), a very early unit and functional testing suite. Developed by the Dojo Toolkit community nearly ten years ago, DOH’s main purpose was to provide functionality for unit testing JavaScript functions and custom widgets in a cross-browser compatible way.

As part of our efforts toward Dojo 2, we knew we needed something much better than DOH, which led to our work on Intern. We described our thought process on creating Intern in a previous blog.

For the Dojo 1.11 release, we spent time updating to a more modern testing framework and converted all DOH-based tests in Dojo core to use Intern. This will allow the Dojo Toolkit to ensure code coverage across the toolkit and also allow streamlined regression testing to more quickly accept fixes and patches from the community.

Apr 19

Simplifying Intern tests with Command helpers

By on April 19, 2016 7:21 am

Intern Logo

Intern, via the Leadfoot WebDriver library, provides a lot of low-level control over the browsers it uses to run tests. Tests can navigate to new pages, resize the browser window, examine elements on a page, and interact with controls like inputs and buttons. Unfortunately, with all this power can come great complexity. Many testing tasks will involve a large number of low-level operations and dealing with these can be error prone and make tests difficult to follow. Command helpers to the rescue!

Mar 31

2016 Esri DevSummit Recap

By on March 31, 2016 12:12 pm

Esri Dev Summit
Esri, the creators of great mapping technology, hosts their DevSummit every March in Palm Springs, CA. Esri creates their popular ArcGIS for JavaScript API by leveraging the Dojo Toolkit.

Esri trends

esrilogoEach year Esri announces a number of new features and technologies at the DevSummit, and this year was no exception. They have really improved the visualizations and effects possible with their JavaScript API recently, delivering very impressive 3-D maps leveraging WebGL, as well as now supporting vector-based tiles for mapping data, and a strong emphasis on user interface components for adding analytics on top of Esri-based mapping applications.

Jan 13

Simplified Dijit Functional Testing

By on January 13, 2016 10:03 am


One of the nice features of testing with Intern and Leadfoot is the ease of authoring functional tests to mimic end-user behavior. The API for retrieving relevant DOM nodes is relatively straightforward, usually with a single line of code needed to get a reference to the relevant node.

When we started writing tests for Dijit, we realized that it was often a fair amount of boilerplate to get references to specific widget instances, attach points within those widgets, and property values of widgets. One of the advantages of Intern is you can integrate this boilerplate into a helper. So, we set out to create a simple Intern helper utility to make these operations as efficient to author as normal functional tests.

Nov 16

Exploring dgrid with dgrid Laboratory

By on November 16, 2015 11:37 am

For the dgrid 0.4 release we added a new demo and helper utility, the dgrid Laboratory. This is more than just a demo, as it allows you to quickly explore and build different dgrid configurations, returning boilerplate code for efficiently including dgrid within your application. Although not every possible configuration is supported with this tool (sub-rows, column sets, and compound columns), it is very useful for visually generating complex base configurations for use in your applications. The dgrid Laboratory itself was built using dgrid as well!

dgrid Laboratory

Using the dgrid Laboratory

The left panel of the dgrid Laboratory allows you to select and modify the grid’s configuration. The right panel provides a preview of the grid as well as generated code. These right panel tabs are updated in real time as you make modifications to the dgrid options in the left panel.

Nov 6

Death of Object.observe()

By on November 6, 2015 9:47 am


Adam Klien, software engineer at Google, announced on ESDiscuss that they were withdrawing the proposal to implement Object.observe and plan to remove it from V8 by the end of the year.

While I was never sold on the approach of this API, I assumed long ago it was the API that would be used for data binding to plain old JavaScript objects. I am also surprised because I was discussing the state of Web Components with a member of TC39 just a few weeks ago. While I listed all the parts of Web Components that are in V8/Blink but not elsewhere, including Object.observe, they assured me the other browsers would eventually implement the rest of Web Components. I also missed that Polymer 1.0 abandoned Object.observe.

Oct 27

October jQuery Foundation board meeting

By on October 27, 2015 7:56 am

In mid-October, I attended my first jQuery Foundation boarding meeting. In case you missed the news, we announced in early September that the Dojo Foundation and jQuery Foundation are merging. The primary goal of this open source foundation union is to encourage greater collaboration between open source web projects, and also provide a home for other open source JavaScript and web projects. Our board of eleven members got together in New York City and met for about eight hours to cover a number of topics. It was great to meet a number of people from the board in person for the first time. It was also great to reaffirm how much we have in common, and to learn more about how we can help!