What’s in a (Strong) Name?

Reposted with kind permission from Package managers Package managers are brilliant. The obvious win is the convenience of versioning your dependencies without having to commit binaries to Git. Lots of people use package managers for third party dependencies, but I’m going to talk about using them for components within an organisation. This is where package managers fulfil their true potential – making you write better code. For example, imagine the desktop app I’m writing uses a shared component, let’s call... read more

JavaScript Unit Tests

The amount of JavaScript code being used at Red Gate is increasing quite rapidly. We are writing more web based products and also opting to use web technologies like CEF for our desktop products, so it is inevitable that a lot of our code is going to be written in JavaScript, like it or... read more

Visualizing team work: Physical Taskboards vs Virtual Taskboards

Reposted with kind permission from Chris’ blog. I’m a project manager, so unsurprisingly I can find myself in animated conversations with other project managers regarding how best to manage the work that our team members are doing. We all have our favourite techniques and methods, but the process generally starts with making the work... read more

Providing help documentation for PowerShell cmdlets

We’ve been working on a new product that involves writing Windows PowerShell cmdlets (pronounced “commandlets”) for our customers to use and, to make their lives easy, we want to provide rich built-in help documentation. There’s no easy way to do this out of the box, so I’ve written a tool that allows us to... read more

Property-based Testing

As part of our down tools week Toby Smyth and I decided to look at property-based testing.  This is a type of testing that is more commonly used in more functional programming languages, so we decided to investigate how we could apply this to C# and see what we learnt. Why should I care... read more

There and back again – a meandering on the size of a unit

In this article I’m going to try to walk through how I’ve been thinking about unit tests over the past few months. We’re using a toy example here, but it should be representative of a bigger system. “Where did it all go wrong?”[1] Let’s start with ‘classical’ unit testing. We have a class with... read more

Five steps to an effective sprint retrospective

Reposted from my blog. In a typical agile software development process, sprint retrospectives are meetings run at the end a development iteration. In those sessions the team looks back on what they have done and how they have done it, and decides what they can do to improve. More succinctly, the team inspect and... read more

Code kata 7: Producer-consumer problem

First, apologies for nodding off and not posting for the last few weeks. I have the usual set of excuses, which you can guess easily enough without the need to read them here. So, on to the kata: something a bit different, this time. It’s a repeat of a kata we had a go... read more

Crypto primer

Here’s a quick cryptography primer. Alice, Bob, Eve, and Mallory In cryptography discussions, 4 characters are commonly used: Alice, Bob, Eve, and Mallory. Alice and Bob want to send messages to each other. However, Alice and Bob are not alone in the world. There is also Eve, who is capable of eavesdropping messages whilst they are in transport.... read more

OpenGL from C#

  Nigel Morse wanted to learn modern GPU graphics with shaders, but he wanted to do it from C#.   read more