August, 2008

Reflector

Lutz Roeder, author of the Reflector tool, has sent out an email burst with this announcement:

"After more than eight years of working on .NET Reflector, I have decided it is time to move on and explore some new opportunities."

Roeder's Reflector software is one of my must have tools - a key instrument that helps me to answer "Why does it do that?" and "Is it possible to ...".

It's likely that the return address on his email burst is unmonitored, but just in case, I wrote back to say:

NAnt and WiX Versioning

In this post, I show how I've managed to integrate WiX into my NAnt build scripts while retaining consistency of versioning.

Visual Studio Shortcuts for StyleCop

It turns out that there are shortcuts for the StyleCop analysis window in Visual Studio. It's just that no-one seems to have documented them.

NUnit Best Practices

I'm always looking to do things better tomorrow that I did yesterday - and to that end, I find other peoples "Best Practices" posts endlessly valuable ... not that I always agree with them of course, but I do enjoy being challenged to think.

Go read NUnit Best Practices, a fairly recent post by Scott White.

How many of Scott's 7 NUnit practices do you agree with? How many do you follow? Why?

Mandelbrots on TV

A couple of weeks ago, I received an email out of the blue from NOVA, a documentary series produced by the American PBS television channel.

Turns out they want to use pictures generated by my Mandelbrot Fractal screensaver!

Here's the official quote they graciously supplied ...

.NET 3.5 SP 1 problems ...

CEP00007.png

It seems that .NET 3.5 Service Pack 1 has a few issues ...

... First I heard was some postings on a New Zealand dot.net.nz mailing list

... Then I saw a post by Oren Eini with a list of bugs introduced by the SP - one of which breaks Rhino Mocks.

Outcome Based Thinking

Over on 43 Folders (great site, well worth a spelunk or two) there's a great post on getting focused.

I feel these techniques before, and find them quite useful - at least, when I remember to apply them. :-)

One key that has been really useful for me is to pay attention on how I phrase things I add to my TODO list - the template <em>I need to $FOO because I want to $BAR</em> is helpful here.

The Best RSS Reader

After using both RSS Owl and RSS Bandit for simply ages, I've finally found an RSS Reader that works the way that I want - and it was under my nose the whole time.

Mozilla Thunderbird.

That's right, Thunderbird. The RSS Reading experience is dead simple - you subscribe to a bunch of feeds, and they show up as mail folders. New postings appear as new messages. Couldn't be easier or simpler.

Conscious Development

I'm working on a couple of minor personal projects at the moment, and I'm using them as an opportunity to try and hone my skills at TDD/BDD style development. Even though I first heard about TDD some years ago, I haven't yet made the breakthrough where it becomes automatic. I guess I'm still at the conscious competence stage of skill acquisition.

Tool Proficiency

I've long been of the opinion that it can be immensely fruitful to work towards being a virtuoso of your development environment.

The more effectively you can drive the environment, the faster you're going to get the job done - and the more time you can spend on thinking.

The Keybinding posters for Visual studio are one good place to start.

Single Instance Applications

The .NET framework has lots and lots of built in goodies that aren't well enough known - like built in support for ensuring only a single copy of the application runs at a time. Too often, developers spend ages coding up support for operations that are already there!

Why use StyleCop?

One question that I've been asked recently is Why use StyleCop?

I believe that StyleCop is another example of a trend towards automation that has existed in our industry for decades.

Consider these two examples ...

Stylecop Documentation and Supression

The current download of StyleCop doesn't include any documentation that tells you what standards it enforces.