Tip of the Day #11 (iMicros)

iMicros is a plug in for FireFox that lets you automate repetitive tasks. This is a fantastic tool for anyone that develops websites as the flow through the site can be recorded and played back quickly and repeatedly. It reduces tester error by taking the mundane parts out of performing user tests. It can also …

Open Source Risk Management

There are some pretty cool things happening in the open source space on the .NET platform these days and new projects are being started every day. However how do you sort the wheat from the chaff? How do you manage risk when using open source? In this post I hope to address this issue as …

How to get a value from a text box into the database

This question was asked on a forum and I took some time to construct a reasonably lengthy reply so I’m copying it to my blog for a bit of permanence. I suspect that many of my regular readers will be dismayed at the lack of proper architecture (e.g. layering) but we all had to start …

Dynamic Objects in C# 4.0

It seems only very recently that I was posting about this wonderful new feature in C# 3.0 called LINQ and its associated language features such as anonymous types, object initialisers and lambda expressions. Soon C#4.0 will be released and it has a host of new goodies to look forward to. So far I’ve just been …

What not to develop

I was recently looking to book a hotel in Southwark in London. I thought I’d found the perfect hotel, it was inexpensive (by London standards) and close to where I would be visiting. They also had availability on an offer for £75 per night, so long as you checked in and out on specific days, …

Rant of the day: Learn to frickin' count!

I was in a shop recently and I bought 6 items at £5 each. A total price of £30, even I can manage that mental arithmetic without resorting to a calculator. However, the till decided that the total price was £30.01. For a penny I really can’t be bothered to argue, but it got me …

Rant of the day: IDisposable

My colleagues are probably used to the fact that I rant about code quality frequently. I take code quality very seriously. Not because I’m especially expert in it, but because features of basic code quality make it easier for other people to read and maintain the code. Today’s irritation comes from some code (replicated in …

The StackOverflowException

Take a look at the following code: class Program { static void Main(string[] args) { try { RecurseForever(); } catch (StackOverflowException) { Console.WriteLine(“Caught Stack Overflow Exception”); } catch (Exception) { Console.WriteLine(“Caught general Exception”); } Console.ReadLine(); } static void RecurseForever() { RecurseForever(); } } What do you think the output of the program will be? If …

I guess I've never needed to do this before…

I guess I’ve never created a struct in a while (at least in Visual Studio 2008 using C# 3.0) because I’ve just discovered that the Automatic Properties don’t work in structs. I’ve just created this struct: public struct CapacityUnit { public string Name { get; private set; } public long Multiplier { get; private set; …