How to Marry Your iTunes Libraries

Almost two years ago, Josephine and I got married. Unfortunately, Apple doesn’t have any procedure in place to recognize that fact; and while our physical asses and assets now belong to each other, our digital media in the Apple Ecosystem are still only entitled to us as individuals. We’ve managed by authorizing her computer to my iTunes account, and mine to hers; but we still have two iTunes Match accounts, and both make our own purchases using our own apple ids from the iTunes Store. This has introduced a repetitive and hard-to-maintain task of giving each other copies of our digital purchases on thumb drives: a not-so-effective continuous integration process.

I’ve decided I had enough, though, and have married our iTunes Libraries. For those digital loners, married IRL, this guide is for you…

What You Have to Start With

You have two computers: ComputerA and ComputerB. On ComputerA, you have your personal iTunes Library, with all your music, movies, and TV shows. You’re logged into your own apple id: appleidA@me.com, and have use iTunes Match to sync to your own iMobileDevices. On ComputerB, your spouse has their personal iTunes Library, with their music, movies, and TV shows. ComputerB is logged into a separate apple id: appleidB@me.com, with its own iTunes Match account for a different set of iMobileDevices.

What You Want to End With

Ultimately you want a single apple id: myHarmoniousDigitalFamily@me.com, with one iTunes Match account, that you and your partner will use to make iTunes purchases, ’til death do you part. You want to retain your individual apple ids for buying presents from the Apple Store without your spouse knowing about it (regardless of wether its for you or your spouse ;) ), and you want to be able to play all your media from either library on all your devices, without having to (a) tell your partner your password for the seventeen-thousand-and-fifty-third time or (b) asking your partner for their password again.

The Steps:

Create a shared apple id for your family:
You’ll need a shared email address to register your shared applied… so head on over to your favorite email provider (google, yahoo, your ISP, whatever), and create a new account. Once you have the email address, you can go to:
http://appleid.apple.com
and create a new Apple ID for your family to use.

Remove DRM From Your Existing Purchased Content?
Before you do anything in this section, be sure to backup your DRM purchases first. You can identify them pretty easily in iTunes, and then drag-and-drop them into a backup drive for safe keeping. In iTunes, look at your media in “list” view, and be sure to check “Kind” from the Column Browser option under the View menu. You can sort your music by kind, and look for “Protected AAC” – those are DRM protected iTunes songs – or “Protected MPEG-4 Video File” – which are DRM protected iTunes movies / tv shows.

First, the music… this is the simple part, especially if you already have iTunes Match. A few years ago (2009 I think?) Apple started selling all its music in the DRM-Free iTunes Plus format. Anything you’ve bought since then is ready to go. Music you bought before this is in their “Protected AAC Format” and locked to your Apple ID. You have two options for these songs:

  1. Burn them to CD and re-rip them (Noteburner, which I mention below, can do this for you on a virtual CD device); or
  2. Use iTunes Match to upgrade your content

If you already have iTunes Match, then you just need to delete your Protected AAC music off your computer, and then re-download it from iTunes Match. The new download will be the DRM-Free, and higher bit-rate, iTunes Plus format.

See Apple’s iTunes Plus FAQ for information: http://support.apple.com/kb/HT1711

Form movies and TV shows, tis could be by far, the most time consuming and questionable part of this process. You could use Noteburner (http://www.noteburner.com) to remove DRM from your iTunes music, movie and TV show purchases. This should fall within the category of fair use, since it’s for your own personal use and archival (and because NoteBurner doesn’t “crack” the DRM, it just records the movie to a virtual device and then rips it back at full resolution).

This step is not strictly necessary, but it would make things simpler. If you do not do this, you will still need to authorize each others computers to your individual iTunes accounts anytime either of you change your Apple ID password, get a new computer, etc etc. Since you’ll make all your purchases in the future on the shared Apple ID, it won’t be an issue for new things.

If you do this, be sure to backup your original iTunes purchase download for safe keeping, and then replace it with the DRM free copy in your iTunes library, before moving forward. You’ll want to do this for all purchases on both ComputerA and ComputerB.

To be clear – I am not making any claim or recommendation about wether you should or should not do this. I’m simply stating it as an option, and you can weigh out the legal consequences for yourself.

Create the Shared iTunes Match Account
1) On ComputerA, sign your individual Apple ID out of the iTunes Store; then sign into the iTunes Store using the family apple id. Register for iTunes Match using the new family apple id.

Wait for iTunes Match to update before moving on.

2) On ComputerB, sign your spouse’s individual Apple ID out of the iTunes Store; then sign into the iTunes Store using the family apple id. Turn On iTunes Match

Wait for iTunes Match to update before moving on.

Enable Home Sharing
The final step for many will be to enable Home Sharing using the new family apple id. This way TV Shows and Movies from either computer will be visible to the other. Since you would have removed DRM from your TV Shows and Movies, there’s no need for either spouse to know the other’s Apple ID or password to watch their shows.

Apple TV
Don’t forget your Apple TV… you’ll need to sign it out of the iTunes Store as well, and then back in using the family id. You should also enable Home Sharing using the new family id there too.

The Only Downside
The only negative point here is that you’re paying for a third iTunes Match account up front… moving forward, this will be the only one you have to renew. If you recently renewed your personal iTunes Match subscription, you might find this annoying… I see it as an investment in convenience.

A Third Computer, you say?
In my house, it was one layer more complicated – because ComputerA and ComputerB are both laptops, and ComputerA travels a lot for work, so it’s often not in the house. The resolution here was to introduce a third computer, ComputerC.

Mac Mini makes a great ComputerC if you’re buying something new. I repurposed an old MacBook Pro I had in the closet, and hooked it up to a Drobo 5D for safe keeping of the media library. This computer has iTunes running all the time, with the combined libraries of both ComputerA and ComputerB, and is logged into Home Sharing, the iTunes Store, and iTunes Match using the shared family apple id.

iTunes on ComputerC is configured to automatically download purchases from the cloud, so it’s always up to date with new purchases made with the apple id.

A bumpy, but positive, Apple Care experience (x2)

Over the past two weeks, I’ve had several interactions with Apple’s support for two laptops. My experience for each laptop was bumpy, but overall positive with great outcomes – so I thought I’d make a quick post about it for the folks googling apple care out there.

Laptop 1: Mid 2012 Retina Macbook Pro (15″)

I have the 3-year Apple Care on my rMBP… thankfully! I’m just passed the 1 year mark on it. I called in because the display had developed several “stuck” pixels, about a third of the way down the screen, and spanning the entire width. The support rep directed me to an Apple Store so a genius could take a look at it, but since my closest Apple store is in Syracuse, 130 miles away, that wasn’t an option. He asked several detailed questions about the number, location, and appearance of each pixel, and then scheduled the mail-in repair.

The mail-in repair went quickly… a box with a prepaid label arrived at my house the next day. I packed my laptop in it and dropped it off for FedEx. It arrived in Houston the following morning, was diagnosed and repaired the same day, and arrived back to my house the following day with a brand new display and no stuck or dead pixels.

However, I very quickly realized there was now an issue with my trackpad. While it functioned normally, there was no longer any mechanical click to it when I depressed it. It felt very shallow, and dead.

I called back in, and was immediately transferred to a senior tech support rep, who scheduled my laptop for another repair, and explained that it would be routed to their “white glove” team upon arrival. Apparently, “white glove” service entails the watchful eye and careful supervision of your repair by a long-time experienced Apple service technician. I think it’s probably just a bit of hype to make me feel like it’s getting special treatment, but it gave me the warm and fuzzes, so it served its intended purpose. I’m also very certain this follow-up issue was just a one-off fluke event. Shit happens, it was really no big deal – the guy who helped me out on the phone (Scott) was making a much bigger deal out of it than I was :) . He also gave me his direct contact information (phone and email) so I could avoid the main dial-in line and hold times if I needed anything for this service request moving forward. In fact, I called him back twice and he was very responsive.

Ultimately, they replaced the “top case and battery” on the second repair… so my rMBP now has a new display *and* a new battery, and a mostly new shell. Pretty awesome, despite the bump in the road.

Laptop 2: Mid 2010 Macbook Pro (15″)

I pulled out my old Macbook Pro to see if I could use it as an interim replacement while my rMBP was back at Apple for the second week running… I had replaced it earlier in the year because it was rebooting spontaneously, and ever-more frequently. Since I did not have the 3-year warranty on it, I just threw it in the closet and got a new one.

When I booted it up, though, it was entirely unstable… I couldn’t use it for more than 20 to 30 minutes before it’d recycle on me. I did some quick googling, and stumbled across this support article which exactly described my problems: http://support.apple.com/kb/TS4088?viewlocale=en_US&locale=en_US

I contacted Apple support to try to setup the repair. The representative I spoke with (Carol), let me know my purchase date was June 2011, so if this was the cause I was definitely covered; however, if I wanted to mail it in they would have to place a hold on my credit card for several hundred dollars to cover the diagnostic charge in case it was not the issue, and I would need to pay the shipping to- and from- since it’s not under warranty. Since I was going to be in Syracuse anyway, though, I scheduled a genius bar appointment and brought the laptop in for diagnosis.

At the genius bar, we were unable to complete the diagnostic test for this specific issue; which appears to be a positive indicator that this issue is the cause. The Apple Genius, though, had a purchase date of May 2010, and told me I would have to pay for the repair!!!

Frustrated, I explained to her that Carol had very clearly told me my purchase date was June 2011, not May 2010, and that I would not have bothered to spend the 2 hour wait 130 miles from my house with I laptop I dug out of my closet on a whim, had I known it would not have been covered anyway. She took a sympathetic tone and went in the back, and came back to tell me the service advisor there agreed to cover the repair at no cost to me, based on the notes Carol originally entered in my case file, saying it was “positioned as a covered repair” to me.

They currently have the laptop, and have ordered a replacement logic board for it. I expect it to be done next week, and they’ll ship the laptop back to me! (I paid for shipping, but it only cost $12.00).

So two bumpy but good experiences with Apple Care, for machines that were both in and out of coverage.

Ridding myself of third-party hosting…

So I’m on a slow and steady path to rid myself of my third-party hosting services, and instead will operate my domains in-house. Here’s the plan:

1. Get a server machine: this will either be a re-purposed mid-2010 macbook pro I have lying around, or a new Mac Mini server – depending if I can resolve a small stability issue on the old laptop.

2. Get storage: I’m going to pair the server with a Drobo 5D, and start it off with 3x 3TB WD Red drives. I’ll run the entire system from there, so I have good on-site data protection. If I go with the laptop for this, the Drobo is a must-have to get this started; if I go with a Mac Mini, the server model already has dual-1TB drives, and I can hold off until into next year for it.

3. Rehost the email accounts: I’ve always used Google Apps for my domains, but since they discontinued the free edition, this won’t be an option moving forward if I register anything new (such as fanel.li). I’ve also just never been crazy about my emails being skimmed to build a profile about me, so self-hosting will be nice. I’ll use OS X Server’s Mail system built on Postfix and Dovecot. I already dry-tested this in a VM and confirmed it works great on my ISP, as long as I relay messages out through their SMTP servers.

4. Rehost the websites: Currently my sites are hosted across 2 Rackspace images, which cost me about $60/month. Since it’s just some wordpress sites, and a bit of static content, it’ll be simple to move them onto my new server machine, and I’ll likely host them in a linux virtual machine on that box.

5. Move off iCloud: With OS X Server, I can host calendars, contacts, and messaging servers for my domains, which will get me off iCloud for calendar and contact syncing.

6. Backup MX: Several DNS services offer very inexpensive backup MX servers to avoid bouncing emails back if I lose connectivity to my server at the house. ZoneEdit and NoIp both have good looking solutions. The Backup MX spools mail for later delivery if my primary mail server can’t be reached.

7. Centralized backup: I already have a time-capsule in the house, but the server will act as a central time machine backup server as well; and with the Drobo attached, I’ll have much better protection over my backups than my time capsule’s single point of failure right now.

The only thing I haven’t figured out yet is an off-site backup solution. One option would be to get a second Drobo, and use their Transporter solution. Then I could keep the off-site backup in my office at school. Alternatively, I could put it at my mom’s house, which has a little longer-term permanence :) . But that’s a pricey thing to do right now, and I don’t have off-site backup at the moment anyway… it’s something I want to be able to add in later, but am not going to worry about off the bat.

As part of this, I also changed my primary domain name… timfanelli.com still exists and works, but I will primarily be using fanel.li from now. This website is now http://tim.fanel.li, and my email address is tim@fanel.li. All the timfanelli.com information redirects or forwards to tim[@|.]fanel.li as of this morning.

obligatory ‘holy crap it’s been a long time since I updated this blog’ comment.

Homework 3

Everyone’s design project 1 implementation should have a “Gesture” hierarchy (wether you called it Gesture or not, doesn’t matter) and a “Scoring” hierarchy. Many of you also have a Player or “hand” object. For homework 3, you must implement the Observer pattern so that your Player object notifies the Scoring object when it has chosen a gesture.

In other words, you will add GestureSubject and GestureObserver interfaces to your design, and modify the appropriate classes in your design to implement them.

If you do not have a Player (or similar) object in your design already, you should add that as well. The Player object for this homework does not need to be as described in the original DP1 Extra Credit section; it simply needs to be a class with a “getGesture()” method, that causes that player to choose a gesture (either randomly for computer-generated choices, or via console interaction for human-generated choices).

Provide one or more test cases where several player objects are created. “getGesture” should be called on each player, which in turn would notify the Scoring object (the observer, properly registered of course) of its choice. Your test case should assert that the scoring object can decide the correct winner after having been notified of the player choices.

Due: Friday Nov 2. Office hours by e-mail or appointment only.

UPDATE: To submit, you must create a branch of your design project 1, and implement the changes in that branch. Instructions to follow shortly!!

“Project 1″ vs “Design Project 1″

So I screwed up the naming of these things. To differentiate between “10%” projects and “15%” projects, we’ll use “Project” vs “Design Project” respectively.

To be clear, so far:

 

EE363 Design Project 1 – Design Notes

Here’s a couple notes regarding design project 1

  • Your object model must represent Rock, Paper, Scissor, Lizard, Spock, Radioactive, Poisonous and Infested as objects under a common “Gesture” base type

    A Gesture must have a method called: getName() that returns the name of the gesture, for example: “Radioactive Spock”, or “Infested Paper”.

  • Your scoring implementations can check to see what kind of object a Gesture is by looking at it’s name, like so (this is just an example of something you might do… my reference implementation, for instance, has no such method…):
public boolean isSpock(Gesture g1) {
    return g1.getName().contains( "Spock" );
}

More updates may come as we go through office hours… stay tuned.

EE363 Design Project 1

Here is EE363 Design Project 1: Rock, Paper, Scissors, Lizard, Spock; Radioactive, Poisonous, Infested edition!

Update Posted on Thurs Sep 13:  http://www.timfanelli.com/2012/09/ee363-design-project-1-design-notes/

It is due Friday, September 28, 2012. All the details are in the PDF. Here are a few key bullet points:

  • Work in teams of two to three people. Notify me of your teams by class on Friday, so that I can get the SVN repositories set up over the weekend.
  • Office hours are 12-2p M/W/F, or any time by appointment (please give me at least 1 day heads-up making appointments by email).
    * The entire team must be present at office hours
    * You must bring UML to office hours, or I will ask you to leave.
  • You must, must, must utilize the design patterns and principles learned this semester!

This project is worth 15% of your grade.