It is said that a picture is worth a thousand words. Effectively managing and showcasing your images could require a significant amount of effort; our project of the month solves this problem. SourceForge.net’s October project of the month, Gallery, is an impressive blend of simplicity and elegant design; an easy-to-use software package to generate a customized online home for your pictures. Gallery is a mature project, having seen consistent development and a growing number of users since 2000. The SourceForge.net team, which includes many staff members who use Gallery for their own images, is proud to make Gallery our October project of the month.
Description of project:
Gallery is a Web-based software product that lets you manage photos on any Web site that offers PHP support. With Gallery you can easily create and maintain albums of photos via an intuitive interface. Photo management includes automatic thumbnail creation, image resizing, rotation, ordering, captioning, searching, and more. Albums can have read, write, and caption permissions per individual authenticated user for an additional level of privacy.
- Development Status: 5 – Production/Stable
- Environment: Web Environment
- Intended Audience: Developers, End Users/Desktop
- License: GNU General Public License (GPL)
- Operating System: OS Independent – any OS that supports Java 1.3 or later;Apache or Zeus Web server; PHP > 4.04p11, with safe mode OFF
- Programming Language: PHP
- Topic: Viewers
What is the intended audience?
Gallery was originally intended for individuals to share privatephotographs on a Web site, including operatorsof Gallery web sites and also anybody they allow to upload pictures.
What exactly does it do, and what makes it unique?
Gallery is an easy-to-use program that makes the process of uploading and displaying photos and movies on a Web site fun and easy for anyone. Written in PHP, it’s highly customizable, can display photos in a slide show, has sophisticated user permissions built in, and is easy to install (no HTML or PHP experience is necessary). In addition, Gallery has a very active and friendly support base, which has evolved into a large, welcoming online community.
Gallery is not only an application but it is also a web service: We publish the specification to the protocol we designed (and constantly improve) to programmatically manipulated the Gallery server. So far, three other applications and scripts are available, and several more are being developed by other teams.
How did you get started?
In May of 2000, Bharat’s wife went to India and came back with a camera fullof digital images that we wanted to share with our family. I put the images up on my Web site and wrote a simple Perl script to quickly display them. As I added more photos I realized that I needed more features and I decided to use this as an exercise to learn PHP. Chris Smith (who also had a digital camera and a Web site) got interested in this, so we created a SourceForge project so that we could collaborate. Before I knew it, other random people started downloading and playing with it (and filing feature requests and bug reports).
How many people do you believe are using your software?
Google shows 17,000 links, but we believe there are more than that. It’s hard to evaluate. We’re aware of over 200K unique URLs that haveprobably had a Gallery install at one point or another. A conservativeestimate is in the 75K to 100K range. We get 1-2K downloads a day,so if even a small percentage of those people use and keep the productthen the numbers add up quickly. Fewer people have installedGallery Remote than the full Gallery software set.
What gave you an indication that your project was becoming successful?
I prefer to think of Gallery as the perpetual underdog. It has manyof the elements of a successful project, but there is so much morethat we can do with it. But a few things happened that made merealize that other people considered it to be successful:
What has been your biggest surprise?
Bharat: It never ceases to amaze me how much people love this product.Because I’ve spent so much time fiddling with the guts of the programand dealing with all the crazy mistakes we made in the processof growing the product, I have a hard time not seeing its flaws. Butthe wonderful thing is that it works and is really effective, and fora lot of people it fills a really important need.
Pierre-Luc: Even now, I’m constantly surprised at how much time people withfamilies will spend working on a project purely for the excitement of buildingsomething great and being part of a talented team. The core Gallery developers and a community of busy bees are constantly on our IRC channel, offering advice to users, coordinating variousaspects of the project, and just plain having fun. The feeling of community isextremely fulfilling.
Beckett: I’m surprised that such a large number of people have stepped forward to help the project. People visit the site every day just itching to help other folks sort out problems, bringing up wild ideas to push the envelope, or just to say thanks to the developers. The outpouring of time, ideas, and assistance from so many people is just wonderful, but something I never would have expected. That said, I joined the project for this exact reason. I loved what I saw, and wanted to know what I could do to contribute.
What has been your biggest challenge?
Pierre-Luc: Doing any work for my day-job when a Gallery Remote bug or featurerequest comes through: I have an almost physical need to launch my IDEand test/fix/add the feature.
Beckett: The biggest challenge is finding enough time to devote to the project. I often find myself at my day job thinking about what needs to be done for Gallery that evening. Gallery is a small project with big goals, and could keep us all busy 24-7 if we had the time. It’s hard to tell myself every evening, “Beckett, it’s 3 am. Enough Gallerying for tonight. You have to be up for work in three hours.”
Bharat: It’s been incredibly challenging to get the right people onto the teamso that we can grow the project. For a long time, I was thebottleneck that every major change had to pass through and so thingsprogressed slowly. In a given day, I’d spend my time answering 20-30messages in the mailing list, another 5-10 personal emails, fendingoff instant messages, and then I’d get to spend a total of 30 minutesworking on actually advancing the product or improving some aspectof the website. If I ever took time off from all the communication,I’d fall so far behind that it would take me days to dig myself out.
However, slowly over time we managed to attract a very smart anddedicated team that has taken on many of these difficult (andsometimes undesirable) tasks and gotten them off of my plate. Werecently restructured the project so that responsibility and authorityis divided up amongst a core team. This has allowed me to get off ofthe critical path for every little thing and focus on development ofGallery 2.0, which is a complete rewrite of the application.
What are you most proud of?
Bharat: I think I have my proudest moments when I witness other people havingconversations about Gallery without me. Seeing people meeting in theforums or on IRC, discussing the product, coming up with ideas andimplementing them is thoroughly satisfying. To me, it demonstratesthat this project has grown beyond its initial boundaries and hasbecome durable in its own right.
Pierre-Luc: The fact that all my family and friends use Gallery and Gallery Remoteto share their photos with other people they know. And stumbling onto aGallery built by someone I don’t know.
Beckett: I’ve had several dads-to-be send me frantic emails saying, “Help! My first kid is being born tomorrow morning and I need to get the photos up by tomorrow morning! Can you make it happen?” Not only did they all get a gallery up and running in time, but several of them still keep me posted with new photos. Better than sending photos over email, their online galleries have become scrapbooks, or continuing stories, for everyone to see. Gallery has given so many people like this a means to creatively express what’s important to them. Stories like that give me a huge amount of satisfaction, and drive me to keep working on the project.
Why do you think your project has been so well received?
Andrew: Gallery has so many things going for it. First, we have an excellent product that does its job very well. It can be used in so many different ways for so many different jobs and for so many different people. I also believe we have one of the best support nets in the open source world. We really do have some of the best people helping in the forums and working to help people get their Gallery running the way they’d like.
Beckett: For the growing number of people with personal Web pages who want to show off their photos, Gallery fits their needs perfectly. On top of this, the user support and customization community is very active, interactive, and friendly. When someone needs help or has an idea, people are there to help and are constantly willing to help improve the project.
Where do you see your project going?
Joan: Next on the list of enhancements are voting/rating ofphotographs, ecards, and email updates about album changes.And then it will all be swept aside for Gallery 2.
Beckett: Gallery v1 was a small personal project that unwittingly got big. Gallery 2, the next generation Gallery, has been completely rewritten from the ground up, and improves almost every aspect of what is already a wonderful piece of software. Gallery has been fully internationalized, and modularized, which will allow new features or new looks to be added quickly and easily. We want to add support for camera-enabled cell phones, so people can send photos directly to their galleries from their phones, and plan to have Gallery evolve to let people be creative with as little hassle as possible.
How can others contribute?
Beckett: Join us in our forums and tell us how you’d like to get involved. We’re looking for PHP developers, Java developers, user interface designers, and graphic designers.
Pierre-Luc: Currently, I’m looking to expand the team of people who work on GalleryRemote and related tools. Right now I’m by myself on that part, so Itend to lag behind the new features that are implemented in the serverpiece of Gallery. I need Java developers, and at least one PHPdeveloper who is not afraid to work on a SOAP or XML-RPC API that exposes theservices of the new Gallery 2 core.
Andrew: As the support team lead, I’m always glad to see experienced Gallery users helping out in the forums. While we have very good moderators, there seem to be more forum posts with each day. Having other experienced Gallery users around the forums is never a bad thing.
Do you work on Gallery full-time, or do you have another job?
This is a side project for all of us, but we spend numerous hours (10-20 per week)supporting and developing this project.
How do you coordinate the project?
Originally, Bharat and Chris were the sole developers, and progress was slow at times, and entirely dependent on their amount of free time. In the past year, we’ve added a slew of new developers, and the project development has been divided up, with tasks delegated to the sub-groups. While the core development team does most of the direct code writing, bug finding and testing often comes from individual users, and many of Gallery’s most exciting features have been contributed by outside users.
What is your development environment like?
The development team uses a variety of Unix and Windows servers and desktops. We encourage variety becauseit helps us to find portability problems early on in the process. Various members use tools that include IntelliJ IDEA for Java development and nedit when coding in PHP or writing docs in XML and XSLT.
If you could change one thing about the project, what would it be?
Bharat: I wish that back when Gallery was installed on less than a thousandsites, I realized just how large this project was going to get. IfI had better vision at the time, I could have spent a little more timeon design and come up with an architecture that wouldn’t require acomplete rewrite.
Beckett: Of course, if we could all quit our day jobs and work on Gallery, that’d be a dream come true! More realistically, we’re hoping to strengthen the core development team in order to streamline all of the tasks at hand. We’ve started this process in the past year, with great success, but hope to turn our core members into a more efficient and productive group, leading to more concurrent and independent development, while maintaining our high coding standards. As Gallery grows in project size and userbase size, we want to be able to keep up and keep delivering as demand for new features and support increases.
Gallery v1 is in the process of being internationalized. The next large milestone will be the alpha release of Gallery 2.0, which has been under steady design and development for over a year.It removes all of the limitations seen in Gallery v1, and promises to set the standard for online photo management software, be it commercial or open source. Gallery Remote 1.1 will come out shortly, with a muchimproved UI. Development on 1.2 will start immediately after that to support notonly uploading pictures, but manipulating pictures and albums already on theserver.