A Lazy Sequence

articles about programming

ANN: Color.js 1.0

30 April 2013

color.js, my color management library for JavaScript, has hit 1.0.

Duck-Wrapping

14 April 2013

If it doesn't quack like a duck, wrap it in a duck. Or don't.

Templates are Functions

21 October 2012

An article that looks at templates in web development in the context of pure functions and functional programming.

Knife Sharpening

04 March 2012

A professional knows when to sharpen their tools.

CoffeeScript Comprehensions Are Broken

12 September 2011

An examination of List Comprehensions in several languages, how Coffeescript's ‘comprehension’ semantics differ from the common case, and limitations that arise.

A Brief Overview of the Clojure Web Stack

01 June 2011

Ring is the foundation of web programming in Clojure. It has a broad ecosystem of libraries that fullfil many different roles in the web stack. This article introduces the fundamental concepts of Ring as well as four major libraries, and explains common idioms to help you get started quickly.

Parsers Generating Parsers

07 February 2011

Following my introduction to fnparse, this article looks at how more common functional programming tools can be leveraged to make parsers that output new parsers.

Start Parsing in Clojure: fnparse

07 February 2011

Parser combinators are a powerful way of expressing complex parsers as first class operations in a language with first class functions. This tutorial introduces one such library, fnparse, for Clojure.

Monads: redux

14 February 2010

Thoughts on the appropriateness of monads in Clojure.

Ghosts in the Machine

11 February 2010

Following on from looking at state monads in the context of Clojure, this article looks at variations that add different forms of state-m of non-determinism.

Welcome to the Machine

09 February 2010

A close look at how the state monad is implemented and used in Clojure.

On iteration

04 February 2010

How Python's view of iteration lead me to Clojure.