Rob Smyth
Tuesday 24 June 2008
Specific Data Types Avoid Primitives Confusion
An interesting confusion occured today at work one the interpretation of a method parameter named something like 'widgetPercentage'. One developer took 5% as being 0.05 and the original author expected 5% to 5.0. My first thought is that we are missing a 'Percentage' type to remove this ambiguity. But, this would require a constuctor that took a percentage as a sting like 'Percentage("5%")'. Seems fine, but both an example of my loathing of such strings and the lack of use of strong types. I do 'feel' that a strong type could have avoided the problem here.
NCoverCop And Warm Fuzzy Green
Right now I'm coding at home on an open source project and it is surprising just how much I miss a build box running NCoverCop . Each time I want to add a feature I feel the old tug between TDD and hacking. It seem that this 'tug' is dimished at work as NCoverCop makes sure that no new code goes in without tests, at home I still have the temptress devil on my shoulder.
'Interesting' how I find working with NCoverCop a relief rather than a burden. NCoverCop in fact provides the "warm and fuzzy" of a TDD green. It just feels good with and like driving without a seatbelt without.
'Interesting' how I find working with NCoverCop a relief rather than a burden. NCoverCop in fact provides the "warm and fuzzy" of a TDD green. It just feels good with and like driving without a seatbelt without.
Friday 20 June 2008
Golley & Violet's New Kennel
When we moved into our home we inherited an old kennel for the dog's in their dog run. The dogs have loved it, but it finally fell apart. So I've built them a new one.
In the past our dogs have had individual kennels and never used them. The differences were:
The new one is bigger and the dogs love it. :-)
In the past our dogs have had individual kennels and never used them. The differences were:
- Lots of straw
- Large - 1.6 meters square
- Large front opening (three walls)
- Postioned so they could see the house and garden from it
The new one is bigger and the dogs love it. :-)
Tuesday 17 June 2008
Mocking Generic Methods with NMock2
Mocking generic methods is a bit of a problem using my preferred mocking framework NMock2 but Nigel has found a way. Check out his blog or download his NUnitExtensions project. Great time savers.
The NUnitExtensions project I have in my NoeticTools google project is inspired by Nigel's. I intend to delete mine and use Nigel's one.
Another good one Nigel.
The NUnitExtensions project I have in my NoeticTools google project is inspired by Nigel's. I intend to delete mine and use Nigel's one.
Another good one Nigel.
Sunday 1 June 2008
Programmatic Pane Nesting Using DockPanel Suite
I've blogged before on DockPanel Suite and I'm using this framework in my VicFireReader project. In the last week I've had a need to programmatically split the right pane vertically so that I have a top right pane and a bottom right pane as shown in the picture. The code fragment below shows how it was done. 'contentPanel3' is docked to the bottom right.
public MDIParent()
{
InitializeComponent();
DockPanel dockPanel = new DockPanel();
dockPanel.Dock = DockStyle.Fill;
dockPanel.BackColor = Color.Beige;
Controls.Add(dockPanel);
dockPanel.BringToFront();
DockContent content1 = GetDockContentForm("Content 1", DockState.Document, Color.SteelBlue);
content1.Show(dockPanel);
DockContent content2 = GetDockContentForm("Content 2", DockState.DockRight, Color.DarkSeaGreen);
content2.Show(dockPanel);
DockContent content3 = GetDockContentForm("Content 3", DockState.Float, Color.PaleGoldenrod);
content3.Show(dockPanel);
content3.DockHandler.FloatPane.DockTo(dockPanel.DockWindows[DockState.DockRight]);
}
private DockContent GetDockContentForm(string name, DockState showHint, Color backColour)
{
DockContent content1 = new DockContent();
content1.Name = name;
content1.TabText = name;
content1.Text = name;
content1.ShowHint = showHint;
content1.BackColor = backColour;
return content1;
}
Subscribe to:
Posts (Atom)