Patch to make Ubuntu’s GNU Screen bash completion work better

1 02 2012

If you make a screen with a name using screen -S foo and then try and reattach later using screen -R f<tab> it doesn’t work. It only completes the full name as seen in screen -ls which starts with the PID of the detached screen, like 9972.foo. Not very convenient. Why can’t it just complete using the name you gave it?

Someone else solved this problem three years ago but nobody accepted their patch, and now /etc/bash_completion.d/screen has been overhauled and the patch no longer applies.

I updated the patch so it works and resubmitted it to Ubuntu.

If you don’t wanna wait, grab the code from this gist and do this:

sudo patch /etc/bash_completion.d/screen screen.patch

This will probably work on Debian too since that’s where the completion script came from.



On Ruby’s Expressiveness- The Littlest Microframework Explained

27 03 2011

In the past few weeks, I’ve had a few conversations with web developers and back-end engineers who are unfamiliar with Ruby, in which I’ve tried to explain how Ruby can be nearly as expressive as Perl (tiny amounts of code can accomplish a lot) while being as readable as Python or Java. In fact, I think that Ruby’s expressiveness can remove distracting boilerplate code, allowing compact expressions to be far more readable than a more verbosely written version of the same algorithm.
Read the rest of this entry »



The Princess and the Pea, as a Cucumber Feature

1 06 2010

Kent Beck tweeted:

User story: “As a princess I want to confirm my royalty so I get bruised after sleeping on 40 mattresses over a pea”. Just tell real stories”

That sounded so much like a Cucumber feature that I decided to write it as one:

Feature: Physical Sensitivity
  In order to confirm my royalty
  As a princess
  I want to be very delicate

  Scenario: 40 mattresses on a pea
  Given there is a pea on the bed
  And there is a stack of 20 mattresses on the pea
  And there is a stack of 20 featherbeds on the mattresses
  When I try to sleep on top of the stack of featherbeds
  Then I should not be able to sleep


Unix tip: kill -STOP and kill -CONT

3 04 2010

Pretty much every Unix user knows about the kill command, and most know about ‘kill -KILL’ aka ‘kill -9′.

But do you know about kill -STOP and kill -CONT?
Read the rest of this entry »



Rails Migration Antipatterns and How To Fix Them

18 03 2010

Migrations are one of the best features of Rails. Although some folks prefer pure SQL rather than Rails migration DSL, I don’t know of anyone who dislikes the idea of a versioned schema that can evolve in a controlled and repeatable fashion.

But because the concept of database migrations is such a powerful one, it’s tempting to jam any old change that affects the database into a new migration and run rake db:migrate to make it happen. I’ve been guilty of a bit of this in the past, and I’ve joined some projects that did other ugly things in migrations. In the process I’ve learned the hard way that there are some things you must never do in a migration or they will come back to haunt you later. Here they are.
Read the rest of this entry »