Since starting my new job back in January, I’ve had much more energy and enthusiasm for undertaking hobby projects. This has manifested itself in several ways, including a renewed interest in photography via the “picture-a-day for 2008″ project. Lately, though, my hobby efforts have been focussed less on photography and more on programming.
It began when I volunteered to take over a fledgling project started by kilbo, an online friend of mine. His project, dubbed the “Kilbotron”, was a popular tool for a unique online forum that he and I participate in. The tool’s purpose was to constantly scan and archive all of the forum’s posts, thus allowing forum participants to have a searchable database of historical posts.
The issue that caused the project to change hands was primarily the result of the original hosting provider being hacked repeatedly – this had the effect of making the archiving intermittent during the downtime periods. Additionally, the former hosting provider complained that the service was too intensive for their wimpy, and apparently poorly-secured, hardware.
I was happy to take on the project and restore the ‘Tron to its former glory. I promptly set up a full development environment at home, using a spare machine as a Ubuntu server with Samba and SVN to provide a testing environment and source control, and Eclipse with PHPeclipse and Subclipse as my Windows-based IDE. With this setup, I could make changes directly on the development server and test them right away in Firefox on my 2nd monitor.
After spending some time restoring the original functionality (including some initial wasted effort on re-creating the original database structures), kilbo was able to provide me with the original database structure and archived data to work with. Having this in hand allowed me to rapidly restore and test the functionality, and also to begin adding new features.
I started adding features by first altering the display of archived posts to more-accurately mirror the appearance of the original forum. Then, I altered kilbo‘s original parsing script to start gathering more data, such as parent post IDs, IP addresses, and user handle/nickname information.
Using this new information, I was able to then implement two useful features that allowed the archive to even more closely emulate the appearance of the original forum. Namely, archived posts from that point forward would now provide a link to the parent post, if any, and would also provide a list of “children”, or – in other words – show all of the replies to the post.
Once the project was announced and revealed, the forum’s community was instrumental in helping test the new kilbotron (now renamed “Dr. Tron”, as a reference to “Dr. Tran”). Their help, and the announcement of the forum provider’s intent to fundamentally change the forum’s interface at some point in the near future, led to my second active programming project: SlackerTalk.
The new project’s primary focus was to create a complete clone of the interface of the original forum. In the event of that forum’s eventual demise, SlackerTalk could instantly step in to pick up the slack. Kudos to my GF for suggesting the hilarious name for the project. I was able to derive most of the difficult portions of the code from the code I created as part of Dr. Tron‘s parent/child nesting functionality. This code reuse allowed me to get the basic framework finished in a single evening of coding.
After several days of testing and refinement, I registered domains for it to reside on – slackertalk.com for the main interface, and “slickertalk.com” for the boring and potentially boss-key-like version. I also acquired an account on a server that would be adequate for hosting both projects.
And, apparently, that’s how I like to spend my summer.