JavaScript Promises – How They Work

JavaScript literally cannot do two things at once—it is single-threaded by design. To operate in the browser, where lots of tasks are going on concurrently at all times, it uses events. All you have to do is register an event handler that will execute when something interesting happens. But the event model, while quick and […]

Plato: A JavaScript Static Analysis Report Generator

I have recently been playing around with plato, a JavaScript static analysis and source code complexity tool. Plato utilizes a node module called complexity-report to generate a report with statistics about various aspects of your source code. The plato Github page contains sample reports for a few notable project repositories: jQuery, Grunt, and Marionette. Each plato report […]

Using ES6 in Node.js

My team recently upgraded our Node version from 0.10 to 4.0 for a big app we are working on. Lots of improvements came in the upgrade, but by far, my favorite is all of the ES6 features now available natively in Node. Just to be clear, Node 4.0 does not exhaustively support ES6. It implements a lot of […]

Script Away Your Annoyances – Glueing Evernote and Omnifocus via JavaScript

OmniFocus has become my personal task tracking tool du jour, and I’ve come to rely on it for a morning reminder of my daily routines. One of those routines is to clear my Evernote inbox–things in that notebook need to be filed away for long-term storage while I can still remember why I put them in the […]

Creating Charts with Rickshaw.js

I was recently introduced to Rickshaw, an open source JavaScript charting framework built on top of D3.js. Rickshaw specializes in creating timeseries graphs. When recently integrating Rickshaw into a project, I ran into a few hurdles that weren’t terribly well documented or explained online. In this post I’ll provide an overview of Rickshaw and go […]

Speeding Up Your JavaScript Test Suite

Having fast tests is important. Slow running tests slow down development, especially if you’re practicing TDD. If tests are too slow to run, some developers may avoid running them altogether. Slow tests will also slow down CI builds, increasing the length of your feedback loop. While it takes more development time, doing maintenance on your […]