Posts

Treat Warnings As Errors with this one weird PowerShell Script...

There is this great feature in Visual Studio that lets you really dial up the quality of your code. It has been there forever it seems, but very few people use it. The compiler spits out errors, which stop your app compiling. You fix your errors and move on. But the compiler also spits out a lot of warnings too. And …

Guess Who's Back?

Ok, so not that big a leap, it’s just me. Six months later me. Moved to the UK me. I’ve taken the plunge and moved away from Windy Wellington in little old New Zealand to a place in the UK called Milton Keynes. Famous for wide streets, round-a-bouts and concrete cows. Why Milton Keynes? Because Xero has an …

The new 80/60 rule for testing

I was listening to a presentation on testing, and the question on coverage came up. I was asked my opinion, and this interesting thought occurred to me. So I tweeted: New Rule: At least 80% coverage on 60% of the app. 70% of the time, it works everytime. Mark Clearwater (me) So what do I mean by this? Well basically, …

On gitversioning subdirectories

We have lots of NuGet. Every time we build, we publish a new version. but every build does not change the source code of the code in that version. wouldn’t it be nice if we could detect that the subdirectory hasn’t changed and so has the same version it did last time we built it? We use gitversion, so we …

Microsoft Band 2 - The first 24 hours

My Microsoft Band finally arrived yesterday morning, so obviously I put it straight on (after a charge of course). Here is a chronicle of first impressions. Setup Out of the box, setup was really easy. Simply following the instructions on the band and the phone made it simple. I paired it with my Windows Phone (a Lumia …

Global Day of Coderetreat 2015. Done.

It was another great year being involved in the Global Day of Coderetreat for 2015. This was my first year hosting, and it was great fun planning the exercises and running the day. With 16 people turning up, we had a nice mix of student developers, junior developers from various different Software Consultancies around …

Global Day of Coderetreat 2015 is here

It’s that time of year again for Programmers the world over to gather together and practice their art. Yes, It’s the 2015 Global Day of Code Retreat on Saturday 14th November, and once again I have found myself involved. 4 years ago I attended my first GDCR in Wellington and it was great fun. Now, having …

On fixing problems in existing solutions

A builder came around the other day to fix the shelf under the sink. We had a leaking tap that over time had been dripping down onto the shelf and the boards had ended up in an awful state. From my perspective, we just simply needed to rip it out and put a new one in. Luckily, the builder was an expert and explained to …

Make me a sandwich

A lesson in powershell. I typed this: > iisreset Which responded with this: Access denied, you must be an administrator of the remote computer to use this command. Either have your account added to the administrator local group of the remote computer or to the domain administrator global group. So I typed this: > …

F5 VPN and Windows 10

I recently had the need to VPN into a network using an F5 Networks VPN. Turns out the provided BIG-IP Edge Client installs ok on Windows 10 but doesn’t connect. I kept getting the “Network Access Connection Device was not found.” error at the last step of connecting. Turns out that it was adding a …

Keyboard shortcuts for Windows 10 Power Users - Part 2

When Windows 8 came out, I got really into the new shortcuts and found out some had been there for a while that I never knew about. Windows 10 is out now and I’ve learned a few more that have been around just as long that I never knew. Since there are a lot of shortcuts, I’ve split this into two parts. Part …

Keyboard shortcuts for Windows 10 Power Users - Part 1

When Windows 8 came out, I got really into the new shortcuts and found out some had been there for a while that I never knew about. Windows 10 is out now and I’ve learned a few more that have been around just as long that I never knew. Since there are a lot of shortcuts, I’ve split this into two parts. Part …

Pets vs Cattle

There is this concept that has been floating around for a while which says you should treat your servers as cattle, not pets. I came across another version of this analogy that I wanted to post, since it doesn’t seem to have been recorded anywhere but has been mentioned in presentations. But before I get to that, …

Visual Studio 2015 vs Visual Studio 2013

I’ve been running some numbers over our solution to try and make things more efficient. While I was at it, I figured I would put 2013 head to head with 2015. The main test I ran was to take a solution open in Visual Studio and make sure it builds. I then ran Clean Solution. Using a stopwatch (so accuracy +- …

Windows 10 Animations

You’ve upgraded to windows 10 and are really enjoying it. But are you making the most of the visualisations it now provides you? Since Aero came onto the scene in Vista, Windows has leveraged your graphics card to add heaps of whiz-bang effects to windows. Transparent windows, animating transitions and other such …

ExternalAnnotations, or how to not depend on jetbrains.annotations.dll

There is some great static analysis stuff that ReSharper does for you. Specifically around nullability, purity and usage of your code. From their Code Annotations page in Visual Studio: ReSharper Annotations help reduce false positive warnings, explicitly declare purity and nullability in your code, deal with implicit …

Using C# 5.0 with Visual Studio 2015

Visual Studio 2015 is out and brings us the new C# 6 language features. We also have the new .Net 4.6 Runtime. But what does that mean? Well, the framework version and language version are two separate concerns. You can practically pick any framework, with any language, and it will work. This means that If you want to …

MethodImplAttribute and MethodImplOptions

I’ve been following some C development going on in the community, and discussion around memory management and optimisations lead me to start thinking about how they might be emulated in a C# application. Slight Digression Now I know that you have to prioritise Correctness, Performance, Readability, and that C# by …

Another layer of indirection

There is a ‘great’ quote in Software development about indirection that goes like this: Any problem can be solved by adding another layer of indirection. David Wheeler The follow up to this, of course, is to end it with the following: …except for the problem of too many layers of indirection. Kevlin …

The Service Locator base class anti-pattern

Something I have seen a lot of over the last few years is a lot of service location, particularly in base classes, particularly in Controllers. But not limited to there, it can happen anywhere we see base classes. Short rant about inheritance The longer I do this, the more I find that base classes are not meant to be …