- Advent of Code 2022: Day 1414 December, 2022A TypeScript solution for the Advent of Code 2022, Day 14 puzzle: constructing walls and simulating falling sand physics.
- Advent of Code 2022: Day 1313 December, 2022A TypeScript solution for the Advent of Code 2022, Day 13 puzzle: JSON arrays, recursion, compartor functions and sorting.
- Advent of Code 2022: Day 1212 December, 2022A TypeScript solution for the Advent of Code 2022, Day 12 puzzle: Dijkstra's algorithm, and being sneaky with reversing the puzzle conditions.
- Advent of Code 2022: Day 1111 December, 2022A TypeScript solution for the Advent of Code 2022, Day 11 puzzle: monkeys, classes, parsing gymanstics and one neat modulo trick.
- Advent of Code 2022: Day 1010 December, 2022A TypeScript solution for the Advent of Code 2022, Day 10 puzzle: emulating CPU instructions and rendering to a virtual screen.
- Advent of Code 2022: Day 9 9 December, 2022A TypeScript solution for the Advent of Code 2022, Day 9 puzzle: rope physics simulation.
- Advent of Code 2022: Day 8 8 December, 2022A TypeScript solution for the Advent of Code 2022, Day 8 puzzle: 2D arrays and coordinate gymnastics.
- Advent of Code 2022: Day 7 7 December, 2022A TypeScript solution for the Advent of Code 2022, Day 7 puzzle: simulating an imaginary file system by inspecting terminal input & ouput.
- Advent of Code 2022: Day 6 6 December, 2022A TypeScript solution for the Advent of Code 2022, Day 6 puzzle: using the Set object for uniqueness checks.
- Advent of Code 2022: Day 5 5 December, 2022A TypeScript solution for the Advent of Code 2022, Day 5 puzzle: stack manipulation, simulation, and a whole load of parsing.
- Advent of Code 2022: Day 4 4 December, 2022A TypeScript solution for the Advent of Code 2022, Day 4 puzzle: it looks like set intersection, but actually it's much easier than that.
- Advent of Code 2022: Day 3 4 December, 2022A TypeScript solution for the Advent of Code 2022, Day 3 puzzle: playing with sets and intersections.
- Advent of Code 2022: Day 2 3 December, 2022A TypeScript solution for the Advent of Code 2022, Day 2 puzzle: taking advantage of combinations and lookup tables.
- Advent of Code 2022: Day 1 3 December, 2022A TypeScript solution for the Advent of Code 2022, Day 1 puzzle: beginning the journey with basic grouping, sorting and summation.
- Nord Landscape27 November, 2022My first go at illustrating in a particular art style that I admire, using a palette inspired by the Nord theme.
- A Beautiful Pseudo-3D Neural Network Animation Using Zdog25 November, 2022A neural-network-like visualisation of a randomly connected network with neuron firing effects made with Zdog and D3.js.
- How to Group Multiple Emacs Commands Into a Single Undo10 July, 2022If you've got some Emacs Lisp to do a bunch of things, but you call it by mistake and want to be able to undo it all in one go.
- Windows Toasts From Emacs Within WSL20 January, 2022With some PowerShell and Emacs Lisp, you can easily pop up a native Windows toast straight from Emacs, even within WSL.
- Where's My Logical XOR Operator?29 December, 2021Learn a simple trick to mimic XOR and XNOR boolean operators in your favorite language where it might be missing.
- Dead Simple HTML Templating in Emacs Lisp14 October, 2021A lispy, one-function templating engine that has only a few key rules to remember. Use what you already know about Emacs Lisp to get you the rest of the way.
- React Hook: useDebounce with Enter Key Short Circuit27 September, 2021See how to debounce your input events to improve the UX in your React app, plus bonus "short circuiting" behavior to skip the delay for impatient users.
- Solving Equations With Emacs literate-calc-mode15 September, 2021When literate programming meets spreadsheet calculations: learn how to integrate calculations into your writing projects using Emacs and literate-calc-mode.
- Split a List Into Batches Using Emacs Lisp 2 April, 2021An exercise to write a simple Emacs Lisp function that can be used to chop a list of things into batches of a given size, including examples of unit testing and boundary value analysis.
- How to Quickly Get evil-mc Working With Smartparens17 March, 2021A quick and dirty way of getting Emacs' evil-mc and smartparens packages to play nicely together, so you can use multiple cursors with s-expression editing.
- Convolute Lisp S-Expressions With Smartparens 3 March, 2021Discover the magic of convoluting s-expressions when editing Lisp code. Once it clicks, it could save you many hundreds of keystrokes.
- How to Emojify Selectrum Candidates 1 March, 2021Because who wouldn't want cute emojis in their Emacs completion candidates? Learn how to make the emacs-emojify and selectrum packages cooperate nicely.
- The Programmer's Way to Write in Title Case Using Emacs Lisp24 February, 2021Emacs has convenient functions for upcasing and downcasing, but why not title casing? This was my journey to write a native Emacs Lisp function that does exactly that.
- Authentication Issues with MSAL.NET on WSL225 January, 2021Are you having trouble running .NET Core code with Azure AD MSAL Extensions when using WSL or Linux? This post might help you find a workaround.
- Use elisp-tree-sitter for Highlighting in Doom Emacs13 October, 2020Get faster, richer and more beautiful code syntax highlighting in Doom Emacs using the power of tree-sitter and abstract syntax trees.
- A Function to Get Org-Mode Contents Under a Heading11 October, 2020Ever wondered how to programatically get the direct contents under a heading in Emacs Org-mode? This Emacs Lisp function will do just that.
- Tearing Off Windows in Emacs 6 October, 2020Explore some strategies for managing multiple windows in Emacs. If you're having trouble figuring out how to see two or more things at once in Emacs, this post might help you.
- A More Ergonomic Keybinding for Flycheck in Doom Emacs 4 October, 2020Doom Emacs uses spacebar keybindings for maximum efficiency and comfort, but flycheck was missed. If you deal with a lot of code errors, this might save you from RSI.
- Why I Use ReactiveX and RxJS in Angular22 September, 2020ReactiveX and RXJS let you write declarative components in Angular. But why should you use them? This post explores the pros and cons.
- Learning Emacs More Effectively13 September, 2020This is a guide that covers things that other tutorials tend to miss. Learn about keybinding notation, why M-x is so powerful, and how to stumble a little more smoothly through the Emacs learning process.
- An evil-mc Emacs Hydra11 September, 2020What's better than personalized Emacs keybindings for multi-cursor editing? A hydra of course! Here's how to make using evil-mc even more fluent than before.
- Emacs Lets You Calculate While You Write 9 September, 2020What happens when you're in the middle of a sentence and you need to insert a precisely calculated number in amongst your prose? Emacs let's you do just that using its built-in calculator.
- Pure CSS Signal Indicator 7 September, 2020Learn how to make a signal indicator icon with 4 different strength levels using only HTML & CSS. Absolutely no images or graphics required.
- How to Do a Project-wide Search & Replace in Doom Emacs 6 September, 2020This is a guide on how to do a project-wide text search and replace operation using Doom Emacs and all its preinstalled packages and keybindings.
- Fonts Made for Coding 5 September, 2020In this post I cover 5 different coding fonts with ligatures, explain what ligatures are and how they're useful for coding, and explore reasons for my personal font of choice.
- Pure CSS Map Marker 3 September, 2020Learn how to make a map marker icon with just HTML and CSS, no icon fonts or images required. You can even customize the colors in the CSS to whatever you want.
- Browse URLs in Emacs under WSL 2 September, 2020If you use GUI Emacs under WSL and you want your links to open in your browser on Windows, this post explains how to achieve that.
- Easily Copy an Org-mode URL 1 September, 2020Emacs doesn't have a built in function to copy the URL of a hyperlink in Org-mode. This function will let you do just that.
- WSL2, Hyper-V & Reserved Ports31 August, 2020Are you having problems with "port already in use" while running apps in WSL under Windows? Hyper-V might be the culprit. This post explains why, and gives a possible workaround.