Chris Price

I spend my days developing desktop/tablet/mobile web apps for financial services companies. Unfortunately, most of those are hidden behind pay-walls, but I do like to blog about it. I also contribute to a number of open source projects including PropertyCross, KnockoutJS, TodoMVC and more.


Improving D3 Performance by Embracing the Flux

on 02 Nov 2015

While d3fc (a toolkit of charting components built in the d3 style) embraces the philosophy of simplicity over performance, there’s no point in creating a chart with lousy performance. In this post I’ll run through some of the tips and tricks for squeezing the best performance out of d3fc...

An Adventure in SVG Filter Land

on 06 Aug 2015

I’ve been working on an open-source charting library called d3fc. And following Colin’s lead, was looking for a creative example to replicate: I think I found it… Once upon a time The story starts with Coinbase, a well-known(/funded)...

OAUTH2 Authentication with ADFS 3.0

on 09 Mar 2015

A quick run through of the steps involved in integrating a Node.js client with Active Directory Federation Services for authentication using OAUTH2. I recently had the dubious pleasure of proving the feasibility of authenticating apps against ADFS using its OAUTH2 endpoints. In short, whilst it is possible to securely prove...

ELK - 3 things I wish I'd known

on 19 Dec 2014

I’ve recently completed an ELK (Elasticsearch, Logstash & Kibana) real-time log processing implementation for an HTML5 FX trading platform. Along the way I’ve learnt a few things I wish I’d known beforehand. This post shares some more details of the project and hopefully some time saving tips. ELK

Arrow functions in Knockout.js

on 28 Feb 2014

Recently, Knockout’s original author Steve Sanderson released a plugin called knockout-projections which optimises the performance of the observable array methods filter and map. In this post, I’ll take a peek into the future by combining this plugin with the forthcoming ES6 arrow functions to produce some very terse and...

Knockout.js + Node.js = What.js?

on 08 Mar 2013

Recently I contributed a change to Knockout which allows it to run without hacks in a non-browser JavaScript environment. My original intention was to allow Knockout.js to be used with Titanium for the...

Jekyll - A Developer's Wordpress?

on 17 Dec 2012

Outrageous pun intentionally… hyde-n… We’re very soon to launch a site documenting an open source project we’ve been hard at work producing. As the project is hosted on github, we’ll be making use of the Github Pages hosting feature which itself is built on top of Jekyll. As all...

JSConf EU 2012

on 12 Oct 2012

Hot on the heels of Reject.js was JSConf EU, a weekend conference about, well, JavaScript! It was my first time there so I was a little unsure what to expect, I was absolutely...


on 10 Oct 2012

Last Thursday I headed to Berlin for Reject.js, a community JavaScript conference organised to coincide with I was very impressed by the professionalism with which the event was run, which in turn...

Converting an HTML5 App to a Native App with Titanium

on 01 Oct 2012

In this post Colin Eberhardt's Property Finder app gets another outing, but this time with a native twist. Titanium is a popular open-source framework for building multi-platform native apps in JavaScript. Here I've...

Just what is the CSS 3D perspective property?

on 19 Sep 2012

Most of us have had a play with CSS3 3D transforms, stacked a few elements, rotated them, maybe even made a cube out of them. And somewhere along the way, you'll probably have...

Making the most out of JavaScript Intellisense in VS2012

on 18 Sep 2012

Intellisense for JavaScript has always felt to me like an unfinished addition to Visual Studio, something that promises so much but doesn't deliver for larger projects. Manually adding and then maintaining another set of dependency references just for Intellisense has just never seemed worth it. However, with the launch...


on 08 Aug 2012

Captured webcam frames arranged in a 3D rotate-able cube for your viewing pleasure. A simple tech demo trying out the new getUserMedia API in Chrome 21, with some 3D transforms and canvas based...

Using PhoneGap Build with Maven

on 29 Jun 2012

This post introduces a Maven plugin for easily building native PhoneGap apps for iOS, Android, WP7 (and more) from any WAR project, in any environment. It assumes that you are familiar with using...

Moving to the Web 2: Dark Territory

on 17 Apr 2012

This series of posts (part 1) are attempting to do the impossible, to try and give desktop developers a brief introduction to developing on the web. I say impossible because the web...

Explodz - A Webkit DOM Visualizer

on 09 Mar 2012

A little while ago Colin showed me a tool for inspecting the visual tree of a Silverlight/WPF application (Snoop thanks Colin!). The bit I remember was a 3D view of the app, where an...

Does delete walk the prototype chain?

on 06 Mar 2012

This is a quick post relating to a Rhino bug I've just fallen foul of. This probably isn't very interesting for most folk, but if you've come here from Google then hopefully I can help...

Moving to the Web

on 02 Mar 2012

This post is an attempt to do the impossible, to try and give desktop developers a brief introduction to developing on the web. I say impossible because the web is such a vast topic. On...

A TodoMVC Closure Example

on 17 Feb 2012

I recently had a need to create a demonstration application showcasing some of the features of the Closure toolkit. Whilst I was trying to think of a suitable example to implement, I remembered coming across a project called TodoMVC. TodoMVC is a GitHub project which aims to re-create the...

Movember Themed Bookmarklet

on 24 Nov 2011

I recently came across the service. Inspired by Movember, I just had to spread the mo-ssage. One bookmarklet later, I can now man-up any page* I deem appropriate. I've picked some likely stooges from Scott Logic for you to test the link out on....

Full Frontal Conference 2011

on 15 Nov 2011

Last Friday I headed down to Brighton for the annual Full Frontal conference. It was my first time there and I'm very glad I made the trip. The quality and breadth of the talks given far exceeded my expectations. Thanks to Remy Sharp for his organisational and timekeeping skills, and...

Dart - a few wildly speculative thoughts

on 13 Sep 2011

Colin's post on Dart and the other fallout from Google's announcement across the web sparked a few thoughts in my mind, so I thought I'd share them. Firstly I think it's important to point out how much of what is currently being said is speculative. Most people's opinions...

Bezier demo

on 23 Aug 2011

I was reading over one of the tutorials over at (if you haven't had a look through them before I'd thoroughly recommend it!) and came across an article by Ilmari Heikkinen on creating a "kiosk-mode" for (another thoroughly recommended site!). The article itself was...

Scott Logic Newcastle Grand Prix

on 09 Aug 2011

Last Thursday night saw a tense battle for the podium at the inaugural Scott Logic Newcastle grand prix. The race was held south of the river at Karting North East in Sunderland, but most people didn't let that, or the afternoon of torrential rain put them off!

What is this?!

on 05 May 2010

This post discusses the this keyword, what it represents, how it can catch you out and how to avoid those problems. It also introduces the functions call and apply from the Function prototype. Let's start with a definition - The value of this is determined at the point at...