Reclaiming the Windows 8 Desktop

October 26, 2012

Updated: 2013-02-05
Updated: 2013-01-21
Published: 2012-10-28

Window 8 has a touch-screen user interface designed for media consumption on small-screen devices (phones and tablets) — the default Metro user interface is unusable for content creation tasks on desktop PCs. If you are new to Windows 8 and you plan to use it on a desktop PC with existing desktop applications you will find the out-of-the-box experience miserably frustrating. This article will help you transform your Windows 8 desktop into a sane Windows 7 style desktop.

Read the rest of this entry »

Blogger Backend for AsciiDoc

September 11, 2012

Published: 2012-09-11

The AsciiDoc backend plugin for Google’s Blogger blog hosting service is hosted on Github, it generates Blogger friendly HTML markup from AsciiDoc source.

Read the rest of this entry »

Bash completion for Jake files

June 17, 2012

Published: 2012-06-18

To implement bash(1) tab completion for Jakefile task names all you need to do is add this completion function and command to your ~/.bashrc file:

See also my previous post Bash completion for cake files.

Read the rest of this entry »

TypesScript and CoffeeScript ports of the Meteor Leaderboard

April 22, 2012

Published: 2012-04-23
Updated: 2012-04-29
Updated: 2012-11-05

I added a TypeScript port and login authenication — changes that made the original post out of date.

Read the rest of this entry »

Bash completion for cake files

November 1, 2011

Updated: 2012-08-19
Updated: 2012-06-18
Updated: 2012-04-06
Published: 2011-11-01

To implement bash(1) tab completion for Cakefile task names all you need to do is add this completion function and command to your ~/.bashrc file:

Read the rest of this entry »

Testing CoffeeScript apps with Selenium

October 25, 2011

Published: 2011-10-25

This blog entry describes how to write functional tests for CoffeeScript web apps using Selenium. By way of example I’ll describe how I added Selenium tests to the Routeless Backbone Contacts tutorial app and automated it’s execution with a Cakefile.

Read the rest of this entry »

Compiling CoffeeScript with Vim

October 20, 2011

Published: 2011-10-20
Updated: 2012-04-24
Updated: 2012-06-19

You can configure Vim to automatically compile CoffeeScript files when you save them from within Vim, it’s easy, just add an autocmd to run the CoffeeScript compiler to your ~/.vimrc file:

Read the rest of this entry »

Getters and Setters for Backbone Model attributes

October 16, 2011

Published: 2011-10-16

The Backbone.js Model class provides get and set methods to read and write Model attributes which is not a concise or natural as object property access. But it’s not difficult to add a class method to generate Model getter/setter properties so that you can do this in CoffeeScript: = 'Joe Bloggs'
ph =

instead of this:

person.set {name: 'Joe Bloggs'}
ph = person.get 'name'

Read the rest of this entry »

Routeless Backbone Contacts 2.0

October 2, 2011

Published: 2011-10-03
Updated: 2011-10-25

This post describes a revamped version 2.0 of my original Routeless Backbone Contacts application. The material covered here builds on the original post.

  1. The basic application functionality and the underlying data remains the same.
  2. The new user interface is a single two-pane page with a selectable list of contacts on the left and contact details on the right.
  3. A Search box has been added to incrementally filter the list of displayed contacts.
  4. The application is 100% event driven — there is no direct coupling between the views. Backbone.js events emitted by the underlying contact data collection ensure the views are updated automatically when the state of the underlying data changes.

Read the rest of this entry »

Routeless Backbone Contacts

September 22, 2011

Published: 2011-09-24
Updated: 2011-10-03

You don’t need a URL router to write client-side applications.

Routeless Backbone.js Contacts is a totally client-side CRUD tutorial application written using CoffeeScript, Stylus, Backbone.js and jQuery which are a perfect match for writing concise, readable well structured web applications.

  • The source is on Github.


    This release described in this post is at the 1.0 tag.
  • Uses DOM events exclusively for UI navigation.
  • The contacts data is persisted locally using browser Web Storage.
  • Templates are written using Underscore.js templates (included with Backbone.js).


A second version of this tutorial application [has been posted], it builds on the material covered in this post.

Read the rest of this entry »