The Making of V4

Version 4 of RohJuh.com ended up being a much more time-consuming endeavor than I ever imagined. With development work progressing at a fairly consistent pace over nearly 9 months, what began as a medium-scale project soon mushroomed into quite a large undertaking, and I ended up spending about quadruple the amount of time and effort that I had originally estimated. Good thing my day job isn’t software program management. :-)

With Version 3, I had completely over-hauled the site in an attempt to separate the content from the presentation (translation: to make it easier to change the look and feel of the site) as well as to facilitate content management (translation: to make it easier to add new trip reports, pics, and videos). I largely achieved this objective as V3 was much improved in these regards from previous versions. Despite these improvements, there remained a number of areas that were still lacking.

Content Addition/Management
Even with the V3 improvements, adding content remained a very manual process and involved more steps than I would have liked. Adding pictures involved exporting the pics from iPhoto (my photo management software), using a separate program to create captions, thumbnails, and scaled pics, and finally copying and pasting the resulting HTML code to a text file which would include the trip report, if there was one. After that, I’d have to go into the MySQL database and create a new entry for the page in addition to all its accompanying parameters (page title, date, description, etc.).

Although pages were dynamically generated and the look and feel could be easily changed, aspects of much of the content remained static HTML code which greatly reduces flexibility. For example, thumbnail sizes were fixed and were set at 4 to a row. If I ever wanted to change this site-wide, I’d pretty much have to modify each individual page.

Slideshow & Access to Original Pics
In V3, thumbnails were displayed and if you wanted to see a bigger version, you click on the thumbnail. But there lacked a slideshow functionality (where you can click “next” to get to the next pic). In addition, visitors could not access the original, full-size pics. I really wanted to have this functionality.

Visitor Comments
I implemented the Forums in V3 to allow people to comment on pics and trip reports. Granted, very few people leave comments on a site like this anyway, but I still thought that it would be a nice feature to have. I guess it’s more of a “that’s cool even if nobody uses it” type of thing. But aside from the fact that most visitors to RohJuh are not prone to comment on anything, the full-featured Forums were just overkill for the original intent. More importantly, the lack of integration between the actual trip report and the Forums only served to make comments even less likely.

Search
This was a big one, especially as content continued to be added to the site. I wanted to have search capability to allow myself and visitors alike a quick and easy way to find what they’re looking for.

Security
After several instances of hackers defacing the Forums (they were rarely used and thus I never kept up with all the security updates), I realized that the entire site could potentially be at risk, especially since I was using home-grown PHP and MySQL code. I’m not a professional programmer so my code is quite likely not up to snuff, and I certainly didn’t have the time nor inclination to keep up with all the latest in keeping things hacker-proof. That type of stuff does not interest me at all; I’d rather focus on content and the front-facing design and aesthetic aspects of the site.

Make or Buy
To add all of the functionality that I wanted, I could spend lots of my time deep in code and come up with a custom solution. That certainly wasn’t something I wanted to do, and even if I did, I’d have to become much better versed with the security ins and outs of PHP and MySQL to help protect the site from hackers.

So that was Option 1 and it wasn’t all that appealing to me at all. Option 2 was to use an available, off-the-shelf solution. The final decision really was a no-brainer since there are several, well-supported open-source projects that would let give me all the functionality that I desired and then some. Since most of these programs are free, it made the decision all the easier. So I guess it wasn’t really a “Make or Buy” decision per se, but more of a “Make or Get for Free” decision.

Gallery2
RohJuh.com’s largely about the pictures so obviously a good photo-management software would be required. There are quite a few options available with the two most popular ones being Coppermine and Gallery. I looked into both offerings, but Gallery seemed to be a much more active project. In addition, there was lots of buzz around the project because they were nearing completion of their next generation software, Gallery2. Gallery2 was a ground-up rewrite with the objective of creating a highly scalable, efficient, customizable, and full featured photo management software. I decided to base RohJuh.com’s photo management software on Gallery2.

WordPress
For content like trip reports and static pages, the available choices are virtually endless but generally boiled down into two types: a full-blown content management system (a la Drupal, Mambo, the Nuke families, etc.) or a blogging type system (a la WordPress, TypePad, MovableType, etc.). Because of the relatively simple nature of RohJuh.com’s content, a full-featured content management system was not necessary; the comparatively simple blog software would suffice.

In researching the various blog software available, I quickly settled on WordPress. WordPress has garnered significant industry praise for its ease of use as well as its functionality. The project has a very active and involved developer community and also a highly active support and plugin community (plugins are modules that people write that can be plugged into the main WordPress program to provide additional functionality). In addition, the next version of WordPress would have “Pages” functionality which allows you to create static pages in addition to blog entries. For most people this functionality would be used to create relatively static pages like “About” and “Contact” pages.

Implementation
By the end of 2004, I had decided to base the new RohJuh.com on WordPress and Gallery2 (aka G2). At that time, WordPress was on the verge of releasing version 1.5, a fairly major update to the software. G2 was in the Alpha release stage and my expectation was that it would be only a few months before the final version of G2 was released.

Shortly after moving to Northern California, I installed WordPress and G2 on my home Mac and began familiarizing myself with the software. I also began designing the new look and feel of the site. Both WordPress and G2 come with default “themes” (a set of files to define the look and feel), but I wanted a custom look, not the plain-Jane vanilla default.

I can be a perfectionist when it comes to certain things and creating a new look for the site is most definitely one of those things. As with previous versions of the site, I spent countless hours creating new looks, changing them, scrapping them for a new one, etc., etc., .etc. After finally deciding on the desired general look (with many subsequent tweaks to details to come), I was ready to start implementing the look I wanted within the confines of WordPress and G2.

WordPress Customization
The WordPress team has done a fantastic job in making customization easy and straightforward. All relevant files to a certain theme are stored in a single directory and controlled by a single CSS file. Things are structured in a very logical and sensible manner. As a testament to this ease of use, there were dozens of available themes to choose from shortly after WordPress 1.5 was introduced. I perused dozens of themes, trying to find one that I liked. Not able to find one that I completely like, I set about trying to find one that was kind of close so that I could use it as a starting point for modification. I came upon the Wuhan theme which was the closest one available, and soon set about modifying the Wuhan theme files to get my custom look. As you can see, the final result is quite different from the Wuhan theme; I modified that theme quite extensively to get the look I wanted.

The process went relatively smoothly, which is not to say that it didn’t take lots of time. Aside from the usual headaches and frustrations with Internet Explorer (why the heck does anybody still use this browser???) related to its poor standards compliance, a fully functioning WordPress implementation with my own custom theme was soon up and running.

Gallery2 Customization
While the WordPress customization process went reasonably well, the G2 customization process was vastly different. While the G2 developers have done a great job of creating a highly functional piece of software, they are definitely lacking in user interface and usability (and they admit as much). I started with the Alpha 4 version of the software which was the first version in which an upgrade path to successive versions was assured (i.e. you would not lose your data with successive upgrades). Unfortunately, I found G2 very confusing to customize. There were CSS files and template files scattered among various directories. In some instances, certain files had the same exact filename but resided in different directories! Aye carumba!

In addition to the G2 customization, I also I spent a lot of time moving all the old picture galleries to the new software. This was a very manual and laborious process, especially with the captions. Basically, I had to copy and paste each caption from each picture into the software. That wasn’t a whole lot of fun. I should have tried to outsource this task to some cheap worker in China or India. :-)

As the import process went on over the course of several months, I continued to customize G2 to get the look I wanted and the open-source development of G2 continued. Many things in the program were still fluid and bugs continued to be worked out. Beta 1 was released March 04, 2005. With the release of Beta 2 on April 12, 2005 came a complete revamp of the theme system. This was much needed since the previous theming system was, quite frankly, lacking in many ways, but it also meant that much of my previous work would have to be redone to one extent or another. [sigh] Such is life working on the bleeding edge of software.

Beta 3 was released on May 18, Beta 4 on July 22, RC (Release Candidate) 1 on Aug 05, RC2 on Aug 24, and the final release on Sep 13. The total release cycle took much longer than I expected, but that was due mainly to my false expectations. The G2 developers never promised a final release date and considering that they work essentially for free (donations are accepted) in their spare time, the release cycle wasn’t really all that long.

It was kind of cool to be a part of the process and see firsthand how an open-source project moves along. Code is released for people to try out. People install the software, play around with it, and make suggestions to improve things. When they encounter problems, they post in the support forum and the developers and other users would try to help troubleshoot things. Verified bugs are tracked online as are the multitudes of feature requests. Bug fixes are rolled back into the main codebase and features are added incrementally. While the process may seem kind of unorderly and chaotic, in the end, the problems eventually get worked out, the most desired features are added, and the resultant software is generally pretty good quality.

So that’s the story of RohJuh.com V4. It was the culmination of many months of labor, some of it fun, some of it not so fun. I’m very pleased with the result, and RohJuh.com finally has a solid foundation for the future. I’ll probably change the look every now and then, but definitely don’t foresee the need to do any further major revamps to the back-end anytime soon. That is, of course, as long as WordPress and Gallery2 continue to be well-supported projects which, by all indications, should be a fairly safe bet. Now with the new site finally complete, it’s time to get away from my computer screen and get back to creating content for the site! :-)

Got something to say?