A fairly popular article I posted a couple years back is on setting up iTunes for multiple users on Windows. I just updated that article so it shows how to do it in XP and in Vista, and I fleshed out the steps so they’re easier to understand and follow. (I just had to do this on a new laptop we bought, so I figured I’d offer it up to folks and see if I could spread the joy.)
Amid the other problems I’m having with my Xbox 360 and Xbox Live, this morning I seemed unable to recover my gamertag. When I did the network diagnostic, I found that the NAT settings came up as “Moderate” (on the Xbox Live scale of “Strict,” “Moderate,” and “Open,” you really need that to say “Open”).
To make it read “Open,” you need to forward the following ports through your router to your Xbox (which means you’ll also need a static IP address on your Xbox):
- UDP 88
- UDP 3074
- TCP 3074
Lucky for me, PortForward.com has some great free how-to articles on setting up just that. Here’s the guide to setting up a static IP address on your Xbox 360 and the guide for Xbox Live port forwarding on a Linksys WRT54G.
Interestingly enough, after futzing around with this and getting it to a situation where I couoldn’t even connect to Xbox Live at all, I put all my settings back the way they were (remember they were “Moderate?”) and suddenly it was seen as “Open.” I guess you never can tell.
I’ve uncovered some issues with CR_Documentor where the context menu doesn’t appear when you upgrade your DXCore to version 3.0.5. I will do my best to resolve this issue and any other known defects in the next release, which, I assure you, is forthcoming… just sort of slowly. But it’s coming!
I’ve posted the list of known issues on the CR_Documentor page for now.
Another year come and gone, so it’s time again to throw up a bit of a retrospective of highlights for the past 365. (For reference, here’s last year’s retrospective.)
In January, I put out version 2.1 of my DHTML tooltips for Amazon links (which are sort of obsolete now since Amazon has all that set up from their site in a much richer format). I did a review of various clipboard management software and ended up with ClipX as the winner of that showdown. I also pumped out a little command-line GUID generator and a custom NAnt task assembly with some helpful stuff in it.
In February, we got a new little terrorist cat named Jack. I published some tips on disaster recovery and trouble-free continuous integration. We all got a little sick of hearing about FizzBuzz toward the end of the month.
March got me trying to get people to switch their blogs to use inline styling when including code snippets because they don’t format right in RSS otherwise. I’m still fighting that one. I got Media Center working with my Xbox 360 in a test environment (but I’m still trying to determine the right way to go to serve up DVDs and meet all of my requirements).
In April I had electronics and DRM issues. The lifespan of my 3G iPod
sort of reached a logical limit as I hit the 1418 error and found that
the iPod must be plugged into the wall while
of iTunes 7. I got a Red Ring of Death on my second Xbox
360 (which hit me
with some bad DRM
bought a new DVD player because of bad Sony
I also got into the design for testability vs. design for usability
debate with respect to static helper
Oh, and I attended MIX07, which I blogged a lot about
May saw CheckFree acquiring Corillian. It also saw TypeMock publishing a nice case study of its usage inside Corillian. I tried to figure out how you’d detect through reflection if two object types can be added together, but never did get an answer. Just at the end of the month, I posted the EmbeddedPageHandlerFactory
- a way to serve up ASP.NET 1.1 from embedded resources.
In June The Sopranos ended with a whimper and I migrated my blog to Subtext. I preordered GTA4 (which still hasn’t shipped), posted a CodeSmith template for generating generic KeyedCollection derivatives and solved the Guitar Hero controller loose whammy bar problem with some o-rings.
In July I did a fireworks show in Walla Walla, WA, gave away some code to convert an Outlook message into a task, and made a bookmarklet to automatically copy an Amazon Associates URL to your clipboard while browsing Amazon. I published the EmbeddedResourcePathProvider
- a way to serve up ASP.NET 2.0 from embedded resources. Oh, and I turned 31.
I started August out by showing you how to mock a page request lifecycle with TypeMock. I started getting laser hair removal on my face (which I’ve continued to do: 1, 2, 3, 4). I also posted some tips for non-programmers who want to learn how to program.
In September my Xbox got tanked by a dashboard update so I got to send it in for repair, making this the third time I’ve had to get things fixed. I found an odd issue where ISAPI filters were causing problems with .NET and showed you how to optimize your TortoiseSVN cache for better disk I/O.
In October I celebrated my first wedding anniversary. I ran into a problem where I found that .NET assemblies store enum values, not references to the original enum, which caused some havoc. I got hit by some changes in the Xbox Live DRM model, which, two months later, I’m still fighting. I also posted a program to help you copy iTunes track metadata from one track to another.
In November I went to the Microsoft Patterns and Practices Summit (Days 1, 2, 3, 4, 5) and met Lutz Roeder while up there. I posted some tips on writing good XML doc comments in your code. I participated in the One Laptop Per Child program (which I later unboxed for you). I installed VS 2008 and the install was the worst. I rounded up some “Command Prompt Here” utilities for you and learned, via Rock Band, that I might just suck as a drummer. Finally, I showed you how to use ParseControl to combine ASP.NET skins and localization effectively.
December saw CheckFree getting acquired by Fiserv. Xbox DRM continues to eat my lunch so I posted some maintenance secrets that might help you avoid a call to Xbox Support. I posted UrlAbsolutifierModule
- an HttpModule that helps you convert URLs from relative to absolute format in ASP.NET. I watched the sixth season of 24 all in one day, found that FxCop 1.35 uses Office 2003 for its spell checker, and showed you how to move your iTunes music library.
That pretty much brings us to current. It’s been a heck of a year - I got acquired twice, went to some great conferences (and met some cool people), and posted some [hopefully helpful] stuff for folks. Here’s to a great upcoming 2008!
I bought a new laptop and I want to sync my iPod from the laptop now, not from the desktop in the other room. Unfortunately, moving your iTunes library around is kind of difficult. You can copy the library file (.itl file) over and fire up iTunes on the new computer, but it’s still going to look in the old location for the files and it’s not going to find them.
I tried the iTunes COM SDK but it turns out the physical location of a file is a read-only property. Luckily, I found an article that talks about how you can manage your library and move things around by using the “Consolidate Library” feature. I already have my music on an external drive, but I want to get it to a different drive that’s shared on the network, so here’s what I did:
- Install iTunes on the new laptop.
- Start iTunes so the initial iTunes library files are created and I can get past the setup bits.
- Copy the iTunes library files (both the .itl and .xml) over the top of the new ones on the new laptop.
- Plug the old external drive into the laptop. Make sure the drive letter on the new laptop is the same as it was on the old computer. In my case, this is the “F:” drive.
- Open iTunes on the new laptop and verify all the songs are found.
- Update the new iTunes settings - change the location of the iTunes library folder to the place you want the music files to be, tell iTunes to automatically manage your collection, and tell it to copy any new files into your iTunes library folder.
- In the new installation of iTunes, select Advanced -> Consolidate Library. This will copy the music from the old location to the new location and update the database with the appropriate new locations.
The only downside to this is that if you have a large collection (as I do), it’s not a very fast process and it takes up a lot of disk space - you’ll end up with two copies of your music collection. That said, once the consolidation is complete, you can delete the old copy of the collection and free up your disk space.
I really wish the iTunes COM SDK allowed me to just change the file location. It’d have been so much easier just to script the move.