Menu Sidebar


A case study on civility and constructive criticism

The other day Gregory Brown posted a remarkable story on Parley. He told how he had given Robert “Uncle Bob” Martin some heated Twitter criticism about one of his recent articles. But then, instead of allowing the discussion to spiral into un-constructive sniping, he engaged Robert privately. Together, they¬†found some common ground and mutual respect, […]

I’m sorry too.

I didn’t say mean things about Heather Arthur’s code. But I could have. I didn’t see the tweets about her “replace” project that started things off. But I do share the opinion of a number of my colleagues that using a reactor-based framework in a language lacking native fibers, coroutines, continuations, or threads leads to […]

I am my code

Almost five years ago I released my first Rubygem, NullDB. It was based on ideas from a couple of other libraries, namely ARBS and UnitRecord. In the README I said: It differs from them in a couple of ways: It works. At the time of writing both ARBS and UnitRecord were not working for me […]

Virtuous Code

"The three virtues of a programmer: laziness, impatience, and hubris" — Larry Wall

Books and Screencasts

RubyTapas Screencasts

RubyTapas Screencasts

Small plates of gourmet Ruby code.

Confident Ruby

Confident Ruby cover

32 Patterns for joyful coding.

The Making of

Confident Ruby cover

Watch me build an app in Sinatra and Rails

Objects on Rails

Objects on Rails

A developer notebook on applying classic Object-Oriented principles to Ruby on Rails projects.

Exceptional Ruby

Exceptional Ruby

The definitive guide to exceptions and failure handling in Ruby.