Matthew Bass

Musings on software and life…

February 26th, 2010

Hinkey Federal .40 S&W round

Hinkey RoundI was enjoying an IDPA match at the Durham County Wildlife Club this past Tuesday evening and, aside from it being pretty cold, I had a great time. Except at the end of the fourth stage.

I was almost through my first mag when I experienced a failure-to-fire. The round had fed properly and the slide appeared to be fully closed, but all I got when I squeezed the trigger on my Glock 23 was… nothing. No click. Just… nothing. I racked the slide again to eject the unfired round and I was able to finish the stage, but it cost me at least 2 seconds, perhaps more.

After retrieving my ejected round, I noticed it looked a bit odd. Comparing it to another round, I discovered the rear of the case hadn’t been trimmed properly. It was a few millimeters too long, as you can clearly see in the photo I’ve posted here. My guess is that it prevented the slide from fully engaging. This is the first time I’ve seen anything like this, and talking with a few other shooters at the match, this was the first time they had seen anything like this either. Cool!

I’ve sent the questionable round to Federal’s service department to see what they have to say. Hopefully they’ll make things right. The delay ended up costing me first place in the Novice class. What did I learn from this? First, that even quality factory ammo shouldn’t be relied upon to function flawlessly every time. Malfunctions will occur. Practice for them. Second, that every malfunction is different. I’ve practiced my failure-to-feed drill pretty consistently, but running into a situation where the slide closed and the trigger didn’t even click was something I just wasn’t expecting. Instead of treating it like any other failure, I let my surprise delay me from taking action.

Final note: I’ve been extremely happy with Federal ammo thus far and would be surprised if they don’t make this right for me. This post wasn’t intended to criticize their company in any way, it was just a fascinating occurrence that I thought might interest others as well. Has anyone else seen a factory round that was too long like this?

February 12th, 2010

Things I learned today

  1. Compiling Apache and PHP from scratch in DSO mode is a nightmare
  2. Slicehost’s ability to restore a server image from a backup is incredibly useful
  3. I’m glad I’m a developer and not a sys admin

That is all.

February 12th, 2010

WordPress upgrade was moderately easy

I recently upgraded my blog to WordPress 2.9.1 and I’m very pleased with the results. The upgrade itself was very straightforward. It was just a matter of replacing the correct files in my project. I have my project checked into GitHub so I was able to immediately see what had changed. I also had a safety net in case I wanted to back out of the upgrade.

One nice benefit to upgrading was that I’m now able to leverage the Syntax Highlighter plugin. It does nifty stuff like this:

class HelloWorld
  def say_hello
    puts "Hello world!"
  end
end
HelloWorld.new.say_hello

If you run a WordPress blog, I would definitely recommend checking it into some sort of source control. Also, being able to run the blog on my development system is very beneficial. I was able to verify that the upgrade hadn’t borked my layout before making everything live. I use Apache to serve it up locally.

What platform do you use for blogging? What do you like about it?

February 11th, 2010

Delete/backspace doesn’t work in nano

If you’ve ever performed a fresh install of Ubuntu, you’ve probably noticed that the delete/backspace key doesn’t work correctly in nano. This is frustrating, but easy enough to fix.

This problem also occurs quite frequently for me when logging into a remote server. For example, a default Slicehost instance usually suffers from this behavior.

If you truly want to understand what causes the problem, check out this article.

February 11th, 2010

Mass rename files in UNIX

Several of my Rails projects surface a RESTful API. I use integration tests to verify that the API calls work as expected. I also version my API calls so I can easily adapt the API to new circumstances while maintaining backwards compatibility.

To move to a new API version, I copy all of the existing integration tests and rename their prefix to the new version. Instead of renaming the files by hand, there is a nifty UNIX command that handles it for me. For example, to rename all the “v2_*.rb” files to “v3_*.rb” I would type:

for file in *; do mv "$file" "v3_${file#v2_}"; done
January 4th, 2010

Radiant can’t load ActiveSupport caching?

Are you getting this error message when attempting to deploy your Radiant application?

no such file to load -- active_support/cache/memory_store

The fix is simple. Assuming you’re using a vendored copy of Radiant or Rails, you probably have an entry for “cache” in your .gitignore file or your svn:ignore property. Remove it, commit the changes, and deploy again. Bingo!

Don’t ask me how I know this.

December 3rd, 2009

Autumn beauty at Hanging Rock

In November, I was blessed with the opportunity to visit Hanging Rock State Park with some friends from church. Though the fall colors were past peak, it was still an enjoyable and invigorating hike. I took this video clip from the top of Hanging Rock with my iPod Nano. It was a very windy day. The view off the southern side was clear enough that I could see Winston-Salem. What a beautiful experience!

“The heavens declare the glory of God, and the sky above proclaims his handiwork. Day to day pours out speech, and night to night reveals knowledge.” Psalm 19:1-2

“For what can be known about God is plain to them, because God has shown it to them. For his invisible attributes, namely, his eternal power and divine nature, have been clearly perceived, ever since the creation of the world, in the things that have been made. So they are without excuse.” Romans 1:19-20

September 25th, 2009

Secrets of Effective Nomading

“Secrets of Effective Nomading” was a lightning talk I was planning on giving at this year’s Ruby Hoedown. Due to my flight arrangements, however, I was unable to give the talk in person. I made a video recording instead. It’s about six minutes long.

If you’re not familiar with the concepts behind nomadic programming, you might want to read my introduction before watching the video.

By the way, the Hoedown itself was fantastic. This is the third year Jeremy has run the conference and the presentations were top-notch. By far the best yet. The venue (the Opryland in Nashville) was also quite pleasant, if a little on the expensive side. The expense was worth it, though, if only to hear Jim Weirich present on a source control system that sounded a lot like Git, but wasn’t!

And of course, the nearby mall complete with movie theater and Bass Pro Shop was just the icing on the cake. (C’mon Raleigh, when are we gonna get a Bass Pro Shop? Charlotte has one.)

July 2nd, 2009

Ignite Raleigh

Ignite Raleigh looks quite interesting. It’s essentilly a conference made up entirely of lightning talks. Voting is now taking place on submitted talks. The top 10 will be given on August 5th.

I submitted a talk titled 3 Secrets to Effective Nomading. Check out the description and, if you feel it’s compelling and would want to hear it, please consider voting for it.

And by all means, if you have an idea for a talk, submit it!

June 8th, 2009

Career 2.0 book mention

Mark Mzyk gave a brief review of Career 2.0, the book by Jared Richardson that I contributed to, over on his blog. He also recommends The Passionate Programmer by Chad Fowler, another excellent career-boosting read. (If you’ve posted a review of Career 2.0 on your own blog, let me know.)