Okay, this is hardly on a par with the Pugs diaries, but then again I'm not a fucking scary genius like Audrey. Bear that in mind, sunshine, alright?
Anyway. After another six or so hours of hacking away on and off I now have a super-basic photo album system working, complete with tags. Although at present if you want to put photos into it you have to do it with SQL. By hand. But it works. Obviously sorting out out a tool for that is the next step.
My to-do list after that:
Talking of SQL, I discovered on the way that SQLite changed binary database formats again in January. Of course, the way I discovered it was an SQLite error message: "unsupported file format(1) at dbdimp.c". This caused me no small confusion, since I'd created the database with a freshly-downloaded sqlite3 binary. I eventually found out via careful Googling that the format had changed and worked out that I needed a newer DBD::SQLite. But honestly, how hard would it have been for the SQLite guy(s[?]) to implement some form of version number parameter in the format? An error saying "This database was created by a newer version of SQLite" would have been much more helpful.
* This is my thrilling code name for the project. "use PhotoThing;" - so elegant, no? (Er, no. - Ed.)