Docker: Bulk Remove Images and Containers
I’ve just started looking at Docker. It’s a cool new technology that has the potential to make the management and deployment of distributed applications a great deal easier. I’d very much recommend...
View ArticleA Docker ‘Hello World' With Mono
Docker is a lightweight virtualization technology for Linux that promises to revolutionize the deployment and management of distributed applications. Rather than requiring a complete operating system,...
View ArticleA Contractor’s Guide To Recruitment Agencies
I haven’t contracted through an agency for a long time, but I thought I’d write up my experiences from almost ten years of working as an IT contractor for anyone considering it as a career choice.IT...
View ArticleJSON Web Tokens, OWIN, and AngularJS
I’m working on an exciting new project at the moment. The main UI element is a management console built with AngularJS that communicates with a HTTP/JSON API built with NancyFX and hosted using the...
View ArticleHeisenberg Developers
TL:DR You can not observe a developer without altering their behavior.First a story.Several years ago I worked on a largish project as one of a team of developers. We were building an internal system...
View ArticleHire Me
I’m on a sales drive. I want to move away from daily-rate contracting, and focus on full-lifecycle project delivery. I’ve created a new website to help market myself http://mikehadlow.com/. I’m looking...
View ArticleThe Lava Layer Anti-Pattern
TL:DR Successive, well intentioned, changes to architecture and technology throughout the lifetime of an application can lead to a fragmented and hard to maintain code base. Sometimes it is better to...
View ArticleBasic OWIN Self Host With F#
I’m still very much an F# noob, but yesterday I thought I’d use it to write a little stub web service for a project I’m currently working on. I simply want to respond to any POST request to my service....
View ArticleA Simple Nowin F# Example
In my last post I showed a simple F# OWIN self hosted server without an application framework. Today I want to show an even simpler example that doesn’t reference any of the Microsoft OWIN libraries,...
View ArticleInject DateTime.Now to Aid Unit Tests
If you have logic that relies on the current system date, it's often difficult to see how to unit test it. But by injecting a function that returns DateTime.Now we can stub the current date to be...
View ArticleC#: How to Record What Gets Written to or Read From a Stream
Streams are a very nice abstraction over a read/write loop. We can use them to represent the contents of a file, or a stream of bytes to or from a network socket. They make it easy to read and write...
View ArticleC#: Program Entirely With Static Methods
OK, that’s a provocative title to get your attention. This post is really about how one can move to a more functional programming style and remove the need for much of the apparatus of object-oriented...
View ArticlePartial Application in C#
My recent post, C# Program Entirely With Static Methods, got lots of great comments. Indeed, as is often the case, the comments are in many ways a better read than the original post. However, there...
View ArticleLearn To Code, It’s Harder Than You Think
TL;DR: All the evidence shows that programming requires a high level of aptitude that only a small percentage of the population possess. The current fad for short learn-to-code courses is selling...
View ArticleRunning The KestrelHttpServer On Linux With CoreCLR
Being both a long-time .NET developer and Linux hobbyist, I was very excited about the recent ‘go live’ announcement for CoreCLR on Linux (and Windows and Mac). I thought I’d have a play with a little...
View ArticleConfigure AsmSpy as an external tool in Visual Studio
AsmSpy is a tool I wrote a few years ago to view assembly version conflicts. Despite the fact that it started as a single page of code command line application, it’s been one of my more successful open...
View ArticleThe Possibilities of Web MIDI With TypeScript
If you’ve ever had any experience with music technology, or more specifically sequencers, keyboards or synthesisers, you will have come across MIDI (Musical Instrument Digital Interface). It’s used to...
View ArticleWhat I Learnt Creating Guitar Dashboard: SVG, TypeScript and Music Theory.
Guitar Dashboard is a side project I’ve been working on occasionally over the past two years. It’s an open source web application (you can find it at http://guitardashboard.com/ and the code at...
View ArticleVisual Programming - Why it’s a Bad Idea
Note. This post had a great response on Reddit with over 300 comments. I’ve added an update section to the end of this post to address some of the main criticisms.A visual programming language is one...
View ArticleDecoupling, Architecture and Teams
This article discusses the relationship in software development between code organisation and social organisation. I discuss why software and teams do not scale easily, lessons we can learn from...
View ArticleWhy Containers are a Game Changer for Software Development
I originally wrote this piece as of part of a paper evaluating container technology for a client.This document describes container technology, best represented by Docker. Containerization is a game...
View ArticleA Framework to DotNet Core Conversion Report
An experience report of converting a large microservice platform from .NET Framework to dotnet core.Background For the last year or so I’ve been working with company that maintains a significant...
View ArticleRestoring from an Azure Artifacts NuGet feed from inside a Docker Build
If you are using Azure DevOps pipelines to automate building your .NET Core application Docker images, it's natural to also want to use the DevOps Artifacts NuGet feed for your internally hosted NuGet...
View ArticleC# preprocessor directive symbols from the dotnet build command line via...
Invoking the C# compiler directly allows one to pass in symbols for the preprocessor via a command option (-define or -d). But it's not at all obvious how to do this with the dotnet build command....
View ArticleNew Blog At mikehadlow.com
This is my last post here at Code Rant. From now I will be posting at mikehadlow.com. I've written a post on my new blog here explaining the reasons. Thanks for visiting Code Rant and please take a...
View Article