Over the past few years I've taken some snapshots of the family. My Dad's a very competent photgrapher; he's grabbed some amazing candids of people for many years. Me, I just point'n'shoot. I thought it would be fun to put some of these photos online, although they're probably boring for everyone but the people in them.
Being a software enthusiast I thought that I'd look around for an open source photo album package. I didn't have to look far, although I did end up looking pretty widely at the category. Which leads to:
This category of software is a pretty good example of "just because you can - doesn't mean you should." In other words, there are far too many of these programs (current count: 44)
and almost all of them are more-or-less the same. The problem is that there are so many that it becomes difficult to pick a good one without wasting time wading through 3 or 4 (or 15 or 20) that are a complete waste of everybody's time.
I know I shouldn't rag on people for trying to do the right thing, but in this case I think people are actually hurting the open source community by releasing yet another half-baked project which will suck resources that might be better focussed on one or two that have a chance to become decent.
So if you're thinking of releasing your cheezy web picture album perl script - DON'T
! Even if it has some spiffy feature that none have, please swallow your pride and add that feature to someone else's package. We'll all be better off in the long run.
Think I'm kidding? Try a search for "album":
Without further ado, my experience with these packages (or notes of ones I've seen on freshmeat):
- version 1.2.9 as of 2001-08-16 http://mig.sf.net/
- version 2.3 as of 2001-07-17 http://ambient.2y.net/leif/projects/photoshrink/
Written in python, generates static pages. Recent release "eliminates the old, obfuscated, custom text files", which is certainly a good thing to do.
- version 1.0.5 as of 2001-07-13 http://www.alevans.com/geekery.html#ThumbNails
perl, mostly static but with a CGI for some reason or other. Has a daemon which you can run to update the site automatically (if you don't know how to use cron).
- version 1.4.2 as of 2004-02-04 http://gallery.menalto.com/
Dynamic PHP, lots of features. Rather pretentious name since there are at least 4 other packages that have "gallery" in the name.
- version 0.2.3 as of 2001-08-14 http://www.slooze.com/
Dynamic PHP. Probably the best docs of any of the packages I've seen so far. Uses dynamic PHP, text files or databases.
- version 1.3.2 as of 2001-09-11 http://www.bearteam.org/tof/
Quote the author: "based on slooze, and
additionally has viewing rights, picture rating and sorting by rate,
indexing with keywords, picture upload through the web, thumbnail creation,
and multiple languages support."
- version 0.19 as of 2001-07-03 http://www.cynox.ch/cyphor/
Requires PHP4 and mysql, I didn't get much beyond that.
- version 1.2 as of 2001-06-26 http://www.anders.com/projects/webgallery/
perl, imagemagick, builds static web pages.
- version 2.3 as of 2001-06-29 http://isomerica.net/~dpn/jpg2html/
perl, has some special features for owners of Mavica digital cameras.
- version 1.3.8 as of 2001-06-13 http://www.breu.org/pharch/
cgi script, 770 lines of perl.
Strange and rigid file layout, html is munged in with the perl (hard to change style), generates bogus html.
GTK program to build a static photo archive. Not bad, actually, but the author has done the right thing and discontinued the project. Thanks BB!
- version 3.3.1 as of 2001-06-13 http://puchol.com/cpg/software/cthumb/
Gotta check this one out - it looks feature-rich.
My Photo Gallery
- version 1.9 as of 2001-06-11 http://www.fuzzymonkey.org/perl/
Results look good, dynamic approach.
- version 0.71 as of 2001-06-14 http://ids.sourceforge.net/
perl cgi, generates pages on the fly.
- version 1.01 as of 2001-06-17 http://www.bb-zone.com/zope/bbzone/projects/bbgallery
perl, generates static web pages, written by the same guy that did BBPic. html embedded in perl (yuk).
- version 0.1.0 as of 2001-06-19 http://www.phatinum.org/AutoTGA/
Yet another! Obviously there aren't enough already in existence, and thanks to sourceforge and freshmeat every nitwit who can write 200 lines of perl can now have their own project. This one features either command-line or CGI operation.
Martin's Photo Frame
- version 2.1 as of 2001-06-24 http://dougiamas.com/photoalbum
Dynamic PHP. Funny quote: "aims to make it as easy as possible to throw up a bunch of commented photos with thumbnails on the web."
- "yet another php photo album", version 3.1 as of 2001-06-29. http://manu.agat.net/yappa/
Begs the question if you know that it's "yet another" then why bother?
- version 2.0.2 as of 2001-06-29 http://phpix.org/
Don't know much about this one.
Atomic Photo Album
- version 0.9 as of 2001-09-03 http://www.ece.fr:8000/~charissi/atomic/
PHP, seems to be pretty feature-rich. I'd worry about radiactive leakage, though.
- version 2.1 as of 2001-03-04 http://Welcome.To/PicBook/
- version 1.0 as of 2001-07-06.
Another shell script (proving that my comment above is incorrect).
- version 2.61 as of 2001-08-08.
PHP, dynamic. Looks like a fork of "Martin's photo frame".
- version 2.01 as of 2001-08-13 http://webmagick.sourceforge.net/
Web Photo Album
- version 1.1 as of 2001-08-16 http://www.robertk.com/source/
version 1.1 as of 2001-09-07 http://curator.sourceforge.net/
Python, imagemagick. Generates static pages.
version 0.1 as of 2001-09-08 http://wepidia.sourceforge.net/
zero info about this program on its site and I don't care enough anymore to d/l it and poke around in its source code.
- version 0.94e as of 2001-09-11 http://www.liveframe.org/
Image Viewer Applet
- version 1.0 as of 2001-09-11 http://www.ionet.de/iva/
So far this is the only Java Applet of the bunch, which isn't really surprising given that Java applets have never really taken off.
HTML Slide Generator
- version 1.4 as of 2001-12-25 http://almen.wipcom.it/htmlslide/
From Italy. perl, but claims to be linux-only, generates static pages. Has configurable themes.
Kavlon Image Gallery
- version "09/24/2001 bundle 4" as of 2001-09-24 http://mlug.missouri.edu/~mogmios/projects/
Dynamic PHP, mysql back-end. Looks fairly feature-rich, e.g. has features such as user-moderation.
- version 0.1-2 as of 2001-10-05 http://qgallery.sourceforge.net/
Written in C, generates static pages. Nice feature: generates output in a different place than input so you can experiment easily.
- version 1.0 as of 2001-10-19 http://tjw.org/dmi/
PHP, dynamic. Claims to require very little (or no) setup. Ironically, the author notes that it's "yet another" PHP image gallery script.
- version 0.2 as of 2001-10-21 http://www.pepperview.com/lefab/ezalbum/
Dynamic PHP, stores album descriptions in XML. Doesn't need a database back-end.
- version 1.0.1 as of 2001-10-27 http://uslinux.net/software/tigger/
Cute name, but otherwise appears to be yet another perl script. Generates static html.
- version 1.0 as of 2001-11-14 http://nailer.screwdriver.net/
PHP, dynamic. Looks pretty easy to set up.
JCS Image Display
- version 1.0.0 as of 2001-11-28 http://www.jcs.k12.oh.us/devel/
- 0.5.3 as of 2001-12-28 http://packages.debian.org/unstable/graphics/galrey.html
Seen in the Debian distro, not sure what the home page is. perl, static.
- 1.1.9 as of 2002-06-05 http://bins.sautret.org/
perl, static. A fork of the SWIGS project.
- version 0.4 as of 2002-06-05 http://legart.dk/code.html
dynamic, mod_perl handler.
Piawg Is a Web Gallery
- version 0.0.10 as of 2002-02-15 http://rodolphe.quiedeville.org/piawg/
Appears to be static, supports themes.
- version 0.2.1 as of 2002-10-25 http://picklegallery.sourceforge.net/
Dynamic PHP. Evidently oriented towards users who have limited ability to configure their machines. Funny quote from the website:
But there are a lot of gallery systems, why use picKLE?
It has a funny name dammit!
- version 2004-02-02 http://www.splitbrain.org/Programming/PHP/mypictures/index.php
Dynamic PHP, looks like a file browser interface. Has a good idea of storing comments as JFIF metadata inside the images themselves. Agrees with my FightEntropy
- version 2.11 as of 2001-06-26 http://marginalhacks.com/Hacks/album/
Static perl, has themes. I've tried this one and it works well. It doesn't depend on funky software, the themes are easy to hack and it doesn't require strange data files for it to run (just point it at a directory full of jpg files).
I built part of the caboteria photo album with this script and I'm pleased with the results. I recommend this package.
A note about security
These packages tend to fall into two categories: those that generate a bunch of static pages and those that generate pages on the fly. Clearly the latter has more functional potential, as it can provide picture upload, dynamic comments, etc. What shouldn't be overlooked, however, are the security implications of the dynamic approach. If you generate a bunch of static pages and put them in a viewable path then you haven't added any additional security risk to your server beyond your web server software. Every CGI, however, is a new program which gets run each time someone looks at a page. I don't know about you, but I feel fairly confident that most of the obvious (and non-obvious) security holes in Apache have been found and fixed. OTOH, I really can't say the same thing about "Ed's picture album CGI program."
In summary, why expose yourself to more risk than you need to? Use the static approach.
Think I'm kidding? On 2001-08-13 one of these packages (name withheld because I don't want to single anyone out) posted a new version with the comment A major security bug which allows visitors to view just about anything the script has access to on your system has been fixed.
Now, how many such bugs remain, and how many of these packages have similar bugs that nobody's taken the time to fix?
Put-up or shut-up time
OK, so what did I end up doing? After bouncing around and trying a bunch of packages, I found that album
seems to work well. I didn't want to have to maintain a separate software system just to show photos, though, so in the end I worked out a fairly simple hack to TWiki
(the system that serves these pages) to allow it to handle photo albums reasonably well. I like to think that this underscores my original point, which is that for most common tasks there's already a program to automate it, and it's better to enhance someone else's software than create an entirely new program, even if you think it would be better than the other guy's.
If you're a fan of TWiki you can get the photo album hack at: http://twiki.org/cgi-bin/view/Codev/TWikiPhotoAlbum
- 14 Jun 2001 - 04 Feb 2004