February 2007 Entries

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 is hard to do and takes a lot of practice.  Looks like I need a lot more practice.  He also asked about a factory class to create these items, and I figured that it would be nice if I put the one I had created up here too. I'm working on some stuff for the EViL project again.  After my training last week, I've been looking at the work I do...

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 integration before.  Top off the situation with the fact that the group was not at all proficient with the style of development (TDD and DDD for example) and you end up with an interest first week for a team. We really only worked with a full CI environment for a couple of those days, but I noticed one really interesting thing.  We never broke the...

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 attendees. The first thing that needs to be said about this course is definitely for well seasoned developers.  You can not expect to go into this course and learn .NET.  There is no way that a developer at that skill level can expect to keep up to the concepts and pace that they will be faced with. We covered a lot...

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 [/url] so I added the following to the config. <filter isRegex="true" matchCount="1">[/url]</filter> Unfortunately that addition caused the following error when I tried to open any page on my site. XML Parsing Error: no element found Not a very pretty error.  I'm not sure why that error is being generated, but it is.  I'm guessing that the [/url] value appears somewhere in the page that I'm...

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 about velocity for some time, I decided that I should put those wandering thoughts to paper...so here we go. To truly understand the problems I think that my team is having with velocity, I figured that I should first fully understand the definition of the term as it pertains to software development.  My searching around found that velocity can be defined as follows. Velocity: ...

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 immediately ask "So, what should I test?"  For most of us developers this is a tough question to answer.  We're not experts in the black art of system test design and writing.  Heck, most of us are only a couple of years into full blown unit testing.  So how do you answer this? I figure I've answered the question three different ways.  I tell...

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 loop should be using the foreach syntax.  The reasoning behind the the preference was that the for loop syntax opens the possibility for boundary errors.  Everyone has written a loop over an array where we start at 0 and end at array.Length instead of array.Length - 1. In the past I would not have cared if a developer had used either method of...

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 their ways, but I think that there's more to it than that. Every so often I have conversations with people who are so proud when they state "I've been here for over 20 years".  There always are people who stay at one company for a long time, but I've been shocked at how large that person count can be.  To top this off, the new blood that...

Walking the Property Tree with Reflection for the EViL project

This past week I started to work on the EViL project over at Codeplex.  I figured that if I commented about all of its weaknesses, I should get involved and offer some solutions to the problems that I pointed out. Today I finished up the first bit of code that I was working on.  What I was looking to do was extend the capabilities of the attributes in the EViL framework so that comparisons could  be made to properties that were attached to embedded objects.  For example, I want to be able to ensure that date of an invoice is...

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".  Well, you're right, but I was looking to determine if I could convince myself that I had an expertise that was more granular than that.  I was looking to be able to feel justified in saying I'm the <insert .NET technology of choice here> guy. Frankly, I couldn't do it.  I'm a Jack of all trades and master of none.  I've worked with all sorts of different technologies, but...

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 I'm working on, we have no ability to provide full transactional protection to the data that we're saving to the database.  After numerous meetings with architects from different areas of the company, I've been told that this is the way it is and there is no remedy in sight. I was called a meeting again this past week to discuss issues around one set of specific transactions where...

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 credit for introducing me to crack cocaine for .NET developers.  I realize all to well that I don't get enough IDE time at work anymore.  With that said, I do find that every week I'm finding great little things within the tool. For the last week or so, I've been working on recovering as many of the over two hundred ignored tests...