About the Photo Album

Why I made the album

While helping my stepfather set up his new scanner in early 1998, I thought about photos. I had hundreds of photos at home sitting in a box, pictures of my friends, my family, my dogs. All of them were linked to memories. Some photos would make me laugh, some were bittersweet. My high school graduation was in that box, my trips to Cook Forest, my friends' weddings, my former girlfriends. I'm sure that everyone has a box of photos like mine sitting in a closet or attic, rarely taken out.

This album is an attempt to organize my box of photos. I tag each photo with some information, such as the names of the people in the photo, the date the photo was taken, the occasion (if any), and any other data which will help put the photo into context. Then I can search the album for all photos taken at Cook Forest, or the photos from Christmas 1997, or all of the photos with my friend Eric and my sister's dog Abu (Eric likes to throw sticks and Abu likes to fetch them (but not return them)).

During the summer of 1999 I got a digital camera, a Nikon Coolpix 950. Now most of the new photos come from that.

Why is the album on the web

These photos are of great interest to me, of some interest to my friends and family, and of virtually no interest to the rest of humanity. So why are they on the Web?

First, as I said, the photos are of some interest to people close to me. My family and friends are spread across the United States. The web is a convenient way for them to access the album from their home city.

I prefer a platform-independent application. I run NetBSD on my computers, but my stepfather runs Windows and my friend Steve runs MacOS. By using the web, all of us can view the pictures.

A photo application is inherently a graphical application. But building a GUI is difficult. Most of my programming experience is with building sysadmin tools which don't need a GUI, so I would have had to spend quite a long time learning the ins and outs of graphical programming. CGI scripts allow me to focus on the task at hand and let the web browser do the graphics.

How the images are stored

My photos come from two places. Most new photos come from my digital camera, which takes pictures at 1600x1200. Other photos are scanned, usually at 300dpi, creating roughly 1800x1200 images. Both of these sizes are far too large for most monitors and for most dialup lines; however, I think that it's important to preserve the image in the best possible quality. Thus, I make the large image available but I also generate more manageable versions of the photos. The photos are stored in JPEG format which, when used with high "quality" settings, is a good size/quality compromise.

The original image is exactly what my scanner or camera generated. The full image is a touched-up version of the original; it may be rotated or lightened or cropped. I then create smaller images; the medium has a maximum dimension of 800 pixel and the small has a max of 480 pixels. Finally I create a thumb image (short for thumbnail), which is 128 pixels in its largest dimension.

In addition to the scaled down images, each photo has an information file associated with it which stores the date, people, locations, comments, etc. The information files are currently in Perl Data::Dumper format. Perl is likely to be around for a while, and a trivial perl script will translate the format into another if needed. If I ever use another language to parse the files I'll probably change the format of the files.

How the album works

The album consists of several CGI scripts written in Perl using the libwww modules. These modules take most of the drudgework out of CGI scripts. I use the Text::Template module to generate the HTML pages. I've written a Photo module to hide the details of the file formats I use.


Return to top of album