Yesterday I did an “empty trash” command in iPhoto, to expunge 27 thousand photos I’d just deleted. Characteristically, the application hung. Well, it probably didn’t hang. After half an hour, I did a force quit, and on reopening the program and emptying the trash again, it told me there were about 5,000 photos to be deleted. Another 15 minutes wasn’t enough time for iPhoto to clean them up, so I force quit again, broke out a shell in Terminal and did:
$ cd ~/Pictures/
$ rm -rf iPhoto*
$ cd ~/Library/Caches
$ rm -rf com.apple.iPhoto
…which fixed things very nicely.
So ended a 27-month experiment with Apple’s end-user image management software. They also have a “pro” or “prosumer” product called Aperture, and if iPhoto is any indicator, I wouldn’t have it, even gift wrapped.
Between 2001 and 2009, I’d used my own set of tools to manage and manipulate my digital images, but when I got the MacBook, I decided to try iPhoto. That was two versions ago, and the things I disliked with ’09 weren’t fixed in ’10, and there wasn’t any sign they’ve been fixed in ’11 either.
What are those? Primarily two things:
- Speed. Or rather, its lack. The software just wasn’t very responsive. Dragging the elevator on a scroll bar felt sluggish, and if that’s not easy, what good is a photo management app?
- Noise. Running iPhoto was like playing Flash videos on YouTube: both cause my computer to heat up to where the fan runs. It doesn’t matter what I was doing in iPhoto; I could go away and drink a cup of coffee and it would just start overheating all by itself.
Now, I had some other complaints as well. I don’t need face recognition, and I would like text search, but Apple evidently has the opposite set of priorities. I would love to have uploads to social media sites, but the iPhoto way didn’t win me over at first blush, so I used other tools.
Sometime this summer, I gave up on iPhoto. Since then, I’ve spent my free time copying files out of the iPhoto library and renaming them and filing them elsewhere. I’d like to have tags, but what I’ve learned in 30 years with a Unix shell is that find(1) is pretty good at finding things:
$ find . -name '*whatever*'
for some really tricky things, I break out grep:
$ find . -name '*whatever*' \
| egrep -i 'one thing|another' \
| egrep -v 'but not this'
Yesterday, I finished the conversion and (after making lots of backups in lots of places on multiple drives), I emptied the trash in iPhoto. My fan hasn’t run since then.
I also noticed that while those 27K photos took 41 GB of space in iPhoto, they only occupy 38 GB in the filesytem. What was iPhoto doing with the other 3 GB?
Recovering eight or ten percent of a dataset isn’t chopped liver, but the space saving may prove eventually to be even more significant. iPhoto is monolithic. (By default, at least.) You put your files in there, and it’s a huge black box and you don’t need to worry your pretty head about what’s going on inside. But the filesystem gives me all kinds of options about how to manage my image files. For example, I can put different subsets of the data on different media, with symlinks connecting one part with another.
For now, I’ve stored everything in a single master folder. Within that, files are stored by year (2001, 2002, etc.). Within a year’s folder, I typically store files by the month (01-jan, 02-feb, …). Since I take the most photographs when I’m on vacation, I sometimes put vacation photos in their own folder (04-vac, etc.). Finally, I have a separate folder for video files called ‘movies‘. Those files are typically 10x or 20x as big as a photo, but I only have a handful, so I manage them as a collection.
The files themselves are typically given descriptive names (accident-minivan-01.jpg, home-oleanders-07.jpg) etc. Because I do so much work from the command line, I don’t put spaces in the names. In lieu of a space, I prefer a hyphen (-) to an underscore (_) because it doesn’t require a shift key.
In my next post, I’ll run through the tools I use to manipulate images.