After two weeks of pretty solid hacking in the evenings and the wee hours of the morning, I have an application for editing photographic metadata. I'm down to the details now, I think. With a little creativity, I'll even be able to make it run as a demo on the web. Maybe.
To write it took three months; to conceive it—three minutes; to collect the data in it—all my life.
I've been thinking about photographic metadata for a while now. My archive of digital photographs is easily in excess of 10,000 images. Ten thousand essentially uncatagorized images. Because they are easily sorted by date, I can usually find images associated with events: vacations, anniversaries, birthdays, working group meetings (if I know the date of the meeting), etc. But finding that picture of Ralphie that I took on the deck last summer (or was it the summer before?), or a particular image of the Eiffel Tower is much more difficult.
I need to catalog my images, or at least start cataloging new images so that the problem doesn't get any worse. I wrote JpegRDF to help, but being able to access the metadata isn't enough (and I've started taking raw images so it doesn't even help as much as it used to). I need to be able to easily add metadata, and eventually search it.
I've looked at a few applications that claim to do this, but none of them seemed satisfactory. Some stored the data in some database I couldn't (easily see how to) access. Some only allowed keywords or similar limited metadata. Most seemed unable to deal with “offline images”. I can store all the metadata for 10,000 images on my laptop, but I can't practically store all the images there.
I've made a couple of abortive attempts at writing something in this space. A long time ago, I tried something with Perl and Tk. More recently, I tried to use the “scripts” functionality in Nautilus. Nothing seemed quite right.
Inspired in part by Rails, I set out a few weeks ago to write it as a web application. Actually, I intended to write it with rails, but some version incompatibility between the current rails framework and the examples I could quickly find online stymied me. I did write it in Ruby though. Sweet language.
Here's what it looks like in use:
The selection of metadata (where, who, what, subject, title, and event in this case) is fully configurable. My choices, and some aspects of them, can be seen on the “properties” page:
Coming up, I'll write a few more essays about this project maybe make it possible for you to test drive it on the web. And catalog a whole lot of pictures, of course.