Project of the Month, October 2003

Gallery

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.

Project Name: Gallery
Founded / Started:
June 18, 2000

URL: http://gallery.sourceforge.net/
Project page: https://sourceforge.net/projects/gallery/

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.

Trove info:

  • 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 private photographs on a Web site, including operators of 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 full of 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 have probably had a Gallery install at one point or another. A conservative estimate 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 product then the numbers add up quickly. Fewer people have installed Gallery 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 many of the elements of a successful project, but there is so much more that we can do with it. But a few things happened that made me realize that other people considered it to be successful:

  • I started getting regular emails from people that said things like "I just terminated competing project X because I discovered Gallery."
  • Friends of mine installed, used, and were happy with it, some even made donations to the project all without realizing that I was involved in it.
  • We became the #1 hit for the word "gallery" on Google, which indicated that enough other sites linked to the Gallery Web site to be statistically significant.
  • 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 program and dealing with all the crazy mistakes we made in the process of growing the product, I have a hard time not seeing its flaws. But the wonderful thing is that it works and is really effective, and for a lot of people it fills a really important need.

    Pierre-Luc: Even now, I'm constantly surprised at how much time people with families will spend working on a project purely for the excitement of building something 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 various aspects of the project, and just plain having fun. The feeling of community is extremely 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 feature request comes through: I have an almost physical need to launch my IDE and 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 team so that we can grow the project. For a long time, I was the bottleneck that every major change had to pass through and so things progressed slowly. In a given day, I'd spend my time answering 20-30 messages in the mailing list, another 5-10 personal emails, fending off instant messages, and then I'd get to spend a total of 30 minutes working on actually advancing the product or improving some aspect of 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 and dedicated team that has taken on many of these difficult (and sometimes undesirable) tasks and gotten them off of my plate. We recently restructured the project so that responsibility and authority is divided up amongst a core team. This has allowed me to get off of the critical path for every little thing and focus on development of Gallery 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 having conversations about Gallery without me. Seeing people meeting in the forums or on IRC, discussing the product, coming up with ideas and implementing them is thoroughly satisfying. To me, it demonstrates that this project has grown beyond its initial boundaries and has become durable in its own right.

    Pierre-Luc: The fact that all my family and friends use Gallery and Gallery Remote to share their photos with other people they know. And stumbling onto a Gallery 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 of photographs, 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 Gallery Remote and related tools. Right now I'm by myself on that part, so I tend to lag behind the new features that are implemented in the server piece of Gallery. I need Java developers, and at least one PHP developer who is not afraid to work on a SOAP or XML-RPC API that exposes the services 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 because it 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 thousand sites, I realized just how large this project was going to get. If I had better vision at the time, I could have spent a little more time on design and come up with an architecture that wouldn't require a complete 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.

    Milestones
    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 much improved UI. Development on 1.2 will start immediately after that to support not only uploading pictures, but manipulating pictures and albums already on the server.


    More projects of the month


    Project Name: Gallery

    Background of leaders:

    Name: Bharat MedirattaBharat Mediratta
    Age: 33
    Occupation: Software developer for VA Software, working on SourceForge Enterprise Edition
    Education: BA in Computer Science from Colgate University
    Location: Menlo Park, CA (USA)

    Name: Beckett Madden-WoodsBeckett Madden-Woods
    Age: 23
    Occupation: Electrical Engineer
    Education: B.S., Cornell University
    Location: Pasadena, CA (USA)

    Name: Pierre-Luc PaourPierre-Luc Paour
    Age: 31
    Occupation: Consultant
    Location: Paris, France

    Andrew Lindeman
    Age: 16
    Occupation: Student

    Key developers:
    Bharat Mediratta (Gallery 2 developer)
    Beckett Madden-Woods (Gallery 1 developer)
    Joan McGalliard (Gallery 1 developer)Joan McGalliardJoan McGalliard
    Chris Smith (Gallery 1 developer, emeritus)

    Quote about SF.net
    SF.net is a phenomenal resource for new projects. I do not exaggerate when I say that Gallery would have faded into obscurity were it not for the extensive features that it provides.

    Would there be as much creativity in Open-Source without SF.NET? Hard to say. But there would surely be less diversity: while big projects like Apache, Linux and Mozilla have their own infrastructure, the thousands of smaller projects such as Gallery would have to rely on ad-hoc and fragile infrastructure. And the small projects are where the majority of people who work on Open-Source as a hobby can be found.

    SourceForge.net manages our project, and delivers it to our users, so we can focus on writing code and listening to our users. In a small development group, we have limited time and resources. SF.net helps a small development team like ours maximize its productivity.

    Why did you place the project on SF.NET?
    At first we primarily needed revision control and bug/feature tracking. SF.net fulfilled these basic needs while providing a nice framework for other aspects of the project, like file releases, news articles, etc. By being an SF.net member, we're also telling the world that we believe in the power open source to produce quality software that solves someone's needs in the best way possible.

    How has SF.NET helped you?
    SourceForge.net is an essential part of our project. We use it to manage the codebase, issue releases and host downloads, track bugs and feature requests, and to deliver news to users. All of these essential tasks would require huge overhead and time commitment by us, and having it all taken care of allows us to focus on improving the code and adding new features. In addition, SF.net raised the visibility of Gallery. Hosting our project there made it very easy for people to find us.

    The number one benefit of SF.NET for your project is:
    Infrastructure. The framework SF.net provides enables us to focus on actually developing software instead of maintaining bug trackers, file releases, news articles, and revision control systems. The reliable CVS server allows the developers to stay in control of the code. Without it, it would be almost impossible to coordinate development between so many people.