Undoing and redoing changes to Emacs window layouts (Emacs Reboot #17)

It’s frustrating when you have your buffers laid out just so, and then some command messes them up. In this episode I enable winner-mode, which keeps a ring buffer of window configurations so you can undo and redo changes to … Continue reading

Posted in Emacs Reboot | Tagged | 3 Comments

The sorry state of video hosting for WordPress blogs

Either I’m missing something, or there is a huge hole in the video hosting ecosystem waiting to be filled. I want a video hosting service with the following features: I can upload a video in any common format and it … Continue reading

Posted in Videos | 7 Comments

Emacs Reboot #16: Windmove

emacs-windmove

Emacs makes it very easy to split your workspace into panes of arbitrary size and shape. But out of the box it doesn’t make navigating the panes with only the keyboard very convenient. In this quick screencast I enable “windmove”, … Continue reading

Posted in Emacs Reboot | Tagged , | Leave a comment

Back in business

An update on the site intrusion which took out this blog for several days, and the steps I’ve taken to repair the damage and prevent future attacks. Continue reading

Posted in Announcements | Tagged , , | 10 Comments

Travel tips needed

So in a month’s time I’m headed to Wroclaw, Poland for wroc_love.rb. This is the first time I’ve traveled overseas in almost two decades, so anything I ever knew about international travel I’ve forgotten. (Canada doesn’t really count as international … Continue reading

Posted in Conferences | 12 Comments

Editing Directory Trees in Emacs

In which I demonstrate how to use Emacs to edit a directory tree just like you’d edit an ordinary file. Continue reading

Posted in Screencasts | Tagged , , , | 4 Comments

On Module Integrity

A reply to Josh Cheek’s post “Modules called, they want their integrity back”. Continue reading

Posted in Ruby | Tagged | 3 Comments

Ruby Thread Locals are also Fiber-Local

I was briefly concerned that thread-local variables would not also be Fiber-local, since fibers have their own stack. This would be a problem for any code which uses thread-local variables to delimit a stack context, e.g. to implement dynamically-scoped variables … Continue reading

Posted in Ruby | Tagged , , , | 4 Comments

Preventing Recursion in Ruby

A new post on the CodeBenders blog about how to prevent a method from accidentally falling into an infinite recursion. Continue reading

Posted in Ruby | Tagged , , , | Leave a comment

Decoration is best, except when it isn’t

I think by now we all know to prefer composition over inheritance. But in a language with a lot of options, what’s the best kind of composition to use? Composing an adventure Consider an adventure game, with objects representing player … Continue reading

Posted in Ruby | Tagged , , | 10 Comments