Since we finished Latin, my Mondays are pretty much free time for me. I spent yesterday writing some code. (I even wrote unit tests and put my changes under source control.)
The overall project is to come up with a workflow to manage and make use of digital images. There are two sources: cameras on the one hand, and scanners on the other. The challenges are:
- to review images and junk the ones not worth keeping. This isn’t really a programming job. If it was, I’d be doing a better job of it. Over the last decade I’ve accumulated about 20 GB of photographs and scans. I don’t have a clue how I’m going to crack this nut.
- to rotate and crop images appropriately. It might be necessary to enhance them, although I tend to think of that as something you do with an original, not something you do before you file it away as an original.
- to name them and apply other meta-data.
Now, iPhoto could do all this and do it very well. Indeed, the only problem with iPhoto is that it requires you to maintain your collection on a single machine. (You can make a backup elsewhere, but there is only one iPhoto library. This is a weakness iPhoto shares with iTunes, and in the case of iPhoto, there’s not even a recording industry to blame it on.) (Another problem with iPhoto is that it uses a bizarre filing system designed, I think, to sell external hard drives for backups. But those are cheap.)
Anyway, there are a million problems, and I’m checking them off, about one a month. Lately what I’m working on is getting the files off the camera/scanner and onto a computer with an appropriate name. That’s a simple cp command, with a few extra twists. For example, cameras and scanners use the FAT filing system, so images come with their permissions set to 0777
, when they should probably be 0644
. A chmod fixes that.
Scans, in particular, represent a challenge, because they don’t have anyplace to store metadata except the JPEG comment field. A few months ago, however, I hit on the idea of grafting an EXIF header into the scan’s image file. I went looking for sample images and found one from a camera I don’t own and never will. Then I modify the EXIF data appropriately, and bob’s your uncle. I should patent it. (Probably someone already has.)