Featured Articles

Swift Initialization and the Pain of Optionals

on 20 Nov 2014

Swift's strict initialisation process results in a number of practical issues, leaving developers scratching their heads. This post explores a few solutions including two-phase initialisation, the use of optionals and lazy properties.

A Fibonacci fan component for D3

on 31 Oct 2014

In this article I'm going to create an interactive Fibonacci fan D3 component, and show you how to add it to a chart in just 6 lines of code.

An interactive crosshairs component for D3

on 29 Sep 2014

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.

Functional Swift and Memoization

on 22 Sep 2014

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.

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.

Latest Articles

Making a RTL plugin in less

by Luke Page, on 19 Feb 2015 Luke Page

I mentioned in the previous post that I would create a plugin for less which converted from LTR to RTL. Here is a tutorial post on creating that plugin. Setting the project up I know we want to modify the AST (abstract syntax tree), so we will need a...

RTL Support in Web Applications

by Luke Page, on 13 Feb 2015 Luke Page

Some languages of the world (Arabic, Hebrew etc.) are RTL, meaning they are read right-to-left, instead of left-to-right. Typically in web applications supporting one of these languages, everything is reversed, meaning scroll bars, progress indicators, buttons etc. I recently took part in a discussion with the jQuery UI team...

Exploring KVO alternatives with Swift

by Colin Eberhardt, on 11 Feb 2015 Colin Eberhardt

Swift has access to all of the Objective-C APIs, which means that anything you could do with Objective-C you can now do with Swift. However, there are times when it is worth exploring a better, pure-Swift, alternative. This post explores the pros and cons of KVO versus a couple of Swift alternatives.

Implementing Events in Swift

by Colin Eberhardt, on 05 Feb 2015 Colin Eberhardt

Swift does not have a built in eventing mechanism. This post explores a few different ways events can be implemented in Swift and how to avoid problems of retain cycles and closure reference equality.

SVG layout with Flexbox for simpler D3 charts

by Colin Eberhardt, on 02 Feb 2015 Colin Eberhardt

This blog looks at how CSS flexbox layout can be applied to SVG in order to simplify the task of constructing charts with D3. This approach has been made possible by the JavaScript flexbox implementation that Facebook recently open sourced to support ReactJS Native.