Articles for the 'Random' Category

Fixing a Nerf Stampede that only shoots in certain orientations

My friend Mark got me one of the awesome Nerf Stampede dart guns for Christmas. It's a fully automatic Nerf gun that takes clips of darts - perfect for the sort of inter-office foam wars that break out with alarming regularity these days.

XBList updated to 3.3.0 to cope with Xbox.com redesign

Xbox.com's new redesign ahead of the Kinect-focused dashboard update landed on Wednesday, and predictably broke XBList. Since XBList just scrapes Xbox.com for its information, it's very sensitive to this sort of thing, and this redesign is one of the biggest to happen to the site since I've been running XBList. Unfortunately I was out of the country, and only got back home last night - tonight was my first opportunity to survey the damage and see what I could do.

Water Heater Cost / Payback Calculator

For the few months my wife and I have been trying to decide on a new water heater. After moving into our new place, we realized that the existing electric tank water heater wasn't working right since the temperature of our showers steadily got colder. It was suggested that one of the heating elements was busted, but I wasn't interested in getting it repaired since the heater was way older than the expected lifetime of an electric heater. However, there are a lot of choices for a replacement. Another electric tank water heater would be cheap, a gas tank heater would be cheaper to run but require running a gas line, and there are tankless water heaters which are much more expensive but are cheaper to operate and don't have to keep a whole tank of water heated up all the time for the few times you use it.

Glowback - Arduino-powered glowing ceramic creature

While I spend most of my time in front of a keyboard and monitor, my wife Eva Funderburgh spends her time sculpting amazing, imaginary ceramic creatures. Her beasts are assembled out of different clays and wood-fired. About a year ago she enlisted my help in building a new type of beast with egg-shaped domes on its back. The idea was to have the domes glow and pulse with an organic, bioluminescent light. (Note: This was way before we'd seen Avatar!) Eva had already built and fired the beast a few months earlier, using thin shells of translucent Southern Ice porcelain for the domes. She left a few of the domes unattached so we could get lights inside after the firing.

The start of the Glowback

Middle mouse button on a ThinkPad

File this under small victories, I guess. A couple months ago my trusty old ThinkPad R51 decided to cook itself to death, so I went ahead and got a shiny new ThinkPad T500. It's quite an upgrade, but I missed one feature from my old machine. ThinkPads have this weird hybrid pointing device called a TrackPoint which consists of a trackpad and two buttons, then a nubbin-pointer and three buttons for that. On my old ThinkPad I could use the nubbin's center button as a middle-click, which is great for opening links in new tabs, closing tabs, Unix-style copy/paste, etc.

Posts I haven't written

I haven't been updating this blog too much recently. I never meant for this blog to run on a schedule, but I did intend to post more frequently than this. My original idea was that the blog would serve two major purposes. First, it is a place for me to announce new projects or updates to software and websites I've already released. It's done that quite well, though I haven't had much to announce recently. My job has been taking the majority of my development time, and most of the projects I've been working on at home are either private or haven't been released in the form I'd like to because my employer hasn't approved them for release yet.

The second major purpose for my blog is as a place for me to record the solution to problems I run across while developing software, so that others won't have to spend hours Googling or using trial and error to come to the same conclusion. I didn't intend to rehash things that were easily found or that had already been discussed - only to post when I felt it was something that added value to the internet that hadn't been there before. So a lot of the blog posts are not really a narrative or running commentary - they're not meant to be subscribed to, but found individually. It's for this reason that my most popular posts tend to include the exact text of error messages. This type of post has suffered both because I haven't been doing as much development, because I can't discuss a lot of what I've learned due to the nature of the projects I'm working on, and because I've been learning new stuff (like Ruby on Rails) and haven't done enough to have solved problems others haven't already posted solutions for.

The third reason I have this blog is to occasionally talk about my thoughts on different technical topics, from web development to video games. Again, I don't like to make a post unless I think I'm adding something new, and most of the topics I've wanted to talk about have already been covered. I had a lot of draft posts sitting around about web development, web standards, and the evolution of browsers, but then I discovered Alex Russell's blog and it turns out he's already said most of what I wanted to say, and better than I could. Other stuff, like my impressions of Windows Vista, critique of stackoverflow.com and suggestions for the Xbox Live Arcade lineup, have been covered to my satisfaction in plenty of places. Maybe some of them will end up posted, but probably not.

Another part of the reason I haven't posted much is the sheer weight of unfinished posts I have. Right now I have 64 drafts and only 52 real posts! So I'm going to attempt to clear things out by writing a little about what I haven't posted. A lot of this stuff wasn't posted because it fell under that third point above, but some of it I was just too lazy to flesh out into real posts. Some of it's just random stuff. So here's what's been happening in the last year:

Website work

I've been pretty quiet on the blog lately, partly because I went on a long vacation and partly because I've been too busy with real work to do anything much on at-home projects (at least, at-home code projects). Another reason is that I've been working on a couple websites that hadn't launched until recently. The first project was a website for Butterfly Haptics, which is my parents' new company. They're producing a really cool magnetic levitation haptic interface - a sort of super-high-tech 3D mouse that lets you feel virtual objects as if they were solid. I'm really excited about what they're building, and I'll be at SIGGRAPH this year manning their booth in the New Tech Demos area.

Setting up IIS7 (with bonus PHP instructions!)

Every time I try to set up IIS7 on a Windows Vista machine I run into the same series of problems. You'd think I'd have learned by now, but I usually just struggle through the cryptic error messages and get it working one way or another, then forget about it until the next time I need IIS7 on a machine that doesn't have it. Finally I'd had enough and so I decided to write myself a little guide here so I won't waste as much time next time. These instructions are basically the same as these, but with additional detail and screenshots.

Better concert experience with ear protection

One of the advantages of living in Seattle is that I get to see great live concerts from my favorite bands. The last week has been a good one for concerts. Last Saturday I got to see The Presidents of the United States of America, who were fantastic, and on Wednesday I saw The Decemberists, who are one of my top 10 favorite bands.

I have a new backup strategy

This weekend I came pretty close to losing all my blog posts. My hosting provider moved my site to a different host, and ended up screwing up my MySQL database in the process. I've actually got a lot more than just my blog posts in that database, and it was pretty scary for a while there as they restored things from backup. It made me realize that I don't do nearly a good enough job keeping my own backups. So I revisited my backup strategy, and made a few changes. First, I'm now using automysqlbackup to make a complete backup of my MySQL databases every day. Of course, I'm still using SyncBack to do incremental nightly backups onto an external hard drive, in case my main hard drive crashes. The other new addition is that I'm using S3 Backup to copy all my irreplaceable data to Amazon's Simple Storage Service every month. This little app is still in beta, but it does a good job of putting incremental backups to S3. I was really surprised to find out just how cheap S3 is - I can back up gigabytes of data and have S3 hold it for just 15 cents per gigabyte. At that pricing I have no problem backing up tens of gigabytes of photos, code, and documents, knowing that if my house went up in a fire I'd be able to get back everything my insurance can't replace.

Smoke skin for Winamp Toaster

I'm a die-hard Winamp user, and one of the reasons for that is the fantastic plugins that are available for Winamp. One of my favorites is Toaster, which gives you this cute little popup whenever the song changes. I've been enjoying this one for years, but only recently I discovered this cute little app: Album Cover Art Downloader. After an all-night cover downloading spree, I realized that Toaster supported showing album art in the popup. After fiddling with it for a bit, it showed up, but it still didn't look that great, so I created my own little skin for it.