I’m continually involved in PHP development for various products. I enjoy programming, particularly using PHP and a very fast database, such as MySQL or Oracle, and part of the enjoyment I get from web application development is the very real sense of building an immediately useful tool, something that someone with a problem to solve could immediately pick up and use. Imagine being at a home construction site full of folks using rocks to bang in nails and you can whip together a hammer. That’s the kind of feeling I crave, and this feeling drives me toward the best tools for any particular job.
Over time, this attitude has made me appreciate projects that have built other solutions, especially using a similar toolset, that far-and-away exceed my expectations and have the ability to change how I accomplish a task. The most recent amazing tool I’ve “discovered” is Gallery 2.0. Or, rather, I guess that I should say that I “rediscovered” it, as I’ve been using the original version of Gallery for years. Gallery version 1 offered a database-free way of uploading, organizing, and displaying collections of digital images. While simplistic in what it offered in comparison to many of the commercial ventures offering the same services, such as Flickr and Shutterfly, and free services, like Yafro, Gallery v1 offered complete control to the webmaster hosting the site and easy integration with free bulletin board software, such as phpNuke and PostNuke.
Amazingly, the project that started as a coding project to allow an individual to post pictures of their kids did not stop there. The Gallery v1 project was such a success that the number of developers contributing code ballooned, and the decision rarely seen with successful commercial software was made: let’s rip it up and start over with a new design. And, amazingly, the result in Gallery 2.0 more than demonstrates the wisdom of this decision.
After being in development for well over a year, Gallery 2.0 was officially moved out of beta earlier this month. A complete rewrite of the code that now requires a MySQL database and includes modular features, Gallery 2.0 is built to scale to hundreds of thousands of images. However, like any fantastic open source project, the magic really shines when you look under the hood. In a world of bloated software and security exploits being released daily, the developers of Gallery 2 have provided an elegant API that can be easily expanded with 3rd-party software that can be enabled or disabled at will. By running as little core code as possible and allowing modules to be turn on or off to provide functionality, the developers simultaneously achieve a smaller, faster application with fewer places for bugs to hide and the support of the best-of-breed external applications and libraries (GD, ImageMagick, NetPBM) to accomplish the very difficult tasks of dealing with image file formats. And. take it from someone who has written a simplistic photo upload/viewing web app, dealing with image files is very hard to get right.
Webmasters, if you are looking for a great image, movie, and audio file cataloging and display web application, look no further than Gallery 2.0. My hat is off to the Gallery 2.0 developers for taking every part of their software to the next level and pushing the envelope without creating an over-powering monster in place of a hard-working mouse. Bravo!