Archive for Jan 9 2010

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.

PNGGauntlet 2.1 with Windows 7 integration

Last week I pushed a new update to PNGGauntlet, version 2.1. It's been almost two years since the last PNGGauntlet update, and 2.1 doesn't bring a lot of new stuff - it's mainly bug fixes and optimizations. But there are some cool new bits. My favorite is that PNGGauntlet now integrates with the Windows 7 taskbar to show compression progress on its taskbar icon.

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

Searchable tab switching in Firefox 3.6

As an emacs user, I've found iswitchb (interactive-switch-buffers) to be a huge time saver. Basically, to switch files (buffers) you enter a typically byzantine key combination and then type to search through your open files - as less and less files match your search, the choices narrow down, and you can choose between them. This ends up being way faster than switching with a mouse even in tabbed editors, and I've managed to set up a similar thing in Eclipse/Aptana. But until recently I didn't have the same functionality for switching tabs in Firefox.

Simple expiring caching for Ruby on Rails

Ruby on Rails has some great caching support built right in, but it's most useful when you have MemCacheD or DRb around to serve as a cache store. I don't have access to those everywhere - Dreamhost and other shared hosting providers often prohibit running your own MemCacheD. There's a default memory store, but it won't share cached info between Rails server processes. That leaves the file store, which just writes cached objects to a file that gets shared between all your Rails processes on the same box. The main problem with the file store is that it doesn't support time-based expiration - you have to set up a cron job to sweep out the cache files every once in a while to invalidate your cache.

Speeding up jQuery's each function

In my previous post, Investigating JavaScript Array Iteration Performance, I found that among a selection of different array iteration methods, jQuery's each function was the slowest. It's worth mentioning again that these investigations are pretty academic - array iteration and looping speed is unlikely to be the source of performance problems compared to actual program logic, DOM manipulation, string manipulation, etc. I just found it interesting to poke into how things work in different browsers. That said, with the recent release of jQuery 1.4 emphasizing performance so much, I wanted to see what if anything could be done to speed up each (which is used inside jQuery all over the place), and whether it would made much of a difference.

Again, the details are after the jump.