Skip to main content


Showing posts from December, 2010

Apple: Ouch!

I had my laptop wrapped in a blanket in my backpack when I dropped it on concrete at BART yesterday. It landed on the corner with quite a lot of force and bent a few metal pieces. Everything seems to work, with the exception of the ethernet port. Thankfully, I rarely use that. I'm hoping this is covered by the warranty, although it seems unlikely. The bent aluminum reminds me of body damage on a car.

Vim: PeepCode Videos

There are commercial videos on PeepCode that show how to use Vim. They're fantastic! The production quality is very high, so they're worth paying for. I bought both of them, and I learned quite a lot. Even the first one covered a ton of advanced stuff, so I highly recommend it.

If you're just getting started with Vim, I suggest you:Read this blog post from Yehuda Katz. Basically, he suggests you use the GUI to get started and iteratively gain more experience with Vim. I think that's good advice.Next, I suggest you fire up Vim and take the internal tutorial.Last of all, watch Smash into Vim part I.If you're an advanced Vim user, watch both videos and tell me what your favorite part was ;)

JavaScript: IE and DTDs

I was having a hard time getting Internet Explorer 8 (IE8) working with Socket.IO's "htmlfile" transport (or any other transport for that matter). I was getting weird permissions issues. I finally fixed the problem by adding a DTD to the top of my HTML file, "<!doctype html>". I was just being lazy not having a DTD, but I was really surprised when that fixed my problem. Of course, I'm still having a hard time getting IE7, IE6, and Opera working cross-domain (technically, I'm just using a different port, but eventually it'll truly be cross-domain).

Ruby: Why I Prefer Cucumber

I've been struggling to articulate why, in most cases, I prefer high-level integration tests with Cucumber and Webrat (or Capybara) over low-level model, view, and controller tests with RSpec. I think I finally have an example that conveys what I'm trying to say. Consider the following Cucumber test:Scenario: create a new film unsuccessfully
Given I am logged in as "admin"
And I am on the admin films page

When I follow "New film"
And I press "Create"
Then I should see "There were problems with the following fields:"
And I should see "Name can't be blank"
And I should see "Url name can't be blank"
And I should see "Sort name can't be blank"
And I should see "URL doesn't look like a valid RTMPE URL"
But I should not see "Trailer URL doesn't look like a valid RTMPE URL"
And I should not see "Scene URL doesn't look like a valid RTMPE URL"This tes…