This page contains a list of all of the blog posts on this site, grouped by year.

Besides the list below, another way to get an overview would be to take a look at the tags page, where you can see a list of all of the topics I might have written about over the years.

2026

30 May – SSH authorized_keys command restriction to isolate container access to host functions

2024

23 Nov – Speed up Obsidian Quartz page loads

02 Nov – Template for Zotero Obsidian plugin to import references with highlights

24 Oct – OpenPGP WKD for easy PGP key discovery

15 Oct – PySpark timezone offset from ISO 8601 without UDF

14 Oct – Python Deadlib for Deprecated Libraries like distutils

10 Oct – Use direnv for uv with out-of-source virtual environments

09 Aug – Configure Thunderbird 128 e2e encryption with GnuPG

01 Jun – Light-weight setup of LF console file manager with image, source code and archive previews

25 May – AI screenshot renamer with ollama LLaVA, GPT-4o and macOS OCR

01 May – Performance comparison of six different LTTB (visual downsampling for timeseries data) algorithm implementations for Python

02 Mar – Contact QRCode generator with marimo and WASM

11 Feb – Pandoc roundtrip from markdown to docx and back

2023

09 Dec – Charl's super hacky but often working automatic Emacs font size setting

09 Dec – Minimal VSCode settings and extensions configuration for Python with ruff

14 Nov – Fixing hunspell 1.7.0 for Emacs 29 on Windows

08 Aug – Open message:// links with mu4e or fastmail

12 Feb – ThreadPoolExecutor context manager with nested tasks

2022

22 Oct – Unison file synchronization directly via the WSL bridge

24 Sep – Modify md-roam for frontmatter-less operation

05 Aug – Conservative rendering and liberal parsing of ISO 8601 timestamps in Python

12 Jun – TypeScript development with Emacs, tree-sitter and LSP in 2022

05 Mar – Connecting the Shelly 1 to an ET Systems gate motor for Apple HomeKit control

2021

21 Nov – Using Kubernetes for development containers

03 Oct – Developer experience setting up a minimal API in Go, C# and Python

29 Sep – Convert Org Mode files to docx with CMake and Pandoc for mobile accessibility

22 Jul – Configure org-roam v2 to update database only when idle

03 May – vxlabs software development handbook

21 Mar – Always activate CopyArrivalDate for mbsync

21 Mar – GnuPG pinentry via the Emacs minibuffer

2020

15 Nov – Fix non-display of ivy-rich switch buffer directories in Emacs

06 Oct – Sort TypeScript import groups from standard to local

25 Jul – An Emacs Lisp function to convert attachment: links to file: links for ox-hugo exports

23 Jul – Set severity override of Visual Studio Code Pylance type mismatches for better visual distinction

21 May – Open WSL2 files in Windows apps using Emacs TRAMP

09 May – Emacs, WSL, helm-locate and Everything

01 May – Voice capture org-mode notes and more using Siri Shortcuts on iOS

26 Apr – Cite consistently between org-ref and ox-hugo

15 Mar – xdg-open-wsl: A WSL-specific xdg-open replacement to open files and links using Windows apps.

07 Mar – Patch Emacs org-open-file using advice.

22 Feb – Use supervisor to run fastcgi behind nginx.

2019

06 Dec – Comparing WSL1 and WSL2 filesystem I/O performance on local and host files.

25 Aug – Improve the plaintext email experience through format=flowed with long lines.

28 Jul – Manjaro Linux with Bumblebee on the Thinkpad X1 Extreme in 2019.

05 Jul – Is mbsync really faster than offlineimap? A measurement.

03 Jul – Sending queued mails in the background with mu4e.

28 May – SA Elections 2019: Votes to seats in parliament.

23 May – Windows 10 anti-virus slows down Hugo and WSL from 2x to 10x.

20 Apr – Link directly to emails from Emacs Orgmode using Thunderbird and Thunderlink

19 Apr – PyCharm and Docker Compose for Django and TypeScript development on Windows 10

16 Apr – Using the new dotnet fsi from .NET Core 3 Preview 3 in Visual Studio Code

06 Apr – Installing Isso comments in Hugo on WebFaction

04 Feb – Improving fastai's mixed precision support with NVIDIA's Automatic Mixed Precision.

2018

21 Nov – A Simple Ansible script to convert a clean Ubuntu 18.04 to a CUDA 10, PyTorch 1.0 preview, fastai, miniconda3 deep learning machine.

19 Nov – Configuring Emacs, lsp-mode and Microsoft's Visual Studio Code Python language server.

04 Nov – PyTorch 1.0 preview (Dec 6, 2018) packages with full CUDA 10 support for your Ubuntu 18.04 x86_64 systems.

29 Oct – Importing all of your orgmode notes into Apple Notes for mobile access.

08 Jun – Configuring Emacs, lsp-mode and the python language server.

18 May – Interactive programming with Fennel Lua Lisp, Emacs and Lisp Game Jam winner EXO_encounter 667

29 Mar – Asynchronous rsync with Emacs, dired and tramp.

24 Mar – Developing Arduino sketches with JetBrains CLion: A minimal example.

23 Mar – Which jumper to set on the ITEAD XBee shield v1.1 for use with a 3.3V Arduino

15 Feb – Use the Google Cloud Speech API to transcribe a podcast

31 Jan – Creating a Django migration for a GiST / GIN index with a special index operator.

2017

08 Dec – Variational Autoencoder in PyTorch, commented and annotated.

06 Dec – How to debug PyInstaller DLL / PYD load failed issues on Windows

30 Nov – Run code on remote ipython kernels with Emacs and orgmode.

27 Nov – If you want to run OpenGL 3.2+ apps in a Windows guest, AVOID Parallels 13 and buy VMWare Fusion 10 instead.

24 Nov – Getting ob-ipython to show documentation during company completion.

07 Nov – The RobotDyn Joystick shield has the XBee TX / RX lines switched to D0 and D1 or completely disconnected

29 Aug – Driving the Dell U2713HM at 2650×1440 from the HDMI output of the HyperDrive USB-c dock with macOS SwitchResX

10 Jun – Extracting the Jaxx 12-word wallet backup phrase

07 Jun – Adding page sidebar to WordPress Twenty Seventeen theme.

06 Jun – Setting up FastCGI apps on WebFaction

03 Jun – Querying RESTful webservices into Emacs orgmode tables

03 Jun – Bitcoin and the blockchain in 10 minutes

31 Mar – Fixing crux-open-with on Ubuntu

17 Mar – Miniconda3, TensorFlow, Keras on Google Compute Engine GPU instance: The step-by-step guide.

11 Mar – Recursive text search in project without projectile

20 Feb – From org file with local bibtex to LaTeX and PDF

07 Feb – mu4e 0.9.18: E-Mailing with Emacs now even better.

2016

07 Nov – Date-sorted interactive recursive search with ivy, counsel and ag

11 Apr – Step-by-step guide to C++ navigation and completion with Emacs and the Clang-based rtags

17 Mar – Fixing the Cordova browser platform Access-Control-Allow-Origin error

05 Mar – Up and running with ECL and Emacs SLIME in four easy steps

2015

08 Dec – gunicorn as your Django development server

17 May – Fixed position of any Scatter child widget in Kivy

29 Mar – Notes on my full-time testing of 7 Dropbox alternatives

11 Feb – Use the hardware-based full disk encryption of your TCG Opal SSD with msed

05 Feb – Solving the Ubuntu 14.04 – NVIDIA 346 – nvidia-prime black screen issue

28 Jan – Sending emails with math and source code

2014

04 Dec – Inline GraphViz DOT evaluation for graphs using Emacs, org-mode and org-babel

12 Nov – Getting Django Rest Framework to parse docstrings as reStructuredText

06 Nov – Use ADB to bypass dog-slow MTP transfer of files from Android to Linux

06 Oct – Convert dates to different formats in LibreOffice Calc

30 Sep – CloudFlare full optimizations break MathJax

08 Aug – Driving the Dell U2713HM at 2650×1440 from the HDMI output of the Acer V3-571G

25 Jun – Getting EmacsKeys working with QtCreator 3.1.2

16 Jun – Level sets: The practical 10 minute introduction.

14 Jun – Huawei E3331 3G USB dongle works on Ubuntu 14.04 Linux

09 Jun – Fixing RoundCube Error in DDL upgrade

06 Jun – Configuring Emacs mu4e with nullmailer, offlineimap and multiple identities

04 Jun – Modify Emacs Deft for recursive directory search

25 May – Publish to WordPress with Emacs 24 and org2blog

08 Apr – Syntax-highlighting markdown fenced code blocks in Emacs

2013

22 Dec – Export Zotero PDFs with BibTeX key filenames

11 Oct – impress.js with embedded live webcam

04 Oct – d3 interpolators vs. ColorBrewer single hue sequential scales

11 Jul – Skype 4.2.0.11 on Linux: Premium subscription but NO group video and NO group screen sharing

24 Apr – Samson C01U USB condenser microphone on Ubuntu Linux 12.04

24 Mar – Acer V3-571G FullHD IPS: Superb price/performance Linux development laptop

2012

22 Dec – SSDs with usable built-in hardware-based full disk encryption

28 Nov – Adding the ATA Security eXtension BIOS to AMIBIOS (Asus P5KC)

18 Nov – European Motorola Atrix 4G: Rooting, unlocking and CyanogenMod 7.2

29 Jun – Removing URLs from Zotero bibtex exports

01 May – Review of Ubuntu Linux 12.04 on the Samsung NP300V3A Core i5 NVIDIA Optimus laptop

04 Mar – Fix for blurry photos on HTC Desire Z

2011

01 Dec – How to get Zotero IEEE style NOT to abbreviate with et al. in the bibliography

28 Aug – A Windows console that does not suck

20 Jul – How to stop accidentally answering or declining calls when trying to fish your HTC Sense Android phone from your pocket

15 May – Ubuntu 11.04 Natty Narwhal Annoyances (Dell E6410 with NVS 3100m GPU)

25 Apr – The Django Book 2.0 in MobiPocket / Kindle format

01 Mar – Don’t buy HomePlug / Powerline ethernet adapters

05 Feb – Sipura / Linksys / Cisco SPA3102 Voice Gateway in The Netherlands

24 Jan – International characters on the HTC Desire Z keyboard

22 Jan – HTC Desire Z: An in-depth and nerdy review.

2010

30 Nov – Ubuntu 10.10 x86_64 on your Dell E6410 with NVS 3100m GPU

21 Nov – Welcome to the Visual X Laboratories!