Posted on 01.26.14 by Chris |

From Ruby to Haskell, Part 3: Lazy Evaluation

One of the defining characteristics of Haskell— that you often see listed in what sets it apart from other languages— is that it is the only common language that’s lazy. In fact, laziness has been cited as the feature that keeps Haskell functionally pure. This is because if you can’t tell when things are going to be evaluated, you can’t cause side effects (because you don’t know when they’ll happen either).

What is laziness, what does it mean?

Each programming language uses an evaluation strategy to process code. For instance, Ruby is a “pass-by-value strict” language. This means t …continue reading


Posted on 01.16.14 by Chris |

The Migrationless Migration

I've been reading the excellent blog Revision-Zero lately, and just a whole bunch of other relational algebra stuff. If I may impose upon you for a minute, relational algebra is one of those things that, like linear algebra, is a shining intellectual gem. It is at once pretty in its own right but also tremendously practically useful. I strongly suggest that any working programmer should acquaint themselves with it. You should also learn about linear algebra, but that's another article!


In programming we spend a lot of time concerning ourselves with modularity. This quest for modularity …continue reading


Posted on 02.01.13 by Chris |

Styleguide Rails

You might as well learn it now, because you'll be using it in 6 months. Styleguide rails is a cool gem that builds a living, breathing styleguide for your site. You can add it to your project really easily (let's just do it right now):

gem install styleguide_rails

OR edit your Gemfile:

gem 'styleguide_rails'

and then bundle.

Lastly, you install the styleguide into your application:

rails generate styleguide:install

start rails and navigate to http://localhost:3000/styleguide. There should be a built-in _example_elements.html copied into your new app/views/styleguide/widgets/ directory. This is wher …continue reading


Posted on 12.06.12 by Chris |

From Ruby to Haskell, Part 1: Testing

You read that right. Or maybe, if you read it as "stop using Ruby and start using Haskell", you read it wrong. I'm going to show you why I find Haskell to be utterly fascinating and eminently practical.

Foremost, I want to collect some bits and pieces from articles that I have read and talks that I have seen. I feel like there are troves of information out there but that it may perhaps be in need of some synthesis. There are lot of meaty topics here, but I haven't seen them collected and prepared quite to my taste yet. If my collecting will help someone else to "think different" then that' …continue reading