Menu Sidebar


Software Entrepreneurs: Stop looking for itches to scratch

On probably half a dozen different occasions some aspiring entrepreneur has asked me: Would you be interested in a hosted solution for selling screencasts? In most cases, the promised solution never goes beyond talk. In a few cases I’ve been sent invitations to beta test. In all cases, a successful business has failed to materialize, […]

Some universal code optimization rules

From time to time I have advocated for design approaches which value consistency and ease of change over raw operations per second. I realize that this strategy makes some programmers uncomfortable. So I thought I’d document some guidelines for optimizing your code.

Windows and PHP are snowballs. Respect them.

A young developer newly embedded in the enthusiast programmer community could be forgiven for believing certain truths to be self-evident: that most people use Apple computers. That most websites are written in Ruby, NodeJS or Java. That most tech jobs are at Internet app startups. The truth is little different:

Planning for the wrong kind of scale

Recently I wrote at length to my newsletter subscribers about some of the factors that went into my choice to move RubyTapas to a WordPress platform. Here’s a small excerpt from that letter: Programmers love solving problems. The corollary is that we also love making problems. When we’re faced with something which is obviously an old […]

Older Posts

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.