Seeking Kindred Spirits

I’m coming round to the realization that my hugely enjoyable first contract at Ventura last summer might have been something of an anomaly. That project was decidedly agile, test-driven, and used a bunch of modern technologies including Monorail, ExtJS, Subversion, NUnit and NHibernate. The requirements were well-defined, and the team was highly effective, with a pragmatic project management team who kept the development team free from bureaucratic processes, leaving us able to get on with delivering some cracking software in double-quick time. ...

12 April 2009

Failed MCP Exam 70-553 :(

My current primary client has an annoying habit of closing for random days and half-days, including last Thursday afternoon. I decided to try to make the most of this time off, by taking Microsoft exam 70-553, which has the snappy title “UPGRADE: MCSD Microsoft .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft .NET Framework: Part 1”. I’ve already passed the second part of the upgrade process (70-554), so passing this exam would give me no fewer than four new certifications, including the prestigious MCPD Enterprise Application Developer. ...

12 April 2009

ASP.NET Just Became a Legacy Platform

One of the least surprising but more significant announcements to come out of Mix ‘09 last week was the general availability of ASP.NET MVC 1.0. The development process for this framework has been very transparent, with no fewer than eight previews, betas and release candidates made available over the past year or so. Microsoft are being careful to tout ASP.NET MVC as being “an alternative, not a replacement, for ASP.NET Web Forms”, but just look at their list of some of its benefits: ...

22 March 2009

Zero Interest Bug Arrives

So, base rates are now down to 1.0%, and the Zero Interest Bug is not just conjecture. From The Times: “About 1,500 customers who took out a tracker mortgages pegged at 1.01 points below the base rate with Cheltenham & Gloucester (C&G), owned by Lloyds Banking Group, will be paying no interest at all on their home loans from next month. It is the first time that a mortgage lender has been forced to reduce the interest on their home loans to zero. Lloyds Banking Group, now 43 per cent owned by the taxpayer and also the owner of C&G, said that there was a zero floor to the deal and that because its computer systems could not cope with zero, it would be temporarily charging 0.001 per cent, or 8p a month for a borrower with a £100,000 mortgage. However, that money will be refunded.” ...

5 February 2009

NDepend

OK, dear readers, today I’d like to talk about tools. Software development isn’t really so different from traditional skilled crafts in that it is important to have an understanding of the tools available to help you create a quality products in the least amount of time possible. For .NET developers, the Visual Studio IDE is usually just the starting point, and most of us will come to rely on some of the tools listed in Scott Hanselman’s famous tools list. Personally, I can’t imagine coding without first installing Refactor Pro, editing text files in anything other than TextPad, or working on a machine that doesn’t have Snag It installed. ...

4 February 2009

.NET Coding Standards

Sometimes, when you join a new team as a .NET developer, the team lead proudly points you in the direction of a Word document or wiki page detailing the team’s house coding standards. In my experience, these documents are invariably: Incomplete. Subjective. Not enforced. Largely copied from the interweb. Obsessed with the trivial (e.g. whitespace) while failing to mention the genuinely useful (e.g. boxing/unboxing, avoiding use of deprecated classes, Dispose pattern, etc). I know this because I’ve been involved in creating such documents in the past 🙂 ...

23 January 2009

SQL Server Point-in-Time Restore

One of the multiple hats that I’m currently wearing for a client is that of SQL Server DBA. In this guise, I have recently fielded a couple of email queries from users concerned about the data recovery options available to them, should application data be inadvertently deleted: “What kind of database backup and restore mechanism is in place for [application]? If someone deletes any data from [application] front end is it possible to restore it? Generally the way to recover data would be to restore the database from a database backup file, however this would restore all data held in the backup and would overwrite any changes made since the time of the backup.” ...

23 January 2009

On 64-bit TFS, Virtualization, and Conchango SCRUM

Earlier this week I picked up a hire car and headed over to deepest Cheshire to install an instance of Team Foundation Server 2008 for a client. Before setting off, I tried to make sure that all the prerequisites were in place – i.e. that there was a suitably-specced server available for use, which was connected to the domain, that all the necessary service accounts were created, and firewall ports opened, etc. ...

23 January 2009

Zero Interest Bug

I started my career in professional software development a decade or so ago by testing and fixing banking code that had fallen victim to the millennium bug. Could the prospect of zero percent interest rates create a similar boom in demand for software developers? From Contractor UK: Interest rates have plummeted from 5% to 2% since early October and are heading lower. Some analysts say 0% is not out of the question. ...

19 December 2008

MSB3247 – Dependent Assembly Conflicts

Earlier today a dev came over to ask me about a compiler warning he was getting when building a .NET solution: MSB3247: Found conflicts between different versions of the same dependent assembly. This is basically telling you that one project or dependency in your solution is referencing one version of an assembly, whilst another project or dependency is trying to reference a different version of the same assembly. Unhelpfully, the message and build output don’t tell you which dependent assembly is causing the problem! ...

4 December 2008

Performance of Loops on Collections

Interesting article from Patrick Smacchia (the NDepend guy) in which he runs some benchmarks on the cost of looping in different ways over different constructs and comes to the conclusion that: “looping on array using for is 5 times cheaper than looping on List<T> using foreach (which I believe, is what we all do)” Well worth a read, although I suspect that in my solutions the bottlenecks will remain the out-of-process calls, i.e. database access and web service calls. Still, a 5x gain is not to be sniffed at. ...

28 November 2008

12 Reasons Why I Love Unit Tests

On my continuing journey through this thrilling world of professional software development, I frequently encounter teams who hold no truck with this crazy new-fangled concept of unit testing. Heck, truth be told, I sometimes come across teams who don’t use source control, but that’s by the bye. In these situations, I try my best to lead by example, continuing to practise TDD on any new code that I cut, and insisting on covering with unit tests any pre-existing code which I have to modify. Sooner or later, this prompts someone to ask why I am doing this (often insinuating that I am wasting my time, and by implication the client’s money). At that point, flustered, I invariably struggle to remember or adequately articulate the many and various ways in which unit testing makes me a better developer. So, consider this blog post a personal aide-mémoire to help me the next time this occurs (as well as being a homage to Jake Shillingford’s second-best song). ...

11 November 2008

A British Wifey

Today was a proud day indeed. Remember four years ago when I blogged about Jocelyn getting a fiancee visa from the British Consulate in Los Angeles, which paved the way for her to travel to Blighty with the intention of marrying me..? Well, since then we’ve turned that fiancee visa into a limited leave visa, and then into a settlement visa. We have spent over £2000 on government fees for these various rubber stamps – outrageously high amounts which resulted in letters being sent to and from the Home Office. Along the way, we got married, moved house, and of course Benjamin came along to change our lives forever (in a good way, of course, Son!). ...

2 September 2008

What's In Your Wallet?

My good buddy John just published a typically navel-gazing post detailing the contents of his wallet, and went on to invite readers to divulge details of their own billfolds in what I can only presume is some cunning and evil plan for mass identity-theft 🙂 Well, as I said in the comments to John’s post, I was surprised at the quantity of sentimental knick-knacks and memorabilia he has in there, compared to the rather prosaic and functional contents of my own wallet. ...

9 August 2008

A Keyboard Makes A Hell Of A Difference

It occurred to me recently that I’m not getting any younger, and that sitting hunched over a keyboard for a dozen hours a day will probably lead to some form of RSI sooner or later. So I started looking for ways to improve my daily working environment. Unlike John, I can’t afford a Herman Miller chair, and even if I could, I’m a freelancer rather than a telecommuter1 so I would have to regularly carry the chair on the train to client sites, where they would probably ostracise me for being a weirdo who brings his own chair to the office. So I looked for something a little more portable, and decided that perhaps it was finally time for me to try one of those fancy split ergonomic keyboards that I’ve always scoffed at. After reading a few review on Amazon, I plumped for the Microsoft Natural Ergonomic Keyboard 4000. ...

1 August 2008