Menu Sidebar

Avdi Grimm

Hacker; code documentarian.

2015-06-04 09.51.25-1

How a keyboard changed what I look for in an editor

Lately I do the bulk of my coding on a Kinesis Advantage keyboard. Increasingly I’m also making use of the optional 3-switch foot pedal. It’s been interesting watching the effect this has on my priorities for editor keybindings.

Every keypress or key-chord has an opportunity cost associated with it. Some are higher than others. Most traditional hacker-oriented tools make certain assumptions about these opportunity costs.

For instance, most tools assume that the opportunity cost for using arrow keys for navigation is extremely high. This is based on the fact that historically, Unix terminals often didn’t even possess arrow keys, making their opportunity cost effectively infinite. And even on modern keyboards, they are off in a little remote island, forcing the user to relocate a hand away from the home row and then back, even for the smallest cursor motion.

Read More

Benchmarking Ruby Dispatch Strategies

Let’s say we’re dispatching events to listener objects. Events look like this:

Event =, :source, :args)

Events should be routed to different handler methods based on the name of the event. For instance, when an object is sent the #call message with an :accepted event:[:accepted, obj])

Read More

RubyTapas Freebie: Sequel

Today on Ruby Rogues we spoke to Jeremy Evans, the prolific Open Source maintainer of the Sequel gem and creator of the Roda web framework. (The episode will drop next Wednesday). It was a terrific conversation, and it reminded me that a while back I did a RubyTapas video about on the subject of Sequel. I’d love for more Ruby programmers to be aware of this wonderful gem, so I thought I’d free up the video for anyone to watch.


If you prefer reading to watching, the episode script is below the cut:

Read More

Newer Posts
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.