Sunday, April 20, 2008

Lighten-up

I just took delivery this weekend of three Asus EEE-PC machines.
These little Celeron based machines have a four gigabyte flash memory instead of a hard drive drive and a wireless adapter for mobile connectivity.
They come with a Linux system pre-installed and are ideal for simple internet and mail / news tasks but they really shine with a copy of a Windows operating system. Unfortunately Vista requires a minimym of seven gigabytes to install but XP Pro will go onto a 4 gig flash drive with some jiggery pokery.

I have used nLite to create a cutdown version of XP and got the machine up and running with XP on board. Another 4 gig SD card plugged into the machine serves as a second drive, to which I have moved the documents, local application settings, in short-anything that needs lots of writing. Flash drives have a long lifetime but a finite number of writes so I am trying to increase the life of the mainboard soldered components as much as possible. I may try a big fat SD card as the maindrive later and see how that goes.

I have installed the first machine but it's at the limit of space for the flash drive so I'm going to try even more optimisation. I know a guy who has XP and Visual Studio Express installed and does WPF development on the machine.

I will post back here if I have anything interesting to impart.

Sunday, April 13, 2008

Brian McCoombe Band

How can I have too much praise for this band? I have been listening to their album recently and I can't get away from the fact that these people aren't rock-star millionaires even thought they should be.

Last year I celebrated my 25th wedding anniversary to my beautiful wife Chrissy and we decided to hire a band to play music at the event.

Chrissy found Brian's band through an internet search and we decided to hire them, even though the price at the time seemed high. We had gone to the trouble of finding the venue of a French castle for the party so we figured that a band should at least try to fit in.

Unbeknown to us we had hired a band of such incredible quality and skill that we were totally and utterly blown away by their music.

Brian's voice has a soaring quality that one would expect from Freddy Mercury or Stevie Wonder. The band's music is tight and professional and the lyrics rip your soul from you and leave you with the feeling of having been drowned and brought back to life in the same moment.

The Brian McCoombe Band is a celtic rock band with roots in Scotland, Ireland and the Finistere region of France. Their music is original and astounding. Seek them out and be amazed!

World class Software

For almost three years now I have worked in the commercial finance industry and have been advising banks and insurance companies on how to write software that stands the test of time.

Institutions such as banks have a client lifetime measured in decades so the idea that software should be robust and reliable is taken for granted. The reality is however, that the software produced in companies that really ought to be irreproachable is often somewhat less than mediochre and that the attention to code quality is less that one would assume.

My rules for world-class software are simple:

#1 All code must be documented with inline comments and white-papers that describe the motivation behind the implementation. When this is in place the superhero programmer cannot die in a skiing accident or be headhunted by the company up the road and leave the development team wondering how the code works.

#2 All code must be tested. Unit testing, black-box testing and white-box testing ensure that the software performs as intended. All three types of testing are needed because none of the individual techniques cover all of the usage scenarios. Testing is a serious business so, rather than leave testing to novice programmers, companies should hire the most expert and devious code-killers possible to test the software. These people are few and far between and should be paid a lot!

#3 Software factories that do continuous build and test are essential. Without these, mistakes in the build can go unseen for days, weeks or months, depending on the release cycle of the application.

#4 Source-control rules must be draconian. Developers must not be allowed access to the same file at the same time. If they need to then you probably have the situation of more than one class in a file. This is totally unacceptable. Checking in of a file that breaks the build should be accompanied by public ridicule in stand-up, daily or weekly meetings. A great thing to do is to have people wear a stupid hat if they break the continuous build.

#5 Code should be monitored on a daily basis. Companies I advise often have code metric analysis tied into the daily builds so that it is easy to see whether a class has become bloated with too many methods, methods are more than a certain number of lines, cyclomatic complexity is too deep or there aren't enough comment lines in the code.

If you're company is in Australia and you need a seriously dedicated architect drop me a line...