Thursday 11 September 2014

Overload Articles - Season One

Continuing the theme of bringing together a list of my articles for easier consumption, here is a list of my earliest articles that were published in the ACCU’s Overload journal. This journal is available for anyone to read and so there is nothing on display here that you could not have already found yourself, whether you’re a member or not [1].

1: Utilising More Than 4GB of Memory in a 32-bit Windows Process

Although a 32-bit Windows process can only directly address a maximum of 4GB there are a number of techniques that allow you to manage more than that by switching pages in and out of the 4GB “window”. This article explains the various memory limits of a 32-bit process and goes on to describe one particular technique I’ve used successfully in the past to juggle over 16GB data within a single 32-bit process.

2: Causality - A Mechanism for Relating Distributed Diagnostic Contexts

When working on a distributed system it is imperative that you can trace a request across the various service boundaries when diagnosing a problem. This article describes the Diagnostic Contexts pattern and then goes on to extend it across process boundaries to help create a logical diagnostic context that can span multiple services.

3: Simple Instrumentation

As a general rule, when it comes to operations and monitoring, you should try and instrument everything you can afford too. Whilst there are expensive monitoring products out there it is possible to add a significant level of instrumentation with very little outlay. This articles shows how to create a simple instrumentation mechanism.

4: Migrating From Visual SourceSafe to Git

My own personal codebase ended up in a Visual SourceSafe repository a very long time ago. Even though I had been using it in a very clunky distributed manner I had been waiting for a decent (free) tool to migrate over a decade of history to a modern VCS. Through vss2git I managed to achieve that, and at the same time split my projects into separate Git repos that could be backed up and published via GitHub.

5: Static - A Force for Good and Evil

In some circles, notably C# and Java, there is a mantra that “static is bad”. While static methods and data can be used incorrectly, this article shows where it is also possible to use it successfully. With the recent rise in interest in Functional Programming it goes on to describe the various forms of coupling and then explains how static (pure) methods can reduce the degree of coupling to a bare minimum and so allow code that is the easiest to reason about.

6: Branching Strategies

The use of branching within a Version Control System appears to be suffering from a “cargo cult” mentality. This article explains the three core branching strategies on offer and the change policies that dictate how they are commonly used. It then explores the newer hybrid workflows to show that they are just variations on these underlying strategies.

[1] Please do not take this blog post as an excuse not to become a member, it’s well worth it for just £45!

1 comment: