Making Bundler 1.0.0.beta.10 install Nokogiri on Leopard with a newish libxml

25 07 2010

Okay, now that Bundler 1.0.0.beta.10 is out, you can once again pass build-time options to gems with native extensions, such as Nokogiri. So this supercedes my older instructions for making Bundler 0.8.5 install Nokogiri on Leopard.

So now instead of making a YAML file and referring to it, pass the options like this:

bundle config build.nokogiri \
--with-xml2-include=/usr/local/include/libxml2 \
--with-xml2-lib=/usr/local/lib


Fix for MacBook Pro sudden USB and Ethernet port failures

24 07 2010

I own a 2.16GHz MacBook Pro, which is a little over 3 years old. Over the last year I’ve had an odd problem with it, which has gotten severe in the last few weeks. The problem was that it would suddenly disable the Ethernet port and the USB ports, disconnecting mounted disks and freezing networked services. The only workaround was to reboot or sleep/wake. I finally found the cause and fixed it last week. My guess is that pretty much all MacBook Pros of similar age and design will develop this problem, so read on if you have a similar issue.
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 »



How to make Machinist and Autotest coexist

23 03 2010

If you’ve tried to use Machinist and autotest (part of ZenTest) you have probably seen this exception that prevented you from using it:

`method_missing': No sham defined for name

It’s discussed in the machinist Google Group as well.

It’s because of a wacky hack that’s part of Machinist that overrides Module.name so you can do Sham.name, but ZenTest expects Module.name to do what it does normally.

I have a fix for this.
Read the rest of this entry »