I have recently become a huge fan of Songbird, a free multi-platform media player based on Mozilla’s XULRunner.

If you are anything like me, you may be asking yourself what makes Songbird special or worth your time. Why not just keep using iTunes, VLC, or Windows Media Player? Here are my reasons for choosing Songbird over the competition:

  • It runs on my Windows 7 and Ubuntu 9.10 computers with the exact same interface and feature set.
  • Highly configurable playlists. For example, I can make a dynamic playlist that only shows songs that: have been rated 3 or more stars, haven’t been skipped more than 5 times, are at least 3.5 minutes long, and were produced between 1990 and 2000.
  • With a minor tweak, Songbird will save my song ratings in the MP3 file itself. This means I can put a song in my Dropbox, rate it at work, and by the time I get home the rating will be there, too.
  • Speaking of tweaks, Songbird is as tweakable and configurable as Firefox. You can get extensions, themes, adjust internal settings that most people don’t care about, change how the title bar works.
  • Has an internal web browser that knows when you’re on a page with music. This means you can quickly and easily download free music from places like and have your new songs instantly imported into your music library.
  • Also because it has an internal web browser, I can open Slacker or Pandora in Songbird and save myself having an extra tab in Firefox. (Bonus: If Flash starts acting up in Ubuntu, I just have to restart Songbird and not my whole browser)
Read More

The Shepherds

Yesterday at church our Primary watched Luke 2, a short video about Christ’s birth. Part of the video shows angels coming to tell shepherds of the savior’s birth. During this part of the movie I thought to myself that it was a bit random that some shepherds saw angels when Christ was born. What made them so special? Why was it recorded in the Bible? Why weren’t other people visited by angels at this time?

Well, I found a possible answer today on the Temple Study blog:

…the shepherds who were abiding by their flocks in the fields were perhaps watching over temple sheep, sheep that were being bred and protected to be sacrificed at the temple in Jerusalem.

Very interesting, no? What is also very interesting is the article also goes into some detail about which stable/manger Christ was at. I don’t want to ruin the awesome ending for you, so read the full article here.

Read More

Automatic JS Broken Image Replacement

It’s a sad fact of life, but sometimes webpages have broken images. Wouldn’t it be nice if there were an easy way of automatically replacing these broken images?

for (i = 0; i < document.images.length; i++) {
  var img = document.images[i];
  img.onerror = function (evt) {
    this.src = "broken-image.gif";

This snippet of JavaScript will find all your images and replace the broken ones with broken-image.gif. Pretty spiffy, huh?

You can also do something like this to apply it to individual images:

<img src="good-image.gif" onerror="this.src='broken-image.gif';">
Read More

Hulu Ad Failures

I watch a lot of Hulu, and generally I don’t really mind an ad or two. However, I hate untargeted ads. For example, ads for Monostat or birth control pills. I’m a guy. Hulu knows I’m a guy (I checked, its in my Hulu profile). Why in the world are they showing me commercials for these things? Have I watched too many chick flicks or something? Does anyone else have this problem?

Read More

Updated Cost of Food Page

I’ve updated my Cost of Food page to allow you to define who is in your family. So, for example, you can say that your family has one male age 19-50, one female age 19-50, and one child age 2-3. My cost of food calculator will use USDA data to determine the average national monthly cost of food for 4 different pricing plans for your specific family. It will graph this data and show you how the price of food has gone up and down since September 1997. Hover over the graph and you can view specific pricing for any month.

I’ve written some code to keep this automatically updated as new data is released by the USDA, and am working and fleshing out some additional features (ability for the site to remember who is in your family, maybe some sort of notification when new data is available, etc).

Check it out on the Cost of Food page.

Read More