10 Years of Zoph: A new maintainer

14 Sep 2010 by jeroen

In february 2003, Jeroen Roos buys his first digital camera. After shooting 600 pictures in two months, he realizes that he would need some kind of tool to organize his photos:

I made a list of features I wanted in such a tool and started searching and browsing the Internet. Eventually ended up on a page that listed 40 or so tools for organizing photos. I started checking them out, but none of them was what I was looking for. The list was ordered alphabetically, so, the very last one in the list was Zoph.

Jeroen Roos

He installs Zoph and starts using it. After some time he realizes he is missing the possibility to search for photos by the specified 'level'. He creates a patch to add this to the search screen and on april 6 he sends it to Jason. After some mailing back and forth, he offers to work on the implementation of CSS. This takes him almost a year and a half to complete. Jason and Jeroen worked together to integrate it with other development on Zoph, which were mostly patches provided by other Zoph users. By that time, it was almost 2 years since a Zoph release had been made.

I had been taking fewer digital photos and had less time for Zoph after I started a new job at Lucasfilm in September of 2003.

Jason Geiger

Several bugs had been reported during that time and Jeroen starts working on fixing them. He also gives the Zoph site a facelift, which goes live in May 2005.

Finally, in August 2005, almost 3 years after Zoph 0.3.3, Jeroen makes his first release. Because Zoph 0.4pre1 had been the name of the Zoph version in CVS for a long time, he names the release Zoph 0.4pre2. A month and several bugfixes later, Zoph 0.4 is released.

Among the many changes in Zoph itself, another major change has been made: Zoph switched from a BSD-license to GPLv2.

Zoph 0.5 and 0.6

Several feature requests have been posted and Jeroen starts implementing them, resulting in Zoph 0.5, released in March 2006, after as much as 3 pre-releases and followed by a bugfix release only 2 weeks later. Zoph 0.5 also included a security fix: a few possible SQL-injections.

One of the new features in Zoph 0.5 is "hierarchical places", from now on, a place can be placed inside another place so it becomes easier to navigate a large number of places.

Only 3 months later, the first pre-release for Zoph 0.6 is released, which includes a large number of small feature improvements, but it will take until september before all the bugs have been squashed and Zoph 0.6 comes out.

Zoph 0.7

Jeroen decides that it is time to modernize Zoph a bit, a lot has changed in browserland and a lot more is possible now. He adds a genuine Web 2.0 "autocomplete" function and updates the overview screens for albums, categories, places and people by adding a tree-based and a thumbnail-preview view.

In March 2007, these updates appear in the 0.7 release of Zoph.

The release also adds some small functions to zophImport.pl.

Jeroen is trying to find a balance between releasing early and releasing quality.

I was unhappy with the fact that I had to release a bugfix release only days after a release a couple of times due to an overlooked problem. I thought about how I could release early, but still keep quality at an acceptable level. I came up with "feature releases".

Jeroen Roos

Between 0.7 and 0.8, Jeroen releases 5 feature releases (0.7.1 to 0.7.5) that all introduce a few new features, but are released as 'unstable releases'.

Now a user can choose between the 'bleeding edge' release with new features or a 'stable' release that remains supported over a long period of time.

Zoph 0.8

In september 2009, Jeroen releases the first "stable" result of the new development strategy, Zoph 0.8. The most important change compared to 0.7 is the addition of mapping support.

In the picture above, it is shown with Googlemaps, but thanks to mapstraction, one can just as easy use Yahoo or OpenStreetmaps.

I didn't want to force Zoph users to use a specific mapping provider, because you never know what the future brings, they might start charging for their service or change the conditions of use or whatever that would cause users to want to switch to another provider. And of course, users may just have a preference for a specific service. So I chose to implement the mapping feature using mapstraction. Which means, a user can change the mapping provider by simply changing the MAPS variable in the config from, for example, Google to Yahoo.

Jeroen Roos

v0.8 also adds timezone support and a simple pbpBB-like CMS called zophPages that let's a user create coverpages for albums, categories, people and places. The thumbnail feature is extended with an option to "auto-pick" a thumbnail from an album, based on rating or age. Another new feature is the "admin page", a kind of control panel from where administrative tasks can be done.