New online photo album

Short version:
I have a new site for my photos, which can be checked out here. I should work better on mobile devices… Let me know if you find issues!

Long version:
While I do like to share my photos with others, I always found it difficult to find an easy and nice way to do so. I’m looking for an easy and mostly automated workflow to do four things:

  1. Post-processing of the photos: changing the light levels, cropping etc. I do this in Lightroom
  2. Organize the photos: some photos won’t go online, I want to give them titles etc.
  3. Make a website: not only generate some code, but also resize the pictures.
  4. Upload the website: preferably in such a way that you don’t have to re-upload everything all the time.

There different tools that can do this/parts of this:

  • Google Picasa: this program can do all four steps, but is flawed. The post-processing is not as professional as Lightroom and the website does not look very attractive. Another point is that you upload the pictures to Google, which I’m hesitant to do.
  • Adobe Lightroom: it is already a database of all your photos and it actually has some features to make a site of the pictures, but it makes one site of one event, not an album of several events.
  • Apple iPhoto: I used to use this and put the site on MobileMe, but Apple screwed me/us and removed the feature a year or so ago.
  • JAlbum: as a solution after iPhoto/MobileMe I used JAlbum. It is actually a very powerful program that does steps 2-4. It also has problems though. My oldest gripe is that it just feels bad: it is slow and it feels a bit foreign on my computer. I could sort of live with that, until I recently found out that it doesn’t work very well on iPads and iPhones. (1)

Something had to be done and if there is not a good solution out there, I would have to do it myself. This was the beginning of December. I spend some time looking for a solution, but ultimately didn’t find one. (2) I decided to spend the second week of my Christmas holidays to making a website.

I decided to focus on steps 2 and 3. Lightroom is a few orders of magnitude more complex and I’m happy with it. The smart uploading should solve itself if I do step 2 and 3 correctly. In the last few days I wrote a program (script) to do these steps. Step 2 involves making some sort of database with all the information, the challenge of step 3 is not so much compiling the HTML-code, but to make a good-looking website. Most of New Year’s Day I spent on making something nice in HTML and CSS. I also tried a bit of JavaScript, but decided that it wouldn’t be worth the effort.(3) I’m not really into web development, but it was nice to do.

For the database and compiling the website I used Python – my go-to language for doing anything more complicated than adding 2+2. For a second I doubted if I should write a Cocoa-program (native Mac), but I’m not good enough with it to make something useful in a few days. On January 2nd I spent time to figure out how to set it up. Like a good self-taught programmer, I decided to use separate classes for the album, events and photos.

In a different project I also used classes but that approach did not work now – quite frustrating. Lets say we have a child and a parent. The parent has a property “family name”. In the old project I had a school class and although it was useful to have a parent-class with the family name property, all the kids had different parents. They all inherited the family name property, but they did not share a common parent. Changing the family name of all the kids or of all the parents does not make a difference. For this photo site project I have a single parent (album or event) with a boatload of kids (events or photos). Now it would be nice to change the family name only once! I’m still not convinced that the way I did it is the best way, but it works.

On January 3rd I finally spend time to bring it together. At dinnertime I had something that worked (put in some pictures and make a website). It was a bit of a proof-of-principle that I can do it and quite a mess. I rewrote the whole thing directly and around midnight I was happy.

The fourth I spend time to make it work good. Squashing bugs by adding more events and photos to the album. Making the resizing work better, adding the exif-data to the photos etc. This morning I started to make the real album. Around lunchtime I uploaded it and then spend the afternoon improving the HTML code.

I’m quite excited about it as it makes it really easy for me to take a bunch of photos, organize them for the website and get them online. Exactly what I wanted! The collection of scripts are called “Hummingbird”.(4) and can be found on Github. It would be really cool if people have feedback.

(1) they also switched from a free model to model where you either have to pay or your site gets slammed with ads. I don’t mind paying for software, but only if I like it.
(2) I’m wondering why. I guess the market is very small. Most normal people use Facebook or Picasa. Professionals have their own highly customized solutions (usually with Flash websites that work crappy and work even worse than JAlbum on iPads and iPhones (as in: not). That leaves a small selection of nerds who want to host the photos themselves. On the other hand: that is exactly the market that should be able to create something themselves… right?
(3) I also suspect that JavaScript is the reason why JAlbum works so bad on iPads. JavaScript can do fancy things when you “mouse over” an element, but a touchscreen does not have a mouse. But I’m not an expert.
(4) An earlier attempt to do this was called “Mockingbird”, but it turned out it was the wrong bird.