The Flawed Eventually-upgrade Software Model

I think Windows XP was the first real release of Windows–it had finally gotten to a usability and stability point that people could accept.  The Microsoft support model changed shortly after Windows XP was released to basically support any piece of software for as long as ten years (if you paid extra for support roughly 2 years after a successive version was released). To paraphrase a famous law: software becomes obsolete every 18 months.  That was true for a long time; but hardware and software isn’t improving at that rate any more.   Software has basically caught up with existing hardware … Continue reading The Flawed Eventually-upgrade Software Model

Working with Subversion Part 2 (or Subversion for the Less Subversive)

In my previous Subversion (SVN) post I detailed some basic commands for using SVN for source code control.  If you’re working alone you could get by with Part 1.  But, much of the time you’re working in a team of developers working on versioned software that will be deployed to multiple places.  This post will detail some more advanced commands for systematically using SVN to simultaneously work on multiple editions and versions of a software project. (hence the “less subversive”). Practices The basic concept of working on two editions or two versions of a software project at the same time … Continue reading Working with Subversion Part 2 (or Subversion for the Less Subversive)

Working with Subversion, Part 1

Working with multiple client projects and keeping abreast of the industry through browsing and committing to open source and other people’s libraries means working with multiple source code control (SCC) systems.  One of the systems I use is Subversion (SVN).  It’s no longer one of the SCCs I use most often so I tend to come back to it after long pauses and my SVN fu is no longer what it used to be.  I’m sure my brain is damaged from this form of "task switching", not to mention the time I spend trying to figure out the less common … Continue reading Working with Subversion, Part 1

Criteria for Success

I was having a  conversation with a client recently and the topic of “11th hour” came up.  He seemed to think it wasn’t possible to deliver a software project without some sort of “11th hour” panic.  I disagreed I disagree because I’ve done it on small and large projects.  Don’t get me wrong; it’s very easy to lose sight of things and easily get a project into a state where “11th hour” panic is inevitable.  But, it’s not something that can’t be avoided. One of the problems with software projects, it seems, (and with other projects, I suppose) is losing … Continue reading Criteria for Success

The Era of Usability

For most of the personal computer generation, success of computers and their operating systems have been ruled by people’s ability to do what they needed to do on or with the computer.  We’re starting to enter an era where the success of a computer and/or it’s operating system is going to hinge on it’s ability to reduce usage friction compared to another. We’re entering an era where software has effectively become a commodity—where the majority of people don’t differentiate between the major operating systems or the most frequently used software. To a certain degree computers and computer technology is becoming … Continue reading The Era of Usability

Software Process and Reduction of Quality

Ken Schwaber had a conversation with Scott Hanselman about the concept of “done”.  He said that software developers have a habit of culling down all the generally accepted practices of software development except the writing of code.  He says that, when pushed, software developers reduce quality in an effort to produce a software product by a certain time.  This leads to a huge debt that must eventually be paid.  These generally accepted practices include things like unit testing, refactoring, design, documentation, etc.  In the case of producing an API or and SDK, I believe these practices includes community involvement.  When … Continue reading Software Process and Reduction of Quality

Location of unit tests.

I had a short  conversation at Alt.Net Canada about the location of unit tests.  I personally tend towards a distinct unit test project.  But, I deal with mostly commercial, off-the-shelf (COTS) projects where I simply can’t ship code like that.  I also don’t want to wire-off the unit test via #if because I would then be shipping something different than that which was tested. From an enterprise application point of view, this is different.  I would have no problem including the unit tests within their respective project as production code

Routing and Remote Access, NAT, and Internet connection sharing.

I’ve got a Windows 2000 Server running Routing and Remote Access with the NAT functionality to route my Internet connection through a computer running a firewall, etc. This works well, I can share my Internet amongst my local network while offering a bit more security. The problem is, Routing and Remote Access often gets confused and can’t perform DNS lookups and therefore blows Internet connection sharing out of the water.  This seems to occur if the radio/modem loses power. Until recently, the only way I found that rectified the problem (sometimes) is by rebooting the server. As you might understand, this is … Continue reading Routing and Remote Access, NAT, and Internet connection sharing.


On 1-jul-06 I was awarded MVP Visual Development – C#.  Microsoft has been so kind as to offer blog space here on; and, I’ve been looking for a better blog, so I’ll be moving my blog here. I should be a little more prolific with by blog from here on in. Welcome to my new blog.