Saturday, June 7, 2008

Aperture 2.0

I'm a fulltime software developer but I'm also flirting with the world of sports photography. This dance has brought me into a world where I've had to learn how to use some tools I haven't worked with before in order to be effective. A very commonly used set of tools photojournalists use is a combination of PhotoShop and PhotoMechanic.

I looked around for some alternatives to those pricey products and found Aperture. At the time it was version 1.5 and I was able to get a good deal on a version of the product. It quickly became obvious that Aperture was unbelievably slow and consumed vast quantities of I/O while functioning.

As a software developer I keep a close eye on what my computer's doing. I have graphs in my titlebar that show CPU, memory, disk, and network activity as well as my fan speed. It helps me troubleshoot slowness problems because I have an idea of what my computers doing when I get the rainbow spinny ball of eternal bliss. Most of the time my disk is spinning and I'm waiting on some I/O operations to complete.

When Aperture 2.0 came out performance greatly improved. Rather than taking 5 - 10 minutes for Aperture to start it now took < 20 seconds. I was so happy...

With my internal hard disk shrinking in free space I decided to learn how Aperture handles vaults, libraries, projects, folders, and albums from a distributed standpoint. My desire was simple: offload a "chunk" of my photos, and keep the rest. But, if I could still hold references to those offloaded chunks and be able to access them when I'm here at home on my local network (or attached to a local hard disk) that'd be great.

Aperture is supposed to manage your entire photo library. My desire to offload a "chunk" seems to fall under that mission, right? So this should be a perfectly natural thing for Aperture to do, right? Wrong...

What I discovered during this process was a multitude of problems from both a design and implementation standpoint. I looked to the "vault" concept as a possible solution. Perhaps I could create a vault for several projects and then remove the projects after their data has been moved into the vault. Nope. The vault is an "all or nothing" concept. All your library goes into the vault, or none of it goes.

Another key frustration I had occurred when I tried to place my vault on an NFS mount. Nope, you can't create a vault on a network volume. But, you can create a vault on a locally attached storage device, copy said vault to a server, disconnect the storage device, and then "Update Path" back in Aperture. Through this workaround you can effectively place your vault on network attached storage. But be careful - placing a dash (-) or colons (:) in your vault names seems to make Aperture angry. I was unable to do the above procedure with names like "Aperture Vault: 2008-06-07", but it all the sudden worked when I used "Aperture Vault 20080607". Thanks Apple for that nice bit of wizardry.

After I moved ALL of my images into the vault I tried to restore the contents of the vault into a Library stored over on the network attached storage device. This actually worked, and I was impressed to watch my network traffic stay at a pretty constant 50Mbps down and 50Mbps up as Aperture chewed through my 40GB vault for roughly 4 hours.

When I was finished I fired up Aperture and discovered that the thumbnails and previews had been lost, and Aperture had to re-calculate them all. Great... So now I have to wait around for another 50 hours while Aperture goes through over a year's worth of photos? EPIC FAIL.

The problem I have is that I almost always take my laptop with me on photographic assignments. I do so because I often publish photos during halftime or immediately following a game, and I clearly need my laptop to do that. I also shoot frequently, sometimes as many as 7 - 10 events per week. If I'm shooting in RAW mode, which I've been doing more of lately, I can consume quite a hefty amount of disk space. With only 45GB free on my MBP's internal hard drive after I load all my software development tools and code I don't exactly have oodles of space.

Thus I can't tow around my entire image archive with me all the time. At the same time, I often need access to photos from the last 5 or 6 assignments I've had for a team in case I need a file photo to use for a story. Vaults seem like a great solution to my problem - I can keep a cold vault that consists of all of last year's photos and just leave that up on my file server using the "Update Path" trick above. But vaults fall apart for me because I can't choose which projects, folders, and albums I want to put into the vault. Thus I can't constrain a vault to only "Maryland Terrapins" events. I'm forced to comingle my personal photos along with work assignments in my vault. That's insane!

There's a deep-rooted community in the PhotoShop/PhotoMechanic camp. And Lightroom is now on the scene. Aperture's the new kid on the block and Apple has made some epic stumbles with it in so far as the performance of version 1, and the lack of a decent backup solution in version 2. If Apple has any hope of eroding some PS/PM and Lightroom market share they're going to have to reach beyond the cheesy .mac/iPhoto mentality and start considering how photojournalists do their jobs. If you can appeal to them and give them a reason to switch you can gain some market share. That means creating a good mobile vs docked profile mode, synchronized projects and folders, and more granular vaults. Oh ya, and would it kill you to provide a plugin or extension capability? My inability to post to PhotoShelter from within Aperture makes my life a drag.

All in all I'm going to look into Lightroom. I got into Aperture because the edit controls were considerably easier to apply than Photoshop. Ironically Aperture was designed to be your entire workflow solution and that's the reason I'm now looking at other options (because Aperture's solution to my workflow doesn't scale beyond a few dozen photo assignments due to my limited disk space). A coworker of mine uses Lightroom - maybe I'll give it a shot.

Another nail in the coffin for my darling Apple.

Epic Fail: Apple TV

In late 1999 I was introduced to TiVO by my friend SDW. I purchased one a year later, and my first hardware mod was to add a network card to it. Years later my wife and I upgraded to Sony SAT-T60's and I went through a lot of work to mod those with TurboNet cards. We've used them for 3-4 years and when they finally broke we went to the Phillips DSR-704 series.

I've been through the grind of unwrapping official software updates from TiVO and merging in changes into the modified OS environment. The frustration of that grind grew on me, and when I was finally able to "disable OS updates" my life got considerably better...

Years later a coworker of mine at Zenoss introduced me to Apple TV. It looked beautiful - a sleek little network-centric box with HDMI outputs that could display high definition multimedia content. I looked with a stearn eye towards my DVD collection with thoughts of moving all of that plastic and metal onto a spinning 1TB disk in the basement, and accessing said disk over the network via an Apple TV.

My experience with AppleTV has been terrible. You might as well call that device AwfulTV, because that's what it is. The few redeeming qualities of the AppleTV are quickly countermanded by the nerve-wracking inadequacies in it's usability. Let's take the remote control for starters.

The remote control sums up Apple's research into usability: vapor. Apple may be masters of the portable music device industry but their first entry into the multimedia environment is a bust. The remote lacks several basic features that make remotes useful: volume control, power on/off, glow-in-the-dark. My programmable TiVO remote contains volume up/down controls as well as a TV on/off switch, and thus allows me to operate my TV and my TiVO using a single remote.

My AppleTV remote lacks a TV on/off button as well as volume, meaning I need at least 1 additional remote next to me when enjoying content through my AppleTV. No thanks Apple, you missed the boat on this one. A remote without a volume up/down and TV on/off makes viewing impossible.

The size of the remote is also offensive. It's too small for any adult's hands and can't easily be cradled in your palm while flipping through the content on the device. In contrast the TiVO remote is contoured and clam shaped, resting firmly and gently in your hand.

Apple also fumbled in so far as their openness of the platform. Through several tricks you can coax the OS into AFP mounting a directory from another server. Also, through some software named Sapphire you can index your movies and TV shows and display them in an aesthetically pleasing menu. When Sapphire, AFP, and your AppleTV works it's a wonderful thing. When it doesn't work, and that tends to happen often, you're left cursing at the box and wishing you had never purchased it.

Tonight my wife and I wanted to watch a Movie on the box. I started to click through the UI but was stopped by a flashing Apple logo on the screen. I've seen this happen before and through some debugging determined that the Apple logo appears when the Finder is starting up. Of course the AppleTV kept flashing the Apple logo as the Finder started up, crashed, and started up again, then crashed, and so on and so forth.

So there I am in my living room on my wife's MacBook Pro google searching for hits on a crashing Finder while she reads a book. EPIC FAIL. If the user of your device has to secure shell into the device and "tail -f" an obscure logfile on a Saturday night rather than use your device for it's intended purpose ... guess what - you've lost.

My relationship with AppleTV is officially over. My decision to cut my AppleTV loose was not made because of one or two isolated problems I've had with the device. My decision to rid my house of this device comes after days and weeks of problems that started the day I purchased it. I returned 3 units to 2 different stores before I encountered one where the drive control arm didn't tick.

When I finally received a working unit it ran version 1.1 of the OS, meaning I had to install Tiger on an firewire drive on my MBP and boot off it in order to create a patchstick that could backport the OS to 1.0. Then I moved forward with the AwkwardTV install, followed by Sapphire. Lastly I opened up AFP.

While doing all of this I encountered tons of dark corners in the operation of the device. For example, if you corrupt your plist file there's no way to recover it without re-scanning all your movies. No big deal right, just "re-index movies", right? No... When you have 200+ movies and Sapphire asks you to choose the correct name on 75% of them it actually takes up quite a lot of time. The same goes for TV shows.

I was also dumbfounded by the inner-knowledge one must have in order to navigate the menu system on the AppleTV using the Apple remote. There's no "back" button on the remote, and there's no UI clue on the AppleTV screens that says "if you click left or right on this screen you'll get a different menu." How are you supposed to know that?!

I'm just dumbfounded at how much time I've wasted tinkering around with my AppleTV. From piss-poor remote control design to usability issues in the menu system my AppleTV has been nothing but a headache. I'm astonished that Apple has blown it so badly with this device.

I had to install Perian and an A52 component in order to play most of my content. How can h264 not be supported out-of-the-box along with one of the most commonly used audio formats?!

I now turn my eyes towards the MythTV crowd. Perhaps the OSS community, through tools like VLC and ffmpeg, can provide me with a reasonable fanless solution to the challenge of displaying multimedia in my TV room. At the very least I won't have to jump through hoops to get NFS mounts working and hopefully I'll have basic tools like ps, lsof, and top installed.

Sorry Apple, but EPIC FAIL for you on your work with the AppleTV.