I’m working on getting my Windows Media Center to play my iTunes files (by installing codecs and tag readers) and one of the things I’m doing is setting the album artist on all of the tracks because that’s something Windows Media Center needs set to get album art properly. While doing it, I found there were basically two classes of track that didn’t already have the album artist tag set - those that fell into “Various Artists” (like soundtracks and such) and those where the artist should also be set as the album artist.

To make it easy and less tedious, I wrote a script to set the album artist field to the artist. I figured I’d pass it along for other folks to use at their own risk. No promises this won’t corrupt your library or anything. Keep backups.

First, make sure you’ve set all of the tracks that are “Various Artists” as such. This script doesn’t take care of that for you. It’s not smart, it just sets “artist = album artist” for tracks missing album artist. Once you’ve taken care of all of your “Various Artists” tracks, run this script:

    var ITTrackKindFile  = 1;
    var iTunesApp = WScript.CreateObject("iTunes.Application");
    var numTracksWithoutAlbumArtist = 0;
    var mainLibrary = iTunesApp.LibraryPlaylist;
    var tracks = mainLibrary.Tracks;
    var numTracks = tracks.Count;
    var foundTracks = new Array();

    WScript.Echo("Checking " + numTracks + " tracks for missing album artist...");
    while (numTracks != 0)
    {
      var  currTrack = tracks.Item(numTracks);

      if (currTrack.Kind == ITTrackKindFile && !currTrack.Podcast)
      {
        if(currTrack.AlbumArtist == null || currTrack.AlbumArtist.length == 0)
        {
          numTracksWithoutAlbumArtist++;
          foundTracks.push(currTrack);
        }
      }

      numTracks--;
      if(numTracks % 1000 == 0)
      {
        WScript.Echo(numTracks + " tracks left to check...");
      }
    }

    if (numTracksWithoutAlbumArtist > 0)
    {
      WScript.Echo("Found " + numTracksWithoutAlbumArtist + " tracks missing album artist. Creating playlist and updating artists...");

      var playList = iTunesApp.CreatePlaylist("Fixed Album Artists");
      for(var trackIndex in foundTracks)
      {
        var currTrack = foundTracks[trackIndex];
        currTrack.AlbumArtist = currTrack.Artist;
        playList.AddTrack(currTrack);
      }
      WScript.Echo("Playlist created.");
    }
    else
    {
      WScript.Echo("No tracks missing album artist were found.");
    }

What it does is:

  • Iterate through all of the tracks in your library and find the ones that aren’t Podcasts that have no album artist.
  • Creates a playlist.
  • Sets the artist as the album artist on the tracks it found.
  • Adds those tracks to the playlist so you know which tracks were updated.

In the event it does something wrong, you can always select all the tracks in the created playlist and set the album artist back to empty.

Again, YMMV, use at your own risk… but it worked great for me.

media, movies comments edit

Yesterday I finally finished ripping all of the DVDs I own to date. I didn’t rip discs with only special features on them and I skipped a few that I didn’t think we’d be watching again.

All told, I have 770 VIDEO_TS folders taking up 4.91TB of space on my Windows Home Server. That’s about 6.7GB per disc image.

If you want to know more about my Media Center solution - what I was trying to accomplish, why I chose VIDEO_TS instead of MPEG or some other compressed format, etc. - check out the overview of my Media Center solution.

I’ve been reading documents here and there recently and have run up against something that seems to be confusing to some authors: when and how to use bullet point lists.

For those who are unaware, here’s the shocking rule of thumb for using bullet point lists: If you have a list of things, you can use bullet points (or numbers, as appropriate). If it’s just a paragraph of prose describing something, it’s not a bullet point list.

For example, say you’re describing the process by which you take out the trash. This is not a good bullet point list:

  • I go in the kitchen and pull out the garbage can.
  • Sometimes the garbage stinks a little because of the food in there.
  • Other times it doesn’t stink, but it’s OK because there’s air freshener in the room next door.
  • I might go get the air freshener, but not yet.
  • I pull the garbage bag out of the trash can and walk it outside. Then I stick it in the large trash can outside.
  • Now I might get the air freshener.

Again, that’s not a good bullet point list. It’s a series of sentences that, with some help, would make a prose paragraph describing the trash removal process. Bullet point items should be self-contained. They should generally be short and to the point - again, it’s a list, not a story in bullet form. That crap about the garbage stinking in the above list - what’s that doing there? Why is the thing written like a story? No, no, no. That’s just… painful.

A decent bullet list is more like this:

  • Go in kitchen.
  • Pull out garbage can.
  • Get bag out of garbage can.
  • Take bag outside and place in large can.
  • If necessary, spray air freshener in the kitchen.

Short, to the point. A list of self-contained thoughts.

Another use of bullets might be in denoting section breaks in short, self-contained text blocks. Like a question/answer thing:

  • Question: Where is the garbage can? Answer: In the kitchen.
  • Question: Where do I take the garbage bag? Answer: To the large can outside.

Here you see the individual thoughts outlined by the bullets, while slightly longer, are still fairly self-contained. I also added a little white space between each item to help that visual delineation of thoughts. I didn’t write an essay and throw a bullet in front of it. I didn’t take a story and make each sentence in the story into a bullet item.

It’s okay if you’d rather describe things in a prose paragraph or three. Bullets have their uses and maybe the thought isn’t conducive to the bullet treatment. That said, bullets don’t necessarily make your thoughts more intelligible. Use them where appropriate. When in doubt, maybe err on the side of not using bullets. I mean, if you don’t know if it’s a bullet list or not… it’s probably not.

Note: This is particularly applicable to the folks who think Excel is a word processor. It’s not. Just stop. Now. Seriously.

Lots of random thoughts that came up between Saturday and now, figured I’d get them down. None probably of interest to anyone but me, but we’ll get ‘em down anyway.

Saw State of Play this weekend for my dad’s birthday. It was decent and had some good plot twists, but I think there were parts that could have moved a little faster. Jenn got bored and there were definitely a few spots where I was like, “come ONNNNNN.” I won’t be buying the DVD, but it was worth seeing. Maybe wait for the rental.

I cleaned our Sunsetter retractable awning this weekend to prepare it for the season. I find that I have to do this every year because the moisture from the winter gets inside the rolled up awning and it gets a little moldy. Covering the awning doesn’t help. It’s not a bad build-up, just a little dirty looking. Sprayed it down with some “30 Seconds” and it came out looking very nice, but I didn’t realize the cleaner has bleach in it… so my jacket came out looking like it had rained white on me. Not a big deal since it was my outdoor work jacket, but sort of weird, especially since it says “safe to use around plants and animals” on it.

We got some La-Z-Boy recliners delivered, completing our game room, but I always seem to have problems with things that other people don’t. The leather looks great, I sat in one before the delivery guy left and it felt good, then later that night Jenn and I were sitting there (Jenn in the one I didn’t sit in) and it turns out the seat on that one is tilted to the right so it feels like you’re sliding sideways. The repair guy will be here on Wednesday for that. (There’s a repair guy coming today for another piece of furniture we had delivered a couple of weeks ago where the leather was scratched.)

Oh, and my Ion Drum Rocker is on the fritz. I was playing the “Drum Trainer” mode in Rock Band 2, doing reasonably well, but at random intervals the “up” directional arrow thought it was getting pushed so the tempo would speed up on me without warning. A few times of that and I called their support. The control box for that is getting repaired now but it could be seven to eight weeks before I’m back up and running. I’ve got a call in to see if I can get that sped up. We really wanted to have a Rock Band party but you kinda can’t without drums.

Jenn and I got tickets to see the B-52’s and Tears for Fears (two different concerts, not one concert with two acts) this summer at the Oregon Zoo. Looking forward to that.

While I was zoning out getting my teeth cleaned this morning, I was thinking that eventually there’s got to be a system of record for human intelligence. It doesn’t necessarily have to contain all of human intelligence, but it needs to at least index it. Then we’ll end up with little implants that have wireless network access in them and can call into that system. I don’t know if it’d be Google or Wikipedia. I guess it depends on whether the system actually needs to contain the information or just index it. Hmmm. Anyway, thinking about how that would work kept me busy while I was getting my teeth cleaned.

I downloaded the BlackBerry app from Amazon and I must say so far I’m impressed. It’s much better than the mobile web experience and it has that thing built in where you can take a picture of something and it’ll find similar items that they sell on Amazon. I haven’t tried that yet. Might have to later. I wonder what happens if I send a picture of myself in - what items do they sell that are similar to me?