Using Query Parameters in Ember.js

Many web applications use query parameters in one way or another. Query params are great for defining things that don’t make sense as a dynamic segment in the URL. Ember realizes the importance of query params, and it has built a great way to interface with them.

There are three places where you may need to use query parameters in your Ember application: routes, controllers, and templates. Read more on Using Query Parameters in Ember.js…

Testing Asynchronous Behavior with Ember

I’ve found system testing Ember.js applications to be quite enjoyable—the Ember run loop and test helpers make tests deterministic and fast. That is, of course, when your application code lives happily within the confines of the run loop. But what happens when your application generates asynchronous behavior? How do you test that?

Read more on Testing Asynchronous Behavior with Ember…

Tall Trucks, Low Bridges, and iOS Geofences

As my colleague Jeanette and I were walking home from the office a few months back, we came upon an unpleasant-looking accident approaching the bridge west of 1st Street on Washington. This unfortunate truck was too tall for this bridge’s 10’6″ clearance, and as such incurred serious damage. Read more on Tall Trucks, Low Bridges, and iOS Geofences…

Implementing the Elm Architecture in ClojureScript

The Elm architecture is a simple and straight-forward alternative to the common model-view-controller architecture, and it’s well suited to functional programming.

In brief, the Elm architecture uses a data structure to render a UI, the UI fires actions, and actions are used to update the data structure. This is the same sort of uni-directional flow that React.js uses and the one that Ember.js has been gravitating toward in place of two-way data bindings.

Read more on Implementing the Elm Architecture in ClojureScript…

expect()ing the Unexpected

Our tests were crashing. They ran fine individually, but when run as a group, certain tests sometimes failed with a spectacular memory access error.

After experimenting with skipping some of the tests, I was able to narrow it down to tests that ran immediately after some database calls. (This was a mobile project for iOS, and we were using Realm.)

Read more on expect()ing the Unexpected…

Focus-Handling Methods for Qt Quick StackViews

On my current project, we’re building the GUI in Qt 5. It’s (mostly) open-source, has some really intriguing platform support, and Qt Quick 2 has a fairly advanced model for both keyboard focus and transitioning focus between widgets just with the keyboard.

When I started work on a spike to prove out some ideas I had about using a Qt Quick StackView to structure the navigation of our app, I still managed to run into some problems with transitioning focus between widgets. Read on for my solution. Read more on Focus-Handling Methods for Qt Quick StackViews…

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 test suite to ensure it continues to run quickly is an important task that any significant project should prioritize. Read more on Speeding Up Your JavaScript Test Suite…