Sunday, June 3, 2012

Everything I Love and Hate About iTunes Match

Almost 7 months ago -- in November 2011 -- when iTunes Match was just about to become available, anyone with a paid Apple Developer account could use the service, and it sounded interesting to me for one big reason: I already used iOS to play most of my music through my phone, and I could probably live with using iTunes (Genius is pretty cool). Previous services that are very similar -- like Google Play -- sounded neat, but not practical for me because too much would have to change about how I currently listened to music. That's what made iTunes Match different.

The first thing I did was grill my buddy Mike on IRC knowing a) he was using it because he uses everything Apple does and is an iOS developer, and b) he could reliably tell me the objective pros and cons, and if it sucked or not in general. There were some similar old friends in the channel as well who were using it in late-beta and provided input.

Mike and I go way back. When we first met I was around 16 and he was around 18 and we both were pack-a-day smokers and I would make him buy me cigarettes constantly. Over 10 years later, he's a well established developer and family man, and has the disputatious title of being the first person in the state he lives in to purchase an iPhone on their original retail release date; and we both quit smoking years ago (at different times for different reasons).

Anyway, the general consensus was that iTunes Match didn't seem to suck, so I signed up in the first week and spent a day making iTunes the center of my music world, which wasn't that bad overall. The biggest impedance was simply the ~12,000 songs I was working with.

I think it is safe to say I wouldn't feel compelled to whine about iTunes Match nearly as badly if my music collection were, say, 1/10 the size. But it isn't -- my collection is large-ish (oh, I've seen much bigger collections, so I salute the people who scoff at calling ~12,000 well organized songs "large-ish"); I like music; I like collecting music. It's all well-ripped and well-tagged and well-organized too (which went a long way in making my conversion to iTunes not that bad).

I make no comment as to my taste or selection; to each their own!


The consequences of not having network access are too dire, and it doesn't save enough stuff locally

One of the first things I noticed about iTunes Match was that it seemed to be smartly downloading songs as I listened to them and storing local copies. The first time I went to listen to music on my phone without reliable network access, I was thankful for this feature, but I quickly found it was only saving around 50-100 songs and I wasn't happy with my local selection. On one hand I was happy that I no longer had to manually manage gigs of music on my phone and there was significantly more free space (that I didn't particularly need), but on the other hand I didn't seem to even have a complete album available to me when I went offline the first few times.

Sure, this could (probably/maybe/eventually) be helped with settings somewhere, but the iOS settings are just getting too big; I feel embarrassed to have found out about turning "Simple Password Lock" off just a few days ago. My argument against having to toggle knobs is that making customers not feel totally screwed when they lose network access -- which is going to happen -- should have been in the top-3-ish design goals. I felt screwed when I went offline and tried to listen to my music, so now I keep at least a dozen full albums manually downloaded, and avoiding the manual management of how my devices access my music is like the whole point of using iTunes Match in the first place.

The Windows version of iTunes still sucks in comparison to the OSX version

I use an OSX laptop at home and a Windows 7 PC at work and that's how I want to live my computing life. I could request any PC I wanted at work, and I want to use Windows 7 because it best fits the needs of my job. I could also buy any PC I wanted to for home, but I like my Macbook that turns 4 years old this month and still looks 90% new... although it really needs a nice, big SSD.

The performance and stability of iTunes between the two operating systems is simply a joke to contrast; the Windows version sucks in comparison, and anyone who has been in the position to regularly compare the two for any amount of time will probably agree with me: it's always been like this.

Can we just accept this is true?

Or, 5 things I hate about iTunes in Windows that don't happen in OSX: 1) it randomly restarts itself every time I close it and I have no idea why (even after reinstalling the whole OS), 2) it crashes monthly (my work PC averages 2-3 month uptimes), 3) it's one of the slowest and most unresponsive applications I use regularly, especially when it hasn't been used it in the last 5 minutes, 4) the updater used to automatically try to install Safari every single time iTunes needed to be updated (that was really stupid Apple), 5) the hotkeys and UIX suck in general in Windows because they try to be like OSX to varying degrees of success; for example, you only recently (6-12 months) got the ability to easily add large amounts of specific folders via cntrl+click.

My intention is not to talk about the pros and cons of using iTunes as a music player (<whine>I have to toggle a lot of knobs to be content with it as the center of my music life!</whine>), but I did want to call out some specific things that have bothered me about the Windows experience of using iTunes that are non-existent or significantly less of a problem in OSX.

As someone who works with developers, I understand the myriad of programming reasons that could explain and contribute to why this is the case. I bet the parts of Apple's spaceships -- I mean campuses -- that spend all day dealing with Windows APIs are relatively lonely, loathsome corners. And as someone who works with people who wear suits, I have a general idea of the myriad of business reasons to not really care that iTunes sucks in Windows -- go buy a Mac: problem solved, right?

And to be fair, using iTunes in Windows has gotten significantly better over the last 6-12 months. But I'm still whiny. And to the nerds, we're talking about cleanly-ran, fully patched, well taken care of OSX Lion and Windows 7 Ultimate boxes running on hardware that never exhibits any problems, and I've been taking computers apart since I was like 10 years old and working full-time in IT since I was 16 so, respectfully, lend me a little qualification to say the root of my problems are not the simple fact that I suck at computers (but, hey, anything is possible).

It's stable enough to be generally usable, but unstable enough to be a pain in the ass sometimes

First and foremost, from an engineering perspective, let me frankly say iTunes Match sounds pretty fucking cool to figure out how to do well and manage effectively. What a fun project that must be (I hope). Thinking about the system architecture and server resources needed to run iTunes Match and all the little software tricks you could pull (a wet dream for anyone from file system to database to network to deduplication nerds -- especially if it's all on modern hardware you manage yourself, Unix-based, and virtual!) to make the whole operation very efficient and a perfect harmony of redundancy and availability; oh, and the scale -- so fun. I'm gonna guess, overall, that Apple pulled all the tricks off pretty well, cause I'll happily bet their engineering folks don't suck. Other than I occasionally hear this totally unconfirmed rumor that their whole operation runs on Windows Azure which, well, if true (and I have never seen actual evidence that it is true), beyond the obvious irony, I'm sorry.

But it still breaks like weekly for me. I cannot count how many times I have had to go turn iTunes Match off and then back on to fix it. Granted, this (usually) takes about 5 minutes to do (and, in Windows, freezes the rest of iTunes for most of that time), and (usually) fixes all my problems, but it is stupid that the best solution to everything is the brain-dead nuke-and-restore option; it's a hallmark of poor design. Remember when that was the default solution to most Windows problems? Cause I sure do, and it sucked (and it still is the best solution in a not insignificant number of Windows cases, but it seems to me even that is becoming the exception if you're not running thin clients already).

Specifically, it stops working in Windows pretty much every time I have had iTunes open for weeks, iTunes Match connected fine (as far as I know; my only connectivity status information is a cloud icon about the size of favicon) the whole time, and then I have to close iTunes and re-open it (say, for an update, or simply on accident; also, often after rebooting). It just sits there with the little cloud icon in the "waiting" animation, denying me access to all of my cloud-stored music, and giving me zero output what-so-ever about what it is actually doing. It's not my internet; we're talking 30/30 SLA fiber here. It's fucking iTunes or iTunes Match fucking up and that's all there is to it. At this point -- in Windows -- I have manually (re)downloaded my entire cloud-stored music collection onto my local hard drive just so I can actually listen to Pet Sounds when I really want to listen to Pet Sounds regardless of how broken iTunes Match feels like being at the time.

I have significantly less problems with stability in OSX and iOS (and those devices aren't on wired, fancy fiber lines the majority of the time!), but the same thing still happens everywhere I go.

Overall, I think iTunes Match has a long ways go to meet that famous Apple goal of "it just works" consistently -- and that's unfortunate because that's where I expect every single Apple product to be the second I buy it. Again, to be fair, it is getting slightly better as time goes on.

But it's been 7 months and you guys have like a 1,000 billion dollars in liquid fucking cash just sitting in like a checking-with-interest account or something! Start writing checks, knocking heads, and build a fucking time machine if that's what it takes cause we all know Apple could build a time machine if they really wanted to; Apple can do anything. Make it work!

If you want more specifics and proof regarding iTunes Match's inconsistent stability, some quick Googles will lead you to hundreds of whiners like myself.

The exceptions -- the songs iTunes Match simply does not deal with in any productive way -- are another hallmark of bad design

In my ~12,000 songs I currently have 3 "exceptions" that iTunes Match simply chokes on no matter what I try (re-add, re-tag, re-encode, re-rip, re-create, etc) and always has since day 1 (again, to be fair, I used to have several dozen exceptions, and right now I have exactly 3):
  1. Cake - Hem of Your Garment (Prolonging the Magic, 1998)
  2. Jay-Z - Intro/A Million and One Questions/Rhyme No More (In My Lifetime, Vol. 1, 1997)
  3. Jay-Z - Izzo (H.O.V.A.) (Unplugged, 2001)
First off, Apple, ya'll are starting to sound a little like you're fucking with Jay-Z, and no matter how big of a juggernaut you know you are, do not underestimate that man. And Jay-Z, will you please make 1 phone call to Tim Cook and make iTunes Match work perfectly? "Difficult takes a day, impossible takes a week," right?

I respect that this represents (exactly) 0.0000245% of my music collection, and that's why they are called exceptions, but the end result to me is by converting my entire music-life to iTunes Match, I have lost access to these 3 songs (without jumping through hoops by adding them locally). For me, for these 3 songs, it's not the end of the world (but Izzo -- really?), but think about that person out there whose favorite song is falling into the "I'm just fucked" category of songs.

That particular version of the all-knowing cloud icon means the song is cloud-fucked

You're just pissing me off because it seems like such a brain-dead easy problem to solve: you can't match the song, you can't "deal with" the song, your code is not working -- you hit an exception; great -- that is not really relevant; go QA it -- just upload the song and deal with it for me and me alone and let me have my song. It's like 10 megs of data for all 3 of my exceptions. You have 1,000 billion dollars, you can afford to give me 10 megs of data in your (I'm sure) fucking amazing datacenters, and you can afford to scale that to every single iTunes Match users' list of personal "exceptions"; not to mention: didn't I pay you guys something like $25 bucks a year to use this thing in the first place?

Overall, I still love iTunes Match more than I hate it and have been using it the entire time I wrote this

Even with all that cathartic whining out of my system -- and, whew, that was a lot of whining -- I still think it's a cool service and I will be somewhat hesitantly paying for another year when November rolls around if things remain at the status-quo or, obviously, get better.

It's cool, it's convenient, using iTunes isn't the end of the world (prior to iTunes, I used ext3 + samba + Winamp 2.95 + manually managing iTunes for my phone/car-iPod for like... ever, and I still use that method to listen to stuff occasionally for various reasons, but 90% of my music-life is officially done via iTunes/iOS, which was honestly a fairly radical change in my computing-life). It works well enough most of the time and has enough knobs and band-aids available to force it into usability (aka going back to storing shit locally).

But it's not perfect, and call me a pathetic, whiny nerd (it wouldn't be the first time), but I don't see why it can't be perfect. I strongly believe you know who else would want it to be perfect too (and immediately acknowledge I don't know shit about you know who else).

During the two hours I spent writing this post I was using iTunes Match the entire time and rocked out to a few songs, so life isn't all that bad; just make it perfect, especially in Windows, thanks in advance.

What I listened to while I wrote this post, and prior to that; it's all about the music

Finally, the bug with iTunes Match matching censored versions of songs was really bad for a while, seems to be getting better, but has currently ruined like 10% of my music collection and I get fucking pissed when I can't belt out profane rap lyrics while flying down the freeway.