Software Developer · Glasgow, Scotland

Hello!

I'm a software developer, TypeScript enthusiast, whisky lover, coffee snob, sometime musician, and occasional cook.

This site is a collection of blog posts (some very old), links to me elsewhere on the web and, occasionally, recipes.


Recent Writing

View all posts →

AbortController: the Swiss army knife of JavaScript

Most people know AbortController as the thing you use to cancel fetch requests. That's fair enough — it was literally designed for that. But AbortController has quietly become one of the most versatile tools in the JavaScript standard library. Its signal mechanism plugs into event listeners, streams, Node.js APIs, and…

Publish Your Mastodon Posts to Astro

I'm a big fan of hosting your own content. Partly because I like keeping control over what I've posted, partly because platforms like MySpace some older video sharing sites will just lose all of your content that you hadn't backed up anywhere else because you were young(er) and stupid(er). Since the implosion…

Switching to Astro

This blog has been neglected for about 5 years and has been burning away compute cycles on an old Wordpress install and MySql DB. And I've been too lazy busy to update it to something that's not needlessly costing me £10/month. But no longer. Now we're on Astro, taking advantage of static site generation and…

Split your cmder window into multiple panels

cmder is my go-to shell for Windows. Up until recently, I was unaware that it could be split into multiple panels. There doesn't seem to be a menu option to do it, but it’s easily done with these commands (which, yes, I need to look up every time). Split the window horizontally (left/right split): cmd -new_console:s…

Fix Error 0x80072EE7 on Windows 10

I just installed the Windows 10 October 2018 update and was hit with an issue that Microsoft Store and Edge wouldn't connect to the internet. Dreaded error 0x80072EE7. Tried repairing etc. as suggested around the web, but the issue for me turned out to be that I didn't have IPv6 enabled in my network adaptor settings.…