Using State Tables for Testing

Tests can benefit a project in many different ways. For example, they help ensure that the software behaves as expected. They also help document that functionality for pieces of code that other developers may have to maintain. Lately, I’ve been using state tables in my tests to improve both of these benefits. State tables allow for […]

An Immutable Asynchronous State Holder in C#

Managing state in a clean way is probably one of the most challenging aspects of many software projects. When using asynchronous programming technologies such as .NET’s async/await functionality or the Reactive Observable pattern, the problem of state management is exacerbated and often becomes a source of errors. In several projects that I have worked on […]

Effortless Abstraction with Ember.js

Ember.js has gotten a lot of attention recently for being confusing or hard to get started with. I’ll definitely admit that getting started with Ember took more than its fair share of code-reading, as the guides and documentation didn’t provide enough detail for building real-world apps, but for the most part, I’ve been amazed at […]

What I Learned on the Way to Clojure

Recently I had my first experience writing Clojure for a real world desktop application. Previous to this experience I had only written a handful of scripts and read a couple of books (Programming Clojure and The Joy of Clojure). One of the challenges I faced writing Clojure in a complex desktop application versus contrived exercises […]

State in Web Applications

The prevailing strategy of writing web applications is to write server-side code that renders the interface in full. Dynamic interaction, when needed, is achieved by playing tricks with the DOM using frameworks like jQuery or Backbone, but the majority of interactions happen via following links and receiving pages from the server. I’ll call this the […]