Menu Sidebar


FigLeaf Gem Now Available

One of the points I try to make in Objects on Rails is that you don’t need to let other libraries or frameworks dictate the public face of your objects. Just because you use ActiveRecord, for instance, to persist the state of an object doesn’t mean you have to commit that object to honoring the […]

NoneSuch: The Greatest Ruby Gem EVAR

I am very proud to announce a brand new, incredibly cool Ruby gem: NoneSuch. Here’s a short video to introduce it. UPDATE: Got a NoneSuch success story? A¬†disastrous¬†failure story? Enter the contest and win a ticket to Day Camp 4 Developers 2! Like this video? Like Ruby? I’m writing an eBook about exceptions and failure […]

[ANN] fail-fast 1.0.0 Released

Number two out of three in my weekend releasing spree, I’m happy to announce the availability of “FailFast”: v.1.0.0. h2. Description FailFast is a collection of assertion methods intended for lightweight contract checking. h2. Installing sudo gem install fail-fast h2. Synopsis def try yield rescue FailFast::AssertionFailureError “” end include FailFast::Assertions try { assert(true) } # […]

[ANN] alter-ego 1.0.0 Released

Today I’m happy to announce the release of AlterEgo, a state-pattern library for Ruby. AlterEgo was born about a year ago, when I found a need to formalize state-based behavior in Ruby objects. I surveyed the existing libraries at the time (a set which, IIRC, consisted of just acts_as_state_machine), and found they didn’t do quite […]

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.