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

Database Design – Still Important In These ORM-Obsessed Days

Tobin blogged earlier this week about how quality ORM tools like NHibernate make it easier to code to normalized schemas. Here’s a corollary for you: The use of ORM tools doesn’t absolve the need to maintain good database design principles, and even NHibernate won’t save you from your own stupidity. Following an application upgrade release last night, I’ve spent a disproportionate amount of today trying to debug the following exception, which appeared to originate in an area of the codebase which I personally had heavily modified: ...

29 July 2008

Remember The Milk

In response to a blog post that I’d shared in Google Reader, Jez emailed me to ask: “Do you use RTM? It’s always been one of those web apps that seem really useful, but I’ve never made the leap to actually using it in anger. I suppose you need to adopt it in tandem with the five-point GTD philosophy to get real benefit?” My response: “Yes, I do use RTM, and I love it. I’ve been looking for a decent way of managing my to-do lists effectively for years, and RTM really scratches that itch! I now have the web app permanently open in a Firefox tab, and use “MilkSync” to synchronize with my Pocket PC every half hour. ...

26 June 2008

On the Joys of Object-Relational Mapping

My name is Ian Nelson. I’m a recovering SQL addict. It’s been four weeks since my last stored procedure. One of my reasons for leaving my cosy permanent job and entering the scary cut-throat world of freelancing was to get a broader exposure to different tools, technologies and methodologies, while remaining with my feet planted firmly in the .NET universe. So, when I got offered a position in a team who were using Subversion, Monorail, Ext.JS, NUnit, Oracle and NHibernate, I jumped at the opportunity. ...

9 April 2008

Going For It

I’ve never been a fan of those motivational posters that you see on office walls (usually in sales or marketing departments) that attempt to depict a word like “Opportunity” or “Teamwork” with a single image, usual of some nature scene or a lone individual rising above the odds to achieve a difficult goal. To my mind they always look a bit facile, glib and superficial. “Destiny” equates to a holiday villa on the Maldives? “Integrity” is a Lion? “Success” appears to involve hang-gliding off towards the ocean in an action which brings to mind Reginald Perrin?! I demand more thought and more words from my motivational office decorations! ...

14 January 2008

Inside Microsoft SQL Server 2005: The Storage Engine

During 2007, I unexpectedly achieved a long-held ambition by increasing the number of books I regularly read (as opposed to merely buying, then leaving them to languish on the bookcase!). I read plenty of techie books of course, but also made use of local libraries and devoured plenty of books on other subjects, and even found time for some fiction. I think having a young baby in the house was partially responsible for this achievement – not much else to do of an evening any more! ...

5 January 2008

Family Tree Update

With the return of the dark wintry nights to this sceptered isle, I’ve been taking the opportunity to flesh out my Family Tree a little more. And it isn’t just the addition of young Benjamin – since I last uploaded a tree eleven months ago, I’ve increased the number of individuals in my database by 55, to a total of 1114 from 307 family groups. But more than that, the quality and number of facts for many individuals has increased. This year, I’m trying to methodically work through my ancestors in a bit more detail and fill in some of the tricky gaps that I left last year when everything was new to me and there were plenty of “easy pickings” to be had. ...

31 December 2007