Rob Smyth

Wednesday 28 November 2007

My Read/Listening List

I've created a "to do" read/listening list on my wiki here. This is new for me. I have a long drive to work so I'm thinking of using the time to listen to podcasts with an iPod Nano Sue is giving me for Christmas.

Saturday 24 November 2007

A Melbourne Spring Day To Live For

Sue and I have been on holidays the last week and we have been busy around the house doing our bushfire clean-up. It has been a wonderful week, I just love pottering about the house with a dog or two in tow. Melbourne has lived up to its reputation of one day hot, next day cold, and the next day perfect. Today was one of those Melbourne springs that you just live for.

I took the picture on the right late in the day from the side of the house. Gosh I love living here.
Posted by Picasa

Friday 23 November 2007

Golly's First Clip

This week golly got his first clip. A big thing with our Airedale's as they suddenly change from being a black puppy (kinda fox looking) to an Airedale. For a couple of days it was like having another dog in the house!

My clip is rough, but gosh he is a good looking dog. The photo shows him standing and Violet in front.

He is also maturing, in the last two weeks he has changed to really enjoy and seek out a cuddle.

Thursday 22 November 2007

Home Bushfire EWSS

Today I was able to do a quick test of the first installed sprays of the External Water Spray System (EWSS). Very impressive.

I've also integrated the rainwater system and garden sprays into the system. All water supplies (town, fire tank, and rainwater) now all feed into the one manifold so that the fire system can use the garden sprinklers. The fire hose lines still come straight off the pump for absolute reliability.

I've also updated the system documentation including the hydraulics diagram on my wiki here.

Tuesday 20 November 2007

Accelerating VS Build and Test Times

The latest CodeProject newsletter has an advert for a product that accelerates Visual Studio builds by using distributed computing. Cool. I wonder if it can be used to run the automated tests?

I expect that as a project proceeds the automated User Acceptance Tests (UATs) will take longer and longer. They currently take about 5 minutes in my current team. Even 5 minutes is an inhibitor, we do not always run all the UATs before committing. Especially for those who commit frequently (15-60 minutes). As they take longer this will affect productivity.

So ... can this tool, or another, use distributed computing to run the UATs? If so then perhaps they can run continuously with a dashboard showing current status. Stop typing and then watch them go green. Now that would be cool.

The product advertised is here.

Friday 16 November 2007

How Often Do You Commit?

When talking "Continuous Integration" (CI) just what is "Continuous"? I've often had this discussion where one person considers continuous to be once a week while another is thinking every few minutes. The perception difference is based on their experiences, nature, and the environment in which they work. I do not think there is any wrong answer except one that excludes all others.

So I'm wondering what is the practice out there so I've added a poll on the right sidebar of this blog to get an indication from actual practices. Regardless of what you think CI is or would like it to be, what is your current practice.

Take a few seconds and record your actual (average) commit rate. This is nothing to do with agile development or the like, just an indicator of practice.

Wednesday 14 November 2007

Build Box Lights

Yesterday our Varian Australia software team got a USB indicator light which was quickly hooked up to our build box (CruiseControl). These lights are great. We are using cctray to play music on build pass and fails but we have found that sometimes we do miss the sound or it just gets ignored for a few hours. The light we got is programmable for a mix or read, blue, green with different intensities and flash rates. The cost was around $100.

Check them out here. Google with "usb indicator light".

It comes with a driver DLL but info to write your own is available here.

Nigel's post here.

NCoverCop - A Must Have Team Tool

A little while back I mentioned how at Varian Australia the software team has developed a tool that check our code coverage on every commit (each time the build box runs) and fails the build if the coverage falls. Now Nigel is publishing the tool to SourceForge. You can find it here.

This has proven to be very effective. Even with well intentioned TDD it is surprising how easy it is to miss one functional point. As the tool only allows the coverage to go up or stay the same the coverage must, and does, increase with time. It has made a real difference to the team. All code now committed must be 100% tested by unit tests or the fail music will sound within just a few minutes :-).

Tuesday 13 November 2007

VS Like Docking Framework - DockPanel Suite

I've been using the DockPanel Suite framework in a little home application I'm working on. I like it. It provides Visual Studio like window docking for very little effort.

It is an open source project on SourceForge. It could do with better C# 'Getting Started' guide but it is simple to use and the separately downloaded VB documentation gives enough clues to get started. Lot of 'here are what you can achieve stuff', but a bit short on 'here are examples to get you started'.

To use, place a DockPanel filling your window client. This will be the parent for all docking windows. Or if like me you like the programmatic injection approach:

private DockPanel CreateDockPanel()
DockPanel dockPanel = new DockPanel();
dockPanel.ActiveAutoHideContent = null;
dockPanel.Dock = DockStyle.Fill;
dockPanel.Font = new Font("Tahoma", 14F, FontStyle.Regular, GraphicsUnit.World);
dockPanel.Name = "dockPanel";

return dockPanel;


MainForm mainForm = new MainForm(mainFormController, dockPanel);


public MainForm(IMainFormController controller, Control dockPanel) : this()
this.controller = controller;

Your docking windows must all be UserControls that inherit from DockContent (which inherits from UserControl).

An example from some of my code adding a docking window:

propertiesView = new PropertiesView();
propertiesView.ShowHint = DockState.DockLeft;

A gotcha I found was when passing the DockPanel be sure to reference it as a DockPanel type and not just as a Control. It seems to make a difference.

Tuesday 6 November 2007

No Protection from Retalitory Feedback on eBay

I've just found that eBay is a bit more lawless than I thought. In a couple of recent purchases with one HK company (partneringco) the wrong item was sent and the other was not as advertised. So, after the seller was less than helpful, I left a neutral feedback on one and negative on the other. The the seller then left me negative feedback on both. The seller's reason given in the feedback is because I left negative feedback! How blatant retaliatory feedback is that?

I could point out that one was not negative but was neutral but then in the wonderful world of eBay feedback I've learnt that truth is not important. eBay's support info states that they will not remove untruthful feedback and they seem to avoid making any statements about obvious retaliatory feedback.

I'm really stunned by this. How can a seller give you negative feedback stating that they are doing because you gave them negative feedback? How can a buyer ever give negative feedback?

The lessen to me is no matter how bad the seller is, if you leave neutral or negative feedback there is nothing to stop them leaving retaliatory feedback against you! Kinda puts the feedback rating system in a different light.