tophermiller.com

Chris's Online Photo Album Software

I've had an interest in sharing digital photos since long before Flickr, Picasa, SmugMug, or Facebook existed. In fact, even before digital cameras were popular, I was scanning and organizing my photos digitally.

I guess I should have started a company, huh?

Version 0.5 (1998)

Anyway, my first coding in this area took place back in 1998. As a Christmas present for my family, I scanned a bunch of my Dad's old 35mm slides and put them on a CD. I needed a way to organize and navigate them.

So, I wrote some C code to read a folder structure and generate the navigation UI in HTML. This wasn't for a web site, it was for a CD, but the browser was still a good delivery mechanism, and static HTML was sufficient.

The Christmas present was a big hit. You can view the results here.

Version 1.0 (circa 2002)

A few years later, after getting a digital camera, learning Java, getting into web application design, and buying the domain tophermiller.com, I decided to make my web site an online photo album. So I took the same concept, that a folder hierarchy is a good way to organize photos and a web browser is a good way to browse them, and I built a java web app that did this dynamically.

Requirement #1: Easy re-organization. The key requirement for me was that I wanted to organize and re-organize my collection with the simple interface of folders in Windows Explorer (drag and drop baby!). Then I wanted the web site to update its navigation automatically based on this structure.

Requirement #2: No photo editing. Another annoyance I wanted to eliminate was the need to resize every photo to create a thumbnail and a viewable browser-sized image from the (often huge) original.

Requirement #3: Home hosting. I didn't want to upload my photos somewhere every time I had some to share. These were the days when broadband connections were still fairly slow (I had 1.5Mbps DSL). But even if not, uploading was still a time sink for which I didn't have the patience.

My web pages were generated from Java servlets that would read the file system and generate a hierarchical HTML navigation. Inside each folder was an index of thumbnails, and clicking a thumbnail would take you to a 640x480px viewable image. The thumbnails and viewables were generated with a batch process using a free tool called ImageMagick.

I hosted the whole thing in Tomcat (v3.0, originally) and, thanks to my static IP I got with my internet service, I was able to point my domain at a server in my house.

So in 2002, tophermiller.com was born as my own personal photo sharing site, and I never had to upload or resize anything or write a single HTML page!

Version 1.5 (2003-2007)

The obsession was still with me, though, and I wanted it to do more, so over the years I added some more features: With this feature set, version 1.5 is the current live, full-featured version of my photo sharing software.

Check out PhotoAlbum 1.5 in action


Version 2.0 (2010 + in progress)

In recent years, like any web app developer, I became interested in Ajax, JSon, JavaScript, and JQuery as a newer and better way of doing things. So, I'm in the process of re-building my photo album software with these "web 2.0" technologies. (I also breifly started a Flex version, but gave it up when Flash started going out of style.)

Now I just embed photoalbum.js in any web page, give it the right parameters, and supply the back-end servlet to deliver a JSon data structure with all the folder and image names. The DOM is built with JavaScript and CSS.

So far, all I have is the basic navigation and thumbnail generation functional. The rest of the feature set is still to come.

Check out PhotoAlbum 2.0 in action here


If you're interested in my source code, I'm happy to supply it "as is", just contact me.

Vision

Someday, when I have oodles of free time, I'd like to take this idea public and share it with the world. The idea would be a service you could install on your PC that is basically just a web server for the images and JSon data, with all the skinning being provided by my site. Then, the world could share their photos on the web, right from their home PC, with no uploads, no resizing, and folder-based organization!. You wouldn't even need your own domain or a static IP, because this service could dynamically update the mothership with its dynamically changing IP adress, and all content could be retrieved via the IP.

So there's my idea. Wanna pay me to write it? Contact me.


tophermiller.com | admin