Skip to main content


Fill your GitHub activity heatmap with the image of your choice

Taking 12 months to upload a 52x7 pixel image, through thousands of git commits, ... that's completely reasonable right?
Recent posts

I wrote a blog post … by hand

... with a pen!

Bring your WPF apps to life – Snazzy Animated Window Borders

Checkout my project on GitHub showing how to create animated window borders in WPF. Before I explain, watch the video to see what I mean:

SignalR not connecting? Things to check

SignalR is a websocket library for .NET. During setup and local development there are a number of issues you may encounter. In this post I’ll explain how to fix these. I will assume you are using ASP.NET core, version 2.2 or later. And your client is just plain old vanilla JavaScript . Obviously your first step should be reproducing your issue with new empty projects, where you can be sure nothing else is interfering. Beyond that, here are a few tips: Client Scripts Updated To use SignalR in JavaScript you should be have the official client-side library from Microsoft. This is usually a single file called signalr.js or signalr.min.js (the minified version). You can find basic HTML/JS example use here to check you are using it correctly. If you have got the client scripts from a non-official source, or there is a chance they might be out-of-date, make sure you replace them with the latest version. The best way is to obtain the latest version is to read Microsof

Making YouTube videos with Unity

Unity is a game engine for creating 2D and 3D games. It can also be used for simulations or machine learning, or even as a general cross-platform app framework. But, did you know it works really well as an all-in-one video editor? And I actually prefer it over other professional video editors. Let me explain why.

Local Storage Models in Blazor

Blazor is a new web framework by Microsoft which ships with .NET Core. In this post I explain how to use Local Storage in Blazor using the Blazored.LocalStorage package and how to improve on this by creating a custom service allowing you to use models (classes with properties) instead of string keys. Blazored.LocalStorage First I explain how to use local storage in Blazor. I assume you already have a blazor project setup. Install the Blazored.LocalStorage package with using NuGet. This can be done using the command in the Visual Studio package manager: Install-Package Blazored.LocalStorage Then in the 'Startup.cs' file add the following line to 'ConfigureServices' to make the LocalStorage service available through dependency injection: services.AddBlazoredLocalStorage(); Now you are ready to use local storage on your pages. To import the namespace on all pages you can add the following line to '_Imports.razor': @using Blazored.LocalStorage Now wi

Adding Context Menu Item for Windows Terminal To File Explorer

The new Windows terminal is a huge improvement over the traditional Command Prompt and Powershell. In this post I'll explain how to create a context menu shortcut 'Open Terminal Here' which appears when you right click in File Explorer. For this we will be editing the system registry so make sure you follow these steps exactly as accidently changing something in the registry can have serious consequences. I will assume you have installed the latest preview version of Windows Terminal from the Windows Store.

What is Homomorphic Encryption?

Homomorphic Encryption is a promising cryptographic technique for keeping data private. In this post I give a short a simple summary of Homomorphic Encryption including a clear definition with an example use case in cloud computing.

Google Apps Script - Introduction With Some Tips and Tricks

Google Apps Script allows you to write and deploy code scripts through Google Drive. These scripts (written in JavaScript) run server-side and have full access to Google's APIs. This means you can use them to automate all sorts of things, from sending emails to editing spreadsheets. I've added some examples I use regularly to this repository on GitHub .

Best Packages for Sublime Text 3 (Excluding Themes)

Sublime Text 3 is pretty good out-of-the-box but reaches a whole new level when you install some of the great packages on offer. Below I'll list my favourite packages for Sublime Text. These are all packages which will enhance your productivity across all languages, so no themes or language-specific packages will be listed here.