**Lightroom vs Aperture:** I've been using Apple's Aperture for over three years and use it to manage nearly 180,000 images. Today, I am switching to Lightroom. I really like Aperture's interface. When I first started using Aperture, it took me a few weeks of dedicated use to learn all of the keyboard shortcuts and tricks to speed up workflow. It wasn't until I became familiar with the many nuances of the program that I found Aperture to be both flexible and powerful. With a fast enough machine, Aperture is actually quite usable. I like that there is no constraint to workflow. I like that at any time, I can tab the Adjustment pane or HUD and tweak an image to my heart's content, or that I can always bring up the Keyword HUD and add a keyword. I really like the virtual image organization, which is so flexible that I never use the file system anymore to organize images for submissions, trip reports, or other projects.
However, during my many hours of time sitting in front of Aperture, I ran into so many problems -- consistently -- that I felt like I had to be very careful with they way I used the program.
Before I get into details, here are some quick pros and cons of Aperture, from my point of view:
- Not constrained to file system folder organization - User constrained to specific workflow - Built around virtual albums and smart albums - Clean interface
- Ridiculously slow update cycle - Long wait for new camera support - Small bugs left unfixed for years - Adjustments not improved in dot version upgrades - Previews unusable in practice (must be disabled for reasonable performance) - No XMP sidecar support (adjustments and keywords trapped in Aperture forever) - SQL Lite database is terribly slow and can take Aperture down - Frequent database corruption
Users of Aperture who only have 10-20,000 images will probably never run into the same problems I'm dealing with. I am managing terabytes of data -- nearly 200,000 images. This means that I that every once in awhile, I have to shuffle images around while upgrading and improving storage subsystems. In theory, Aperture should have no problem with this. Apple made a big deal about how the program was designed for photographers in the field who come back with projects that are then exported from a mobile computer and re-imported into a master database. I found that this export/import process worked MOST of the time, but occasionally resulted in library corruption. I never figured out when a project might export and re-import successfully, so I always kept backups of everything before doing any importing of projects.
### Case Study: Sea Shepherd
Adam Lau and I were photographers for Sea Shepherd's Operation Musashi, an anti-whaling campaign in Antarctica (immortalized by both Whale Wars and South Park). We were out in Australia and Antarctica for more than 3 months and captured tens of thousands of images, which we painstakingly organized down to a collection of 4,000 images tagged by person, vessel, location, weather, action and more. Aperture turned out to be a fantastic program to use for this, and we really enjoyed its flexibility in image organization. However, we had to deliver the images to Sea Shepherd, which is where the pain started.
We flew up to HQ in Friday Harbor and discovered that Sea Shepherd were, themselves, starting to use Aperture for their image library. Armed with a souped-up Mac Pro, they had simply dragged all of their images into an Aperture Library. It makes sense as a first step, but it turns out that if you try to do this with tens of thousands of images, your library will probably never work. When we arrived, the machine was still trying to build previews. During preview creation, Aperture is too slow to use for anything. Also, a copy of each image had been copied into the library, which was now hundreds of gigabytes in size. They didn't have enough space to store copies of images both inside of an Aperture library AND outside, in the normal file system.
I rebuilt their library and added images by reference, with previews off. It still took hours to build thumbnails, but after thumbnail creation was done, the new library was actually quite usable.
It was then our task to import our Operation Musashi images into their library, and we did what I always do when I return from an assignment. We clicked on our project in Aperture on my machine (which was meticulously organized), exported it, imported it into their library (on their machine), copied all of the files over, and re-connected them using *Manage Referenced Files*. After the import, we noticed that a good number of the images were missing thumbnails even after thumbnail creation was finished. The only way to get a thumbnail for these images was to do some sort of Adjustment operation (i.e. adjust the contrast, and it would build a thumbnail). Furthermore, there were images that were not only without a thumbnail, but were also pointing to the wrong place! These were also for some reason square (1:1 aspect ratio). Since Aperture thought these "images" were 0 x 0 pixels in dimension and 0 KB in size, it refused to re-connect them to the correct files -- ever. The re-connect button in *Manage Referenced Files* simply remained disabled even when we were pointing to the original file.
We could have fixed these corrupted images by re-importing each of them manually and then lifting and stamping adjustments and metadata from the corrupted images, but it would have been extremely tedious. Instead, we tried exporting and importing the project again. I'm not sure how many times it took to make it right, but it eventually worked, and every image was there in Sea Shepherd's master library. But you can imagine the sort of things we did to try to make it work. During export and import, we were almost literally afraid to touch the computer. I am by nature a multitasker, and I had to walk away from the computer because I was afraid that if I did something in another program, Aperture would do something wrong. This is not a fun situation to be in, and I realized then that I had lost faith in Aperture.
### Upgrading drives
I upgraded all of my drives a few months ago, and in the process of copying all of my files from the old drives to the new drives, I was forced to reconnect over 100,000 images in Aperture. The process took a long time because Aperture sometimes decides not to reconnect some files when you "Re-connect all". But when you ask it to reconnect again, more of them are successfully reconnected. I have seen this behavior on many machines, so it's not just isolated to mine. So while it doesn't always reconnect, it does so enough of the time that it might take 10-15 "Re-connect all" attempts for all of the files to be reconnected.
Anyway, so most of the files reconnected successfully, but not all of them did. I was confused, and tracked them down in Aperture, but for some reason, Aperture's "Re-connect" button was disabled when I pointed to the original file(s). They had all been corrupted in some way, and the only way to bring them back was to re-import them. This is not a problem if you are dealing with 10 files, but I was dealing with hundreds of images spread out over dozens of folders.
### October 30, 2009
My "Travel" images on my main photo machine is split across dozens of folders in two top-level folders. One folder holds project folders that are archived offsite. The other holds project folders that are not yet archived offsite. All of my data is backed up every night (incrementally) to a second volume on the machine, but ONLY the images that are not archived offsite are backed up to a NAS box in my closet.
The reason my backup process is so complicated is that I'm working with a lot of data. It's easy to copy 10GB on a whim, but copying a terabyte or three takes planning. My storage and backup scheme requires that I move a project from the "current" folder into the "archive" folder when it leaves the house and is safely archived in more than one physical location (2 or 3 copies at home, and 1 somewhere else).
Unfortunately, this means that I have to MOVE directories containing images that Aperture points to by reference. Because Aperture is running on a Mac using HFS+, it is supposed to be just fine with me moving images around. It USUALLY still points to an image after I move the file using the Finder. However, it isn't always OK with it. Sometimes, the image simply goes offline. This is great because I can just re-connect it. But sometimes, it does Really Bad things. Usually, it does one of these Really Bad Things:
1. The image thumbnail becomes square (1:1 aspect ratio). If this image is offline, it can never be re-connected because the Aperture thinks you're giving it the wrong image file. You are screwed. 2. The image thinks it's another image. The thumbnail shows one image, but viewing the image full size shows the correct one. Solution? Go into the Aperture library package and delete the thumbnails out of the project. 3. The image has a blank thumbnail, but still points to the correct image. Solution? Make an Adjustment, and then (optionally) undo it. Thumbnail rebuilds. 4. The image has a blank square thumbnail, and now points to a seemingly random file inside of the Aperture library package. Yes, you read that right. When Aperture tries to re-build this thumbnail, it flashes "Updating Library: Building Thumbnails: 1 Remaining" very quickly in the Activity windows, over and over again. It does this when you move the mouse over the thumbnail, or if you are trying to export it. See below for an example. There is no solution for this. You are absolutely screwed.
the blank square thumbnail is unrecoverable
Doing a "Show in Finder" results in the following location, which is deep inside the Aperture library instead of in the folder where the RAW file lives:
Doing a "Manage Referenced Files" verifies that Aperture is very confused. The fact that it's looking for a 0 x 0 pixel, 0KB file means that you can now NEVER reconnect it to the right file.
Here's a video that shows the bizarre flashing "Building Thumbnails" activity:
Anyway, on October 30, I did a massive offsite backup and file re-organization. I moved tens of thousands of images from one folder to another. Essentially, I did this:
> Genres -> Travel > Project Folder A
> Archived -> Travel > Project Folder A
I did this while Aperture was running. When I started browsing my library, I saw, in real time, that images were getting corrupted. Some thumbnails simply lost their aspect ratio, becoming square (distorted). Some thumbnails chose other images to represent (showing the wrong image), and some became the dreaded square blank thumbnail that points to some weird place inside the Aperture library. I saw this happen in real time, and I managed to capture some of it on video:
This newly-corrupted Aperture library is my main travel library. It contains all of my keywording and organization for all of the trips I've been on, EVER, and all of the submissions I've made to various stock agents, magazines, books, etc. To have this library become corrupted would be disastrous.
I have two backups, but without moving my image files back to where the originally lived, I knew that simply restoring my Aperture libraries and re-launching Aperture would again result in massive database corruption. I have NO IDEA what Aperture is trying to do. Presumably, it notices that the file has been moved, tries to do something, and hits a critical bug that results in corruption.
I've had enough of walking on eggshells, which is how I feel every time I use Aperture on a big library. I've tired of waiting for Aperture to fix its bugs. I'm tired of Aperture not supporting my new cameras.
**I'm switching to Lightroom as of today.**
I know that there are rumors of a new "Aperture X" that might come out in a month, and I'm sure that the next version of Aperture will be ahead of Lightroom in terms of feature set (until Lightroom catches up with its steady incremental upgrading, as it aways does), but without preserving data integrity, an application is useless.
Lightroom supports the writing of metadata into XMP sidecar files, and will maintain this XMP file for every image if a catalog is set to do so. Because of this, I know that in Lightroom, it is not possible to lose an image's adjustments and metadata as a result of a catastrophic database corruption.
It's going to be truly painful to have to organize and keyword my images again. I was by no means anywhere close to being done keywording all of my images, but there is quite a bit of metadata locked away in the crappy SQL Lite database that Aperture uses. I know that I can Export Masters from Aperture with an IPTC4XMP sidecar file for non-adjustment metadata, but the very fact that my Aperture library has been corrupted prevents me from being sure any export will include all of my files.
So there you go -- the reason I left the Aperture camp today.
I am disappointed, but it is an opportunity to start organizing from scratch. I think I'm going to have to hire some interns.
If you are depressed now after reading this, perhaps you should go browse my photos of swimming pigs! It cheered me up, but then I went to look at my pig album in Aperture and one of the thumbnails was missing.