« archives

April 2005
S M T W T F S
« Mar   May »
 12
3456789
10111213141516
17181920212223
24252627282930

recently

news from around the web

» view all

Reinventing the photo album

April 24th 2005

My project for the summer is this: Make the best web photo album application ever.

Ambitious? Nah. I’ve wanted to do it for ages, noticing the deficiencies in PhotoStack, albeit it being one of the best solutions available. Gallery, Gallery2 even, Coppermine — they’re what you call “bloated.” PhotoStack had the right idea — keep it simple, make it really easy to do what you want, and make the interface beautiful. Unfortunately, as Joen noted, it’s missing many important features including comments, good descriptions, and being bug-free.

So I want you to tell me exactly what you want and don’t want in your ideal photo album. Use the <ul> tag Use dashed lists… ULs don’t work. Think hard about it. I’ll do it if there’s enough demand and response.

A couple other things I want feedback on are implementation details:

  • I started already in PHP and I’ll probably stick with it, but I’d like to try Ruby on Rails of TaDa list fame. Any objections?
  • Database or flat-file for comments? (I’m already doing album directories like PhotoStack)
  • Shall I use AJAX? I can (in moderation) to great effect in the slickness of the UI (think flickr).
  • Any other server environment or implementation preferences would be appreciated, but try to focus on your dream app and tell me about it.

What are you waiting for? Get commenting.


This entry was posted on Sunday, April 24th, 2005 at 1:09 am and is filed under Noteworthy, Photo, Technical, zenphoto. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


29 Responses to “Reinventing the photo album”



  1. Joen Commented at 1:51 am on April 24th 2005

    This is most excellent, and your timing is magical. As you have already noted, I am in dire need of a solution such as the one you describe, and you have the exact right mindset about simplicity. I really can’t wait, and I will do whatever I can to support this project. Default template, admin design, whatever you can throw my way, I’ll help out. In other words go for it.

    With that said, I have some comments.

    First of all, Photostack is actually GPL. Is there any reason you want to rewrite it bottom-up, except for the fact that the extra features warrant it?

    Secondly, I’d prefer plain PHP, not because I know what I’m talking about, but because I’d be able to hack that myself :) — but don’t let that stop you. As long as the program will rock, I won’t care.

    Except for push button thumbnails, I would want the following features (some of them are repeats from my site):

    - Comments on each photo. You know about this, but this really is the single most important thing.
    - Nice and simple descriptions for each photo. Stored in SQL or text, I don’t care.
    - I’d prefer JavaScript was used only for extra features, and not navigation/system critical things.
    - Photo album index that works much like Photostack does now. That is, with a description, a date, and a small thumbnail.
    - Cruft free, nicely mod_rewritten urls, such as /photos/flowergallery/07/, etc.

    These are really the features I want the most. If you can get them to work together, I’ll be sold.

    Ideas / nice to have features that I’d like to eventually see, but are not at all required in the first versions:

    - RSS. I can use a WP category feed until then.
    - EXIF data. I’m pretty sure GDLIB can read camera exif data.
    - Flickr like image hotspots, but not in Flash. I’m sure it can be done with clever DHTML’ing.

  2. noscope | Researching Photo Gallery CMS’s Pingbacked at 4:13 am on April 24th 2005

    [...] category system, no RSS, no automatic thumbnails, limited templating, cruft in URLs. Zen Photo Tristan might just make the ultimate system from the bottom up. It might ju [...]

  3. Tristan Commented at 11:04 am on April 24th 2005

    Joen — I have tried dissecting photostack to fix many bugs, and it’s unfortunately atrocious on the inside. While is does use object orientation, it ends up just blowing up the code and making it wholly incomprehensible. The whole thing is built in a single file and I think taking the time to do it my own way would actually be faster than attempting to understand and modify the existing code.

    Also, PS has a lot of major parts that I would have done differently; like the whole “organize” part — it seems like it was added as an afterthought, and uses FTP PHP modules to handle files, which is unnecessary. Also, like I said, lots of bugs, and I don’t want to propagate bugs I can’t even see yet.

    So I want to do it right from the ground up. I can do everything you’ve listed, and in fact most of those things were already on my list. The Flickr-like hotspots are something I’d never thought about, but are definately easy with JavaScript; maybe even just CSS :hover and floating absolutely-positioned DIVs. We’ll see. I don’t plan on using JavaScript for any integral part of the app — just little UI nicities like entering descriptions and titles and things like flickr does now.

    Time scale is one thing I really want to stress here though. I’m not touching it until after finals, which means May 20th. This is the classic disclaimer that this may end up as vaporware, but it is something I really want to do, and something I think would be useful to a lot of people, so I will do it.

  4. Joen Commented at 1:31 pm on April 24th 2005

    Time scale is one thing I really want to stress here though. I’m not touching it until after finals, which means May 20th. This is the classic disclaimer that this may end up as vaporware, but it is something I really want to do, and something I think would be useful to a lot of people, so I will do it.

    As someone in the graphic business, I know exactly what you mean, and I wouldn’t expect it any other way. There are things in life that are important, and things that are less important. Respecting this takes practice.

    And while we’re at that :) - how’s that Now Playing plugin database coming along? I tried emailing you at the address in the bottom about it.

  5. Irish John Commented at 5:28 pm on May 4th 2005

    Let me see…

    Easily integrated into an existing blog or website.

    Account registration for users, and possible tag creation (BBCode and/or XHTML) for pasting into forums or e-mails.

    Easily upload and management. Most out there at the moment are hard to manage.

  6. Mark Commented at 10:52 am on May 5th 2005

    It would be very nice to have a gallery with web service interface so that we can get access to individual images or entire galleries from other RIA development tools like Flash.

    Thanks good luck!
    Mark

  7. Tristan Commented at 12:55 pm on May 6th 2005

    Great ideas so far. I’m smack in the middle of final projects at the moment; I’ll be done at the end of the month, and then I’ll release a final spec of some sort.

    John - About the account registration; I don’t see a need for it exactly. I want to keep this as simple as possible, so I think I’ll restrict it to comments in a blog-style (name/email/website, cookied if checked), and a single admin user. If you really need multiple-user uploads and galleries and stuff, I’d go with CPG. It’s great for that.

    Mark - I’ll look into that. Can you give me a link with specs on the interface you’re thinking of?

    Everyone else - I’ve been busy; more blog posts will come eventually.

  8. Daniel Commented at 3:06 pm on May 13th 2005

    Good luck on you mate, I recently designed by own gallery to get around these problems. I’m a novice programmer, so it’s fairly crap. See it here: http://djcf.sytes.net/gallery.

    It was originally inspired by blosxom, a dead-simple, damned-elegant blog software. Blosxom uses the filesystem as its database (directories become cateogies, and posts are text documents). It’s magic is in it’s extensibility — everything (or almost everything) is implemented using plugins. Not being a very good programmer, I didnt include plugins in my gallery, which makes it a rather large mess. But yeah: that’s the way I’d do it: dead simple, extra-features added by plugins.

    What I like:
    -Comments
    -Descriptions
    -AJAX (not included in mine)
    -Filesystem-as-DB — not messing around with databases. But possibly included as a plugin?
    -Some things I thought were cool was the idea of a “drag-and-drop” gallery — that is, you upload a directory of images, copy across an index.php file, and ba-da-boom, your (web-accessible) directory is now a gallery - zero configuration *required*. And likewise: if you see an image in the wrong category, just move it to the correct one using the filesystem, and nothing would break.
    -Specifying themes in the URL (optional, system defaults to its default theme).
    -And, finally, really simple themes are always a plus. Coz, if they’re simple, they can be integrated easily with other parts of the site.

    Just a few ideas.

    Daniel

  9. AJ Commented at 4:20 am on May 16th 2005

    Great idea. I do not know coding in PHP but I would love to use what you are planning to develop. I also hope that you provide a skinnable interface which allows for easy changing of appearance.

  10. Ben Commented at 2:46 am on May 24th 2005

    Sound great.

    Stumbled on this when trying to find out how to template Photostack, and found noscope :)

    Features I’d like to see…

    Simple to template and documentation on how to do it! (xtml and css)

    I really like the simple way Photostack stores images in folders - makes it really easy to ftp lots of images at a time and theres no need to set up a db.

    I also like the way Photostack up loads using the web interface.

    User definable size limits for images that are up loaded.

    Easy to intergrate in to exiting sites. I seem to have inherited a few sites with hand coded gallery pages and I’d like to replace them with something like this. Would be cool if once you’d created your gallery(s) you could just drop code in to a page that pulls out the gallery info/images from the main gallery. No need to create a new template, it just drops the images and descriptions in to the new page. (if that makes sense… once I’ve figured out how to phrase it correctly I’ll let you know :) )

    Looking forward to seeing how this progresses! Hope your finals went well :)

    Ben

  11. noscope | Description of the Perfect Photo Gallery Pingbacked at 12:10 pm on May 24th 2005

    [...] Plogger A full-featured beta-release of a system holding much promise for future features. Zen-Photo Tristan’s loosely planned Zen-Photo might also happen some time this [...]

  12. Jonas Rabbe Commented at 12:43 am on May 25th 2005

    Maybe you should also take a look at Fotobuzz Viewlet for inspiration on AJAX flickr-like behavior.

    And think about a plugin architecture from the beginning. Make it simple and let users extend it. This can lead to great things.

  13. Jeff Minard Commented at 9:59 am on May 27th 2005

    - Flickr like image hotspots, but not in Flash. I’m sure it can be done with clever DHTML’ing.

    Pst, totally can be done in just CSS — just don’t expect it to wrok in IE :( I even tried that IE7 thing to no avail.

    As for your package, it sounds like it will be pretty hot. A few suggestions:

    - Take a good look at how WordPress does templating. I really like their system: specifically the difference between the_author() and get_the_author() where one will echo, the other returns. Pretty simple, but makes life real easy when redoing the template.

    - Secondly, I’m kinda wondering how you are going to mix the FS style gallery with a DB style gallery? Each on it’s own is pretty straight forward, but mixed up I can see it getting complicated. For instance, if I get it all set up, then move a bunch of files around in the FS, how will the program “track” what I’ve gone and done?

  14. Tristan Commented at 6:12 pm on May 27th 2005

    Jeff,

    That’s a bit of implementation I’ve given a lot of thought to.

    So, your example is moving everything around in the filesystem. Okay. So, say you really screw it up and scramble absolutely everything — just to prove a point ;-)

    The way it handles this is slick. Everything the user sees in the albums is based only on the filesystem, not the database. The database is there only for storing metadata, storing group definitions, and doing searches. Each time the album is viewed, the program uses the image filename and foldername as a key on the database table, and if it doesn’t exist, then it creates new entries. In the case where everything is scrambled around, a whole bunch of new entries just get created. Yes, your descriptions and such will get erased, but what do you expect if you go around renaming things?

    Now, the only problem becomes garbage collection. We’ve got a whole bunch of old entries in the database that don’t connect to any images in the filesystem. My solution is to check the database against the filesystem on each album view, and garbage collect the entire database before a search or group view. It’s a little performance hit for groups and searches, but not too much otherwise. Linear with number of images. Not terrible.

    I’ll have to think a little more about searches and these live groups because (especially in searches) they have no way of knowing if the database is updated with *new* or old filesystem data. I’ll figure out something :)

  15. Tristan Commented at 6:14 pm on May 27th 2005

    I forgot to mention that renaming or moving files around in the admin interface will update the database as well, so that’s an alternative that won’t lose your data if you want to rename something.

  16. Jonas Rabbe Commented at 3:55 am on May 30th 2005

    I just wanted to mention this. If you want any help with reviewing the database spec, just let me know (you have my email from this comment). Two pairs of eyes are better than one.

  17. Pigs and robots » Galleri Pingbacked at 6:27 am on June 18th 2005

    [...] el ikke at de r?kker helt. Is?r WordPress supporten mangler. iPAP, Photostack, Plogger og Zen-Photo bliver n?vnt. Men udover disse vil jeg da tilf?je RumGallery. RumGallery er [...]

  18. Ben Commented at 7:51 am on August 15th 2005

    How’s it deveolping? Would still love to use this!

    This bit “Easy to intergrate in to exiting sites. I seem to have inherited a few sites with hand coded gallery pages and I’d like to replace them with something like this. Would be cool if once you’d created your gallery(s) you could just drop code in to a page that pulls out the gallery info/images from the main gallery.” is still teh thing I’m after. Something like ProperyMax does this a simlar way, though the code isn’t brilliantly documented when you want to ewdit the colours etc.

  19. Tristan Commented at 7:57 am on August 15th 2005

    Ben - that’s quite possible. Instead of making a true theme out of the design you’re trying to drop the images into, you can just include “template-funcitons.php” at the top and then use the theme functions as if it were a theme (so, get all albums, get images, display images at various sizes, etc).

    The way I’d reccomend doing it though is to make a theme out of whatever design you’re trying to integrate into. It’s basically the same as what you would do above, except you move it into the ‘themes’ folder and make it complete. I just think it’s easier to manage that way.

  20. Tristan Commented at 8:01 am on August 15th 2005

    Also, if you want to keep tracking development, make sure you keep an eye on the latest posts in the zenphoto category

  21. Ben Commented at 12:10 am on August 19th 2005

    Cheers for that - I’d missed the zen photo category :)

  22. Rex Commented at 7:50 pm on October 20th 2005

    Just a couple of things:

    Ability to show photos in any order chosen by the viewer;

    Read geocode info from photos and either provide a link to a google map or other map - or display the map right on the page;

    Have the option of showing location of all photos in an album on a map.

  23. Art Commented at 10:59 pm on October 20th 2005

    So, how goes the programming? Have you came up with something just yet? I have a few functions I’d love to see:

    All the functions Photopost 5.2 have with one little added thing that I can’t believe they didn’t even think about…the ability to purchase a picture right from the gallery. In other words, a shopping cart feature.

    Everything else they have covered. Even the ability to do the include command to pull up certain blocks of information and placing it anywhere within your site’s layout.

    If you could do a hack for their program or create one from scratch, I’d buy it in a heart beat!

  24. Tristan Commented at 12:18 am on October 21st 2005

    Art — check out my front page, or the zenphoto category. I’ve coded and released a beta already!

  25. trisweb.com » archives » Obligatory End-of-Year Post Pingbacked at 7:41 pm on December 31st 2005

    [...] I became fed up with the available web photo gallery apps as I began to take more pictures with my new camera, so I decided to write my own, which I called zenphoto. Development is very active today, especially now that I’ll have more time to devote to it, and with the thankful addition of Todd Papaioannou to the zenphoto “team.” [...]

  26. solyak1 Commented at 3:22 am on March 15th 2006

    Array

  27. iPAP progress [rebelpixel productions] Pingbacked at 1:29 am on May 9th 2006

    [...] iPAP now has comments, thanks to Mathias’s wonderful work. A million thanks, my friend! This is one of the most sought–after feature, requested in almost every email inquiry I receive concerning the photo app. Development has slowed down significantly the past week with spare coding time becoming very uncommon. But I managed to squeeze in ZIP uploads last weekend, something for everyone to play with when I pack another release this weekend. Hopefully. These new features will be included in the upcoming beta update. I apologize to those who were expecting to see it in the current release. For now, have a look at this nice WP/iPAP powered site by a fellow Filipino. Rannie, we’ll be waiting for more photos. As a side note, zen photo’s development is going well. Nice to see another elegant photo publishing solution like iPAP. [...]

  28. Mike Watson Commented at 6:05 am on September 26th 2006

    I would like a web-based photo album that allows me:
    1. to upload photos from my desktop PC
    2. to add user-defined keywords (date, place, occasion, person, person, person, …) to each photo in a database
    3. automatic creation of thumbnails
    4. search database and select by combination of keywords
    5. display thumbnails of selection
    6. admin features like permissions, deleting, …

    Cheers,

    mw

  29. Edward Commented at 8:29 pm on November 5th 2008

    Long this is not met.

Leave a Reply

Some XHTML allowed.