Archive for December, 2009

Software Design Quotations

December 23rd, 2009

Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.

- Antoine de Saint Exupéry

Good judgment comes from experience; experience comes from bad judgment.

- Frederick Brooks

The most important single aspect of software development is to be clear about what you are trying to build.

- Bjarne Stroustrup

The unavoidable price of reliability is simplicity.

- C.A.R. Hoare

Another Year

December 20th, 2009

Here we are again. One more year has come and gone. With 2010 only a couple of weeks away I could, like last year and the year before, make a list of the most notable events of 2009. This time, however, I will not. You know how people say that it is when things are hard that you learn the most. Well, suffice to say that a fair amount of learning was accomplished this year.

Next year, there are a few things I would like to concentrate on. First, I would like to be more present for my family. I have been shying away from my responsibilities (as a son, as a brother and as an uncle) for a while but this is not very fair to them. Second, I would like to find extra-curricular activities I can invest myself in. Maybe something which could also be useful to others. I also want to lead a healthier life – a recurring theme – : sleep more, eat better and exercise regularly.

Let’s see how long my new year’s resolutions last for. But for now Merry Christmas and Happy New Year!

Just like old times

December 14th, 2009

When I started writing a blog I felt a little uneasy about it. Exposing my private life for everyone to see was not something very natural. Then I realised that although accessible to anyone there were – and still are -  actually very few people, if any, reading my blog. That made things easier. These days, I write mostly for myself. Just now, I was going through some very old posts of mine. This is what I like about blogging. It allows one to capture one’s thoughts and feelings at certain points in time. And to be able to go back and read them. It’s a bit like being able to travel in time.

Back then I seemed to be most prolific in the early hours of the morning. Looking at the time now (1:56 am) it doesn’t look like this has changed much.

Which CI should you choose?

December 8th, 2009

youbrokethebuild-smallContinuous Integration systems are nowadays a requisite for any half-decent software development outfit. There are many CI solutions available, some open source and some commercial. Over the years I have come across and used different ones: CruiseControl, Hudson and Bamboo. CruiseControl is highly versatile and works well but it is a pain to set up and maintain, especially in large teams where projects get added and modified regularly. Hudson works pretty and has an active follower base contributing many plugins. But I have to say Bamboo is my favourite thus far. It works a treat, scales well with remote build agents and the web interface is user friendly. Plus this is the one I use at work so I am very familiar with it. The only down side is the cost.

I have been setting up my own dev tool set at home so I can work on my own projects. What I need now is a CI tool. I was looking for comparisons between the various options and I came across this page on the ThoughtWorks wiki:

http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

It is a very comprehensive comparison matrix and it seems to be updated frequently.

I’m still not sure which one I will go for…answer in the next post.

My Home Setup

December 6th, 2009

The latest addition to my collection of toys is an Apple MacMini Server. The reason I decided to throw a new server into the mix is that I wanted to have the ability to develop and run my own applications as well as experiment with new technologies. For a while I was using my 2-year old Mac Mini as a server but with only 1Gb of RAM and a mere  1.83GHz Intel Core 2 Duo CPU it didn’t really cut it. I now use it to watch TV and movies in my room. It works a treat. So now here is what my home steup looks like (click on the image to zoom in):

home setup

From the NAS I run an SVN server where I keep my home projects. On the MMS I have installed Tomcat, PostgreSQL and I’ve just deployed Atlassian Confluence (they offer a starter kit for only $10) so I have a central location where I can keep all the information I need.

And by using DynDNS I can have all of this accessible on the internet. I route all the traffic to the MMS and with Apache I proxy the Confluence requests to Tomcat and SVN requests to the NAS.

It’s a pretty cool setup which gives plenty of things to occupy myself with :) .