Latest Articles

I Hope I Die of Cancer

Or at least, when I die I hope it’s something they see a few months or years in advance. The doctors should give me, say, six months to live.

For that six months, I will walk around with ten-foot-high letters of fire behind my eyeballs that say,

“I could spend this five minutes talking to you. Or...

Bodybuilder Bodhisattva

There are a lot of skills that you just have to learn by doing. I call them “bodybuilder skills.” You can’t get around the practice by being smart, even if they seem to be skills of mind.

Like weightlifting, everybody starts at zero and has to work to get better than that.

When people ask clever...

Rack and Session Store

A fellow asked me how he could store information per-user in Rack. This was my (brief) response:


Generally with the cookies object. Specifically, Rack has a “session”, which encodes a session identity into the cookies object, usually with some or all of your data.

You can also map from the session...

Free and Cheap Rails Training

On a local meetup list, somebody asked about cheap ways to learn Ruby on Rails stuff at a university’s level of quality.

My response:

You’ll see a lot of private (i.e. non-university, often offered by individuals) training. “University-level” is always arguable – what university do you mean? And...

Could Not Fetch Specs From https://rubygems.org/

Are you getting this error from Bundler?

Short version: if using rvm, do this: rvm pkg install openssl rvm reinstall all –force –with-openssl-dir=$rvm_path/usr"

Want to know what went wrong?

You could edit the live copy of lib/bundler/fetcher.rb to print out the exception – and when you...

No More Requires

I hate all the “requires” at the front of Ruby files. I know what methods I’m using, but I have to write it in both places. Not exactly DRY. Rails skips them — you just use the classes you want. How can I automatically load my files like Rails does? Read on.

Ruby has method_missing. When you call...

Subscribe to get free ebook chapters and an emailed coding class now, plus videos and articles a few times a month.

Why this specific newsletter? You want to be an expert. Expertise comes from learning the fundamentals, deeply. And that comes from the best kind of practice. I write with that in mind. I won't waste your time.

(Yes, I also sell things. They're good, but I'm fine if you don't buy them.)