Fri Jan 01 16:16:00 +0000 2010
Thoughtbot Ruby Survey 2009
I wasn't hugely into the Thoughtbot 2009 Survey, because (and as they noted), the questions were very poorly constructed:
There are questions that are too narrow or too broad. There are questions that are missing options. There are questions that assume too much about an “either/or” scenario, when people really behave differently depending on context. There are questions which insult people’s core beliefs, I guess. Fortunately for all of us, the results of this survey aren’t being used to decide anything too important.
However, I'm still not sure they get it:
Maybe most encouragingly, when asked about whether the types of questions in the survey mattered or were a huge waste of time, nearly 90% chose the “I think it’s worth caring about your craft, and these questions are professionally relevant” option.
Here are the choices people were given in the survey:
- I think it's worth caring about your craft, and these questions are professionally relevant.
- This is a huge waste of time, you guys are a bunch of psychos, just get back to coding.
- It sure is, and I'm not capable of or willing to work on a team with anyone who disagrees with my correct answers.
Obviously people want to agree with
I think it's worth caring about your craft
but in doing so, we are also saddled with agreement to
these questions are professionally relevant
The fact that lots of people did choose answer one unfortunately doesn't support whether or not the questions were a "huge waste of time" or not. Any to be fair, even if the questions are relevant, the available answers were not. This means that any data derived from this survey is fundamentally worthless. It's a shame, really, but that's the truth of it.
I'm not taking this seriously - it would be crazy to, naturally, and clearly it's been composed with humour and good intentions. That said I can't help feeling it's a bad omen. Despite it's lack of rigor, we are presented with some conclusions - for example:
A solid 75% of people always use parentheses on method definition — maybe enough to justify criticizing people who don’t?
There is value in consistency, and this does apply to a community's behaviours as well as those of a team, or indeed of an individual, but consistency is only secondary to consideration. Blindly criticising behaviour because it doesn't match a poorly-derived norm feels sufficiently similar to our earlier readiness to declare things as evil without much research or understanding to make me take notice.
The most important sentence in this whole thing is
the results of this survey aren’t being used to decide anything too important.
Lets make sure that's true. Trying to define best practices using only the results of the Thoughtbot 2009 Survey would be a sad step back in the direction of cargo-culting.
If the Ruby community is trying to more clearly define itself and reach an adulthood of sorts, perhaps we should stop paying attention to these effectively-meaningless yes-me-too manifestos and start actually changing the way real people experience our work.
Thu Sep 10 13:57:03 +0000 2009
Wake Remote Machine Automator Action
I've whipped up a nice Automator action for waking a remote machine, which works great with the new 'wake over wireless lan' feature in Snow Leopard.
While you need an Airport-type router to get the most of the feature, there's nothing stopping you sending the magical 'wake up' signal from any other computer.
Here's a screenshot of how you might want to try and use it in a workflow:

Download the Wake Machine action here, and the source is on github.
It may only work if you are on the same network, depending on how you are set up, but regardless, it's great to be able to wake up my Mac mini from my laptop, automatically, and whenever I want.
Mon Sep 07 20:28:29 +0000 2009
FreeAgent Widget Update
(another update: fixed some broken timer resetting behaviour, please grab 1.3.1 if you haven't already)
Just a quick note to say that I've updated the widget to 1.3.1 - download it here.
The most notable new feature is that it will preserve unposted time across restarts (or crashes), so if you restart while working, you won't lose track of how long you've been working for. Honestly, this has bitten me so many times.
See the original announcement for more details, and the source is always available on github. As before, if you have any problems, get in touch via github issues.
Also please note that you'll need API access turned on; for more details see the recent post on FreeAgent Central.
More at the blog...
