Featured Articles

Strong Typing With AngularJS

on 26 Aug 2014

This article demonstrates a successful integration of TypeScript with AngularJS to provide a strongly-typed environment for development of HTML5 apps.

An OHLC Chart Component for D3

on 19 Aug 2014

An open-high-low-close chart is a type of financial chart used to show price movements in a financial instrument over time. In this post, we'll make a reusable D3 component for an OHLC chart series.

Functional Reactive Programming with Bacon.js and D3

on 23 Jul 2014

Reactive programming is a paradigm which allows you to better represent a work flow where changes in one part of your data model propagate down to other parts of the model. This blog post demonstrates an example of this, by listening for updates to Wikipedia and reacting accordingly.

A Statistical Comparison of the iOS and Android Stores

on 10 Jul 2014

A few months ago I published a blog post which showed the results of analysing the meta-data of 75,000 apps from the iTunes App Store. This blog post continues the analysis by adding 60,000 Android apps into the mix.

Schools of Testing

on 07 Jul 2014

Which school, which certificate? It’s a minefield for testers. Are any certifications worthwhile?

Swift Sequences and Lazy Evaluation

on 26 Jun 2014

In this blog post I want to take a quick look at the Swift Sequence protocol, which forms the basis for the for-in loop, and see how this allows you to write code that performs sequence operations that are only evaluated on-demand.

Latest Articles

An interactive crosshairs component for D3

by Andy Aiken, on 29 Sep 2014 Andy Aiken

In my last article I put together an interactive chart that could be panned and zoomed, but there was one obvious omission - crosshairs. In this article I'm going to create a D3 crosshairs component, and show you how to add it to a chart.

Swift and the curious case of AnyObject

by Colin Eberhardt, on 24 Sep 2014 Colin Eberhardt

Swift, as I am sure you are aware, is quite a strict, safe and strongly-typed language. However, because the language needs to maintain Objective-C compatibility it has some rather curious features, and the behaviour of `AnyObject` is one of them!

Functional Swift and Memoization

by Colin Eberhardt, on 22 Sep 2014 Colin Eberhardt

This post is a continuation of my previous which looked at implementing Conway’s Game of Life using functional techniques. Here I look at how memoization can be used to cache the return value of a function in order to improve performance.