Programming Day

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:

  1. 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.
  2. 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.
  3. 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.)

Leave a Reply