On programming pet projects

If you stumble upon my little blog, you'll probably notice that I am a web programmer. Although I am wary about mixing work and downtime too much, I am working on a hobby project of mine, using the exact same tools and frameworks that I use for work. This is a great difference compared to my previous job, in which programming actually felt like a punishment. Read on if you want to know what made me change my mind on programming in the weekends.

On motivation

Actually, I have been considering to do a pet project for about 6 years now. However, my previous job sucked, at first even without me knowing. I had no wish to further my knowledge of programming, and I was seriously considering leaving the IT business altogether. I found another job (again: as a programmer), and found a more productive and healthier environment as well.

At my current workspace, I am actively being encouraged to explore new programming techniques and experiment. If that experimentation is conducted on pet projects, that's fine. I even 'own' my own code. Furthermore, the web is slowly losing the shackles of Internet Explorer and other closed formats such as Flash. HTML5 and CSS3 have risen, Javascript is growing more useful and interesting every day and PHP is actually maturing. Yes, web programming is starting to be fun again. 

The project: a web based running log

I have long wanted to have a better running log tool that I currently have. I currently use LyX, which is a WYSIWYM document processor. I absolutely love the product, but it falls short for my wishes.

Platform independence

One of them is platform independence. I always carry a laptop or mobile phone on the road. It is a bit silly to wait for me to have to go home to enter my training sessions. Furthermore, some of these data are weather-based. It is generally difficult to retrieve weather data from three days earlier in a place that you rarely visit.

Views

Although my log still has the look and feel of a diary -or blog if you like-, there is a number of additional views that I want to be able to see. One of these is a table of checkpoints and their laptimes. These can even be put into graphs, to give the user a graphical representation of her progress. Another feature is the ability to export a log to a paper-based format, like PDF. I have a number of other, less well-rounded ideas. 

Web based

This is simply the only feasible way for me to make an application platform independent. Since I am a lazy and/or busy guy, I am not willing to do everything myself, so I am choosing a well-rounded environment that I am familiar with. A CMS is good for a blog- or log-based format, and each CMS already has a decent article manager. 

My weapon of choice: The Nooku framework

I chose to work with a non-standard framework for two reasons: my logging tool has quite some specific wishes and demands, and the CMS that I use (Joomla), has a decent, yet somewhat encumbered framework. The Nooku framework was set up by some of the main developers of Joomla 1.5, and they have given the aging CMS a new heart. 

The Nooku framework allows me to rapidly develop added functionality for my web site and web apps. I am actually able to do something useful in those few and far-between hours that I am able to spend on pet programming.

Furthermore, the Nooku framework uses a lot of recent development techniques. I feel that I am actually learning something new while playing with code. You can teach an old dog new tricks.

The Nooku community

The Nooku community is a friendly one. I have had the pleasure to be welcomed by the people there. The rules are simple, he who contributes, has something to say within the community. Contributions can be done by code, documentation, or helping fellow programmers. Or rambling blog posts such as mine. My Nooku code is still in the Vogon Poetry regions (that is, sane people would cringe), so I will just be spreading the word.