archive: 2007

Retrospective 2007

Early this year I posted on some of the things that I wanted to concentrate on during 2007. Like any good iteration, I feel the need to wrap it up with a retrospective. Here are the things that I wa

I now return to the sweet sound of static

While we were down in Austin at the Alt.NET Open Spaces conference people suggested the use of a newsgroup to maintain conversations that we had started. Running on a euphoric high from the session o

What is Brownfield?

This was originally posted at I’ll be out in Victoria on January 26th 2008 speaking on Parachuting Into Brownfield Applications and on C# 3.0 Beyond Linq. A common term


A few months ago some of the members of Edmug made noises that they wanted to work on a project that allowed them to give back to the community (a greater community than just the developer one we know

Opening VS2k5 .Net 2.0 projects in VS2k8

I’m starting a new gig right now and one of the sweet things about it is that I’m going to be working in .NET 3.5 straight off the bat. Hopefully I’ll have some more time to blog about things to do w

DevTeach Wrapup

Long after the end of DevTeach Vancouver 07 I am wrapping it up. Like Kyle, I have a sense of obligation to do this post. That’s not to say that DevTeach wasn’t fantastic, but I feel I must report o

Ontario MSDN mini-tour wrapup

I’m home from a 3 day junket through south and eastern Ontario. I’d like to take the time to wrap up the three events here. First huge thanks go out to MSDN Canada and their endless support of the c

Object conversion fix

I forgot to put the link to the downloadable source code for the Object Conversion post that I did yesterday. I have fixed that post and downloads are available here.

Object conversion

A while back JP posted about how he likes to use a different set of objects for transferring data to the UI layer (Screen Bound Dtos) than the ones that he has implemented in the domain model. This

Air Canada Coach

I’m flying to Toronto on Air Canada right now. I rarely fly AC because my experience has shown the seats to be uncomfortable and the service to be sub-par. I skipped the lines in the airport (and th

A Tale of Travel Gone Good.....I think

Unlike most people, my travel experiences, especially flying, have been of the positive variety. Every so often I have something disturbing or inconvenient happen, but rarely have they caused problem

Lest We Forget

I feel unquestionably blessed to live in a country that has a military heritage as strong as we Canadians have. From The War to End All Wars, to the Second World War, Korea, the countless and thankle

Going to Winnipeg...

For those of you that aren’t privy to the Fountain Tire television ads here in Canada, that is the final line in one of them. Yep….Winnipeg. If you’re in the City of….what the hell is Winnipeg the c

Ontario Speaking Tour

I’m booked up for the end of November to be in Ontario doing a whirlwind speaking tour. On the Monday the 19th I’ll be at the East of Toronto .NET User Group speaking on the new features in .NET 3.5

A good Alt.NET primer

Wally McClure just released a great podcast on Alt.NET. He interviews David Laribee who articulates the mantra behind the movement (practices and principles over tools and frameworks). I have to say

Premature Optimization and Mental Masturbation

For the last few days I’ve been thinking about some things that were said in a system design conversation that I had. To set the tone, we were talking about a greenfield web application that was to b

DevTeach 2007 Vancouver

It’s coming up fast folks. For all you Canadians out there, be prepared to book your flights (or change them if they’re already booked) on Sunday the 25th so that you can catch the 2:30pm PST start o

The Alt.NET Retrospective for me

The completion of the Alt.NET conference in Austin has created a plethora of conversation on blogs and in the altnetconf Yahoo Group. Some have been critical of the purpose and intent going into, dur

Alt.NET Wrapup

Thanks to the folks that setup the Alt.NET Conference. This is the start of something good. Like many said, it will be hard to proceed for a while, but we will influence change for the better both d

Alt.NET Day 3, Session 1 -- Getting the message out

This was a brilliant discussion about what we in the Alt.NET community need to do to propogate our message. The great part was that we had people from the Patterns & Practices group, MSDN Magazin

Alt.NET Day 2, Session 4 -- DDD

Interesting conversation on the optimal location for behaviour related to the domain. The discussion was around whether a Transfer of Funds from one Account to another Account should exist in a Domai

Alt.NET Day 2, Session 3 -- MS MVC Preview

Scott Guthrie is showing the yet to be released MVC implementation that will be coming out of Microsoft for preview in the next few weeks, and RTM sometime in Spring 2008. It’s pretty exciting to see

Alt.NET Day 2, Session 2 -- BDD

The BDD discussion was fantastic. It was primarily driven by a need for people to understand where it fits into the development process. One of the primary questions was where does it fall in the li

Alt.NET Day 2, Session 1 -- Bringing the passion

The morning came far to early today, but once I hit the first session I started to get pretty stoked and energized. We had a very passionate and, at times, heated debate about how to get more passion

Alt.NET Day 1

Unlike most people I showed up fashionably late to the show. I managed to squeek in 2 double Jose Cuervos with the nerd herd before retiring to the front lobby to discuss geeky topics. We indulged o

Edmonton Code Camp 07

If you’re looking for an exciting, action packed and woman filled way to spend Saturday the 20th of October, look no further than the Edmonton Code Camp. Drop by the U of A and see your favourite spe

Developer Inhibitions

I knew that Windows ME was built on whiskey (probably corn mash too) instead of good single malt scotch. I find this cartoon to be true when it comes to developers participating in usability sessions

The Duck

Microsoft is working on it’s new mashup technology named Popfly. The current image associated with it is this. As you can see, building mashups will make your bill go green and give you a pink compl

Alt.NET Conference

I’m heading down to Austin over (Canadian) Thanksgiving weekend to attend the Alt.NET Conference. The CodeBetter guys have posted a number of ideas for contnent in the last week that have me anxiousl

When is a Defect a Defect?

For the past 9 months I’ve been working on a project that is dominated by a desire to have heavy documentation created prior to development work commencing. As a result of this there is a trend to ha

Forgotten Purpose

Today I got an email from a guy who appears to have become disillusioned with what he sees in our industry. Unfortunately I, and probably a large number of other developers, can relate with his frust

The transformation of an igloo

I finally got some time today to migrate my blog from Community Server to SubText. Part of the transformation also includes the unveiling of my new logo. Stuart at Design Goblin has done a fantastic

Desert Code Camp files

Here is the stuff that I worked with on two of my presentations at DCC.  I’m not going to post anything from my C# 3.0/.Net 3.5 presentation.  If you want to see something from it take a loo

Desert Code Camp Wrap-up

We went, we saw, we sweated.  Desert Code Camp 3 finished up yesterday with another great turnout.  For Tom and I, it was a day of Agile goodness.  We talked on TDD, RhinoMocks and CCNe

Desert Code Camp -- Day 2

Well, it’s actually day 1, but it’s day two in Tempe (tem-PEE) for me.  Here’s the summary. C# 3.0 Beyond Linq:  This was my presentation.  Nothing special here.  Take a look at th

Desert Code Camp -- The Night Before

Tom and I made it into the Phoenix/Tempe (pronounced tem-PEE we’ve been told, not TEMP-eh?) yesterday.  First impressions:  Holy crap it’s hot!  We stepped out of the airport and i

Pre-Desert Code Camp gathering

Tom and I are on the move on Friday as we head down to Phoenix for the Desert Code Camp.  We’ll be arriving in town during the middle of the day on Friday and will definitely be looking for some

Refactoring goodness

Today I spent some time in our code at work (I know…shocking that I was writing code).  One of the things that I found was a group of three files that each contained anywhere from 3 to 20 public

Upcoming Events

My fall schedule is starting to book up and I’m looking to be quite busy.  If you’re interested in becoming a groupie of mine, you can find me at the following places in the next few months. Sep

Value delimited fields

I’m in the process of working on a migration strategy to get the Igloo off of the Community Server platform and onto Subtext.  My search of the internet provided few resources beyond BlogML to he

The Dependency Injection Fray

There’s a lot of discussion going on between Oren and Jacob (here, here and here) about the relative benefits, costs and overall usefulness of Dependency Injection.  Both have done a decent job a


Until today I had no idea what Ferragosto was.  According to Wikipedia it is an Italian holiday where “Close to the entire month of August is taken as vacation and leisure time…” The project I’m

Refactoring Analysis with the Help of nDepend

About 8 months ago I ran my work application through nDepend to see what kind of disaster we really had on our hands.  The results provided a very deep insight into the current state of our

Richness in Language

I’m sitting here watching the Argentine and Mexican U20 teams play in the Quarter Finals of the U20 World Cup and I’m noticing the language of the announcer more than I normally would during a sportin

.NET 3.5 Extension Methods Screencast

I’ve spent some time working with and presenting on extension methods.  In this screencast I create three different extensions.  One to check if a string is null or empty, a second to releas

Follow up on Anonymous Constructors in .NET 3.5

During my presentation at Edmug on some of the new language features in .NET 3.5, I had some great questions and scenarios thrown at me.  As a follow up to those questions I’ve recorded a second

What I'm doing to become a better programmer

I’ve been tormented and ridiculed by someone from Winnipeg (I know, really embarrassing), a guy from the US, and some whacko for an alternate hair reality.  All have posted on the things that the

Where do you find problems during refactoring?

I’m in the midst of reading Oren’s latest post about Working Software Over Comprehensive Documentation.  While I generally agree with Oren (and I realize he’s a big enough man that I don’t want t

Edmug's June Presentations

Yes, you read that right.  Edmug is going to have two shorter presentations on the 28th of June.  Top Opgenorth is going to present an introduction to embedded databases and db4o.  I’m

Guiding principles for running your project

Patrick Cauldwell wrote a brilliant post recently about the guiding principles for running your software development projects.  It runs the gamut from how to know when a piece of code is ready to

Starting newbies onto a project

This week I have the enjoyable experience of bringing 3 new developers onto our project.  Most of you that know me probably read that last sentence with a sarcastic tone on the word enjoyable.&nb

Internal vs. Release iterations

I had a discussion with a management type the other day about implementing the concept of release and internal iterations.  Currently that project has extremely long iterations (6 weeks or more i

Understanding the Basics

Oren‘s been creating a lot of discussion on the web recently with his thought provoking and, apparently, controversial blog posts.  One of his more recent posts hits on the topic of tools being a

Roy Osherove at Edmug

We were lucky enough, with the help of MSDN Canada and DevTeach (thanks Wendy and Jean-Rene), to have Roy Osherove of in Edmonton to talk on Agile software development.  Roy was

Geek Dinner tonight

Roy Osherove just arrived in town for his Edmug presentation tomorrow (May 22nd).  We’re going to be out tonight at Ric’s Grill downtown (104th Street and 102nd Ave.) at 7:30 pm.  There will

DevTeach 2007 -- Famous quotes

Can you fetch that for me?  Eric Cote to Wendy (Hot Agilista) Large, succulient balls?  (Active Nick) I’ve got nuts in my throat. (Sean Solback) I have a question.  How is it that I

DevTeach 2007 -- Wrapup

DevTeach came to a close today.  For some it was probably earlier than for others.  For me, it is ending at 3am after an evening of amazing conversation, great laughs, good food and good dri

DevTeach 2007 -- What to Test, and When (Udi Dahan)

We’re paid to create business value (amen). Finding bugs does not create any business value. Fixing bugs creates the business value. Preventing bugs creates more business value. Brian Marick’s test ty

Montreal can suck

I had to walk over from my hotel to the conference hotel (about 5 blocks) like every other day.  I looked out the window this morning and saw that it was raining, but I wasn’t prepared for the wi

DevTeach 2007 Keynote

Jean-Rene has started and is announcing that DevTeach will be a twice yearly event.  The next show is in Vancouver Nov 26th to Nov 30th.  JR rocks.  Yesterday he said that he was worrie

DevTeach 2007.

Folks, if you aren’t going to DevTeach next week you really need to.  The content is fantastic, the venue is remarkable and the city is spectacular.  Top that off with good proximity to Rue

CruiseControl.Net Remoting Error

On Friday afternoon I noticed that our CC.Net server had stopped working.  I spent the entire afternoon looking into the cause of the problem to no avail.  Finally I resigned the idea that I

Calgary Code Camp -- Taking CI to the Next Level

Yesterday I was at Calgary Code Camp to present on Taking Continuous Integration to the Next Level.  James, Bill and group ran a remarkably smooth and organized event.  The venue was fantast

Calgary Code Camp Tomorrow

I’ll be at Calgary’s Code Camp tomorrow (April 28th, 2007) out at the U of C.  After all us Edmontonians ran away with last years swag, James and Co. decided to have us speak so that we won’

Some Meetings are Anti-Productive

During the last week I’ve had to sit in on some significantly disturbing meetings.  Let me set the record straight, I usually attend a number of disturbing meetings each week, but these did stand

My case against weak-typed languages

Before you read this post in it’s entirety, you need to head over to Justice Grays blog and see his post on his Grandmother and the difference between strong-typing and weak-typing.  Instead

CreateMock Live Template Update

After some playing around in RhinoMocks I realized that my Create Mock Live Template wasn’t nearly as elegant as it could have been.  I’ve updated the import file here.  This version uses th

Writing unit tests

Yesterday I was bored.  When you take this bloke out of the Igloo and it’s to warm to his tongue stuck to a parking meter he tends to write manifestos.  This one stemmed from having to fix a

Edmug's 1 Year Anniversary Party

A year has come and gone, and Edmug is flourishing.  In the past 12 months we’ve managed to hold 13 meetings and one code camp that have seen some of the most recognized names in .NET development

Why Gmail continues to win me over

I’ve been using Gmail for a few years now.  For the past year or so I’ve been managing my Gmail accounts in Outlook.  About a month ago Outlook quit sending messages for me (I think it’s rel

.Net vNext (Orcas) and TimeZone2

One of the new features in C# 3.0 (more appropriately .NET 3.5) is the addition of the TimeZone2 object.  TimeZone2 greatly enhances your ability to work with different time zones over the older

It's that time of the year again

For the next week you’re going to be opening your feed aggregator of choice only to be inundated with the “I got an MVP!” posts.  If you’re like me you’ll be thinking “Yeah-yeah-yeah.  Congr

Going dark

Justice pinged me as soon as I got home today to point out what has happened to Kathy Sierra.  Take the time to read the whole of Kathy’s post.  If you’re not a subscriber to her blog, read

Coding with (or without) whitespace

Jonathan Cogley posted on how he believes that whitespace in your code is a code smell.  Thinking about this concept, I can’t agree fully one way or the other.  I think that there are some s

Another Mocking Template for ReSharper

I spent some time today writing ordered mock tests and realized that I needed a nice quick template for the using statement.  You can download it here.  After importing it you’ll be able to

Refactoring approaches

I’m working on a fairly large codebase right now.  Unfortunately it has significant problems.  Right now we have the time to work through some of these problems, so we are.  W

Visual Studio "Orcasf" Code Metrics

I spent a little time this afternoon looking at the new Code Metrics functionality that has appeared in Visual Studio “Orcas”.  I think that there are a number of different things that need to be

C# 3.0 and the var type, Part 2

I didn’t cover this off in [my previous post on the topic](, but while I was working on my last post to see if I could get the new construct

Constructors in C# 3.0 followup

In my previous post on Constructors in C# 3.0 I stated that I didn’t understand the reasoning behind compilation creating two Employee objects in the way that it does. Richard left the followin

The Contracting Game

In a week or so I will have been contracting for about 6 months.  I made a move away from the employee world because of two major factors.  The first was the fact that employee status wasn’t

ReSharper Live Templates

One of the nicest features in ReSharper is Live Templates.  At work during the last week I was writing a lot of mock tests and I was getting tired of tapping out the same thing over and over.&nbs

ReSharper Withdrawals

After a weekend spent coding in the March CTP of Visual Studio ‘Orcas’, I can safely say that I’ve seen another sign that ReSharper makes developers junkies.  The Orcas CTP is provided as a VPC i

Constructors in C# 3.0

Another of the new features in C# 3.0 (part of Visual Studio Orcas) is the ability to do initialize objects inline and without the need for special constructors.  As you can see in the image belo

C# 3.0 and the var type

Back in the good old days when I was programming in VB6 we had this data type called variant.  Basically we could use it for anything we wanted to as long as we were comfortable with weak typing.

Changing the way we code

One of the things that I noticed in the last couple of years is that a significant number of .NET developers (including myself) are doing nothing more than procedural programming while using

Orcas and it's framework

For all the RTM versions of Visual Studio that have been produced by Microsoft since the inception of the .NET framework, each has only worked with it’s own version of the .NET framework.  Visual

Getting work done

I’ve decided that my company (who employs one lousy, but good looking programmer) is going to help me get more work done.  I find that when I’m working at home I get distracted easily by things l

Velocity and having your tires shot out

A while back I posted about Velocity being more than just speed.  This week I saw an entire project management team decide to shut the door on velocity.  I’m not going to pretend to understa

Edmug with Bristowe

We Edmontonians were out in fairly large numbers tonight to see John Bristowe, of DNIC and Plumbers fame, talk about stuff.  Sure it wasn’t just stuff, but there was a lot of stuff to be tal

EViL v1.0.4 release

We pushed out a new release of EViL last night.  Looks like we added the following features for this release: Support for validating all types of properties (public, private, etc.) Support for v

Hey ReSharper...Shake your heads!

Maybe it’s the 3 NeoCitroen’s that I’ve had in the last hour.  Maybe it’s the Tylenols too.  Heck, maybe it’s the combination of the two with this craptacular illness as a side dish.  A

EViL Decorating in the Igloo

Update #2:  JP called to tell me that this really isn’t a decorator pattern.  It’s actually the adapter pattern.  Like he said in his training course, identifying patterns in the wild i

My latest continuous integration experience

Last week I spent a lot of time working with people that I’d never worked with before.  Surprisingly, of the eleven people in the class, only about half had worked with any kind of continuous int

A week with JP Boodhoo

Last week I spent five full days under the tutelage of Jean-Paul Boodhoo.  He was offering a course he’s calling Nothin’ But .NET and I was lucky enough to weasel my way into it as one of the 11

ReverseDOS and Community Server error

I got hit by some spammers today and I figured that I’d alter my ReverseDOS.config file so that they wouldn’t get through again.  One of the common things that was in each post was the value [/ur

There's more to Velocity than speed

Tonight I was sitting here thinking about some of the current issues I’m fighting with at work.  One of the most obvious to me is the fact that we have no project velocity.  After thinking a

So, what should I test?

I was talking with Dave Woods today and we slid into this topic.  We’ve all been in a situation where we release a new version of our software to a client’s testing environment and they imme

Looping Code Smell?

I read somewhere in the last few days that someone considered that looping over enumerable lists using a for loop should be considered a code smell.  They went on to say that the preferred way to

Inbred in IT

I was thinking about the reasons that I’m continually getting a feeling of conceptual and practical stagnation when I go in to work.  One can easily say that it’s because people are stuck in

Hi my name is Jack and I'm a...Canadian?

Recently I went through the exercise (quite unsuccessfully I might add) of trying to determine what is my technical expertise.  I’m sure you’re thinking “Well that’s easy, he’s a .NET developer”.

Dictating to the User for Technical Reasons

I have been fighting with a technical situation at one of my clients for the last couple of months.  Because of decisions made, well before my time, about the architecture of the application

ReSharper...crack for developers

I’ve been using ReSharper for about two years now.  As much as I would rather be drawn and quartered than work with the guy who suggested we make it a requirement on that project, I will give him

Introduction to nHibernate

Thanks to all the folks who attended my session at the Victoria Code Camp.  I know it was a little rough and having the VPC not respond to the keyboard was more than a little frustrating. I have

Scoble complains about Engadget

I have a distant admiration of Robert Scoble.  He’s doing things in new ways and that’s admirable, but sometimes I read his posts and I think “WTF?”  This morning was one of those times.&nbs

Leaving Victoria....maybe...

I’m out at Victoria International Airport in the fog.  Thick fog.  So thick that I can’t see the light posts 100 ft away.  Flights are being canceled, but it looks like the fog is rolli

Victoria Code Camp Wrapup

Nolan Zak and his crew put on a fabulous event here in Victoria.  The UVic facilities were fantastic.  Three rooms, each with a podium where the speaker just had to plug in their laptop to t

Victoria my love...

So I just got into Victoria in advance of the Victoria Code Camp.  The cab ride from the airport was a long one, but I did see some interesting things.  First, every Victoria Yell

Cascading Defects & Automated Migrations

We all know how annoying it is when you’re surfing the web and you’re greeted with a cascade of never ending pop up windows.  I saw the same thing happen yesterday at work, but instead of with po

Cruise Control .NET v1.1 401 Dashboard 401 error

This past week we upgraded our CCNet server from v1.0 to v1.1 and encountered a few issues.  The first number of issues that popped up were most definitely caused by the networking departments in

Victoria Code Camp

Next Saturday (January 27th) I’ll be in the beautiful city of Victoria to speak at the Victoria Code Camp.  My topic…Introduction to nHibernate.  So if you’re in the vicinity of Victori

Windows Developer Tools Day

The good folks over at O’Reilly are _‘…unilaterally declaring Friday, January 19th to be “Windows Developer Tools Day.”‘  _They’re tying this to the launch of the new book by Jim Holmes and James

Miguel Castro @ Edmug

Last night Miguel made the long journey from the Garden State to the City of ex-Champions.  We warmed it up so that the foreigner didn’t have to talk about getting frostbite while typing.  T

Thank goodness for the Igloo

I know when people read this they think I’m being facetious when I say I live in an igloo and on an ice flow.  Well let me tell you, it’s not all fun and games up here.  After a wonderfully

Custom Serialization of business objects

In the past the most that I’ve ever used serialization is the automated kind that you get with web services.  I’ve recently been looking into some stuff that could use the power of serialization

Defensive Programming

Anyone who has seen me harp during a code review knows that I promote and practice defensive programming.  I don’t like to leave anything to chance when I write a public facing piece of code.&nbs

Maybe this will stop the 5 things insanity...

Like a number of other people, I find chain letters, endlessly forwarded jokes and these blog chains quite challenging.  Don’t you think that there’s enough mindless drivel on the web with me add

Miguel Castro at Edmug in January

  We are having another great presentation at Edmug in January.  This time, with the help of INETA, we’ve been lucky enough to get Miguel Castro out of New Jersey. Please note tha

Before I get started on another year...

I wanted to write some things down so I can clear my mind and, hopefully, approach 2007 with a different perspective.  These aren’t New Years resolutions.  These are career oriented and hope