mikejsavage.co.uk
Auto-mounting USB drives on NixOS
Apple products quarantine post
C++ tricks: enum arithmetic
C++ tricks: STL-free type traits
sem_postmany
All perf zero quality BC4 encoding
C++ tricks: NonRAIIDynamicArray
C++ tricks: defer
Configuring launchd scheduled tasks with Nix home manager
C++ tricks: STL-free initializer list
Realloc and arena allocators
C++ tricks: Production Ready TM aligned malloc
C++ tricks: STL-free source location
2023 Windows post-install checklist
Running a business in Finland
Least effort self-destructing email addresses with Fastmail
Building a userspace CSPRNG on top of Monocypher 3
An equal but opposite reaction
OpenSMTPD is excellent 2020 edition
C++ tricks: catching ASAN errors in a debugger
gg libraries index
ggtime
Daily Mail
C++ tricks: compound literals
C++ tricks: member array count
GL tricks: glPushDebugGroup
Server side React
SSH local discovery
C++ tricks: compile time string hashing
C++ tricks: compile time type IDs
Useful tmux window titles
Sending mail through Amazon SES with OpenSMTPD
Detecting WSL in Makefiles
Windows 10 2019 post-install checklist
Immediate mode audio
How to get rid of ? globbing in fish
Branch prediction minutiae in LZ decoders
Least effort image self-hosting
Using WSAAsyncSelect
GoAccess with OpenBSD httpd
namespace is bad and should not be used
Never update anything #145432
cmov
Compression gold medalist
Existential risk from artificial general intelligence
ggentropy
C++ tricks: dealing with 3rd party code
Building a userspace CSPRNG on top of Monocypher 2
C++ tricks: named function arguments
Least effort self hosted dynamic DNS
Mesh generation checklist
Geometry clipmaps: simple terrain rendering with level of detail
C++ tricks: macro to disable optimisations
Preprocessor madness 2
RSS feed
Deadlock
Preprocessor madness
C++ tricks: sized array arguments
Linux vs BSD in a man page
Monocypher is excellent
GL_FRAMEBUFFER_SRGB sucks
Roadblocks to releasing Medfall on macOS
Vim: peek definition
OpenSMTPD is excellent
Not even not upgrading can save me
Optimising vs expanding to fill all available resources
Code for my intro to raytracing talk
C++ tricks: autogdb
More installer junk
Really finishing the job
OpenGL uniforms and renderer design rambling
Detecting TCP server crashes
ggformat
Saving scroll position when refreshing
Never update anything
Ruoka Helsingissä
SIGGRAPH 2017
Rust performance: finishing the job
Fixing the Visual Studio forms designer
Vim
Wat
C++ tricks: least effort conditional breakpoints
Writing installers for Windows
C++ tricks: NO_INIT
bug489729
C++ tricks: better casting
Least effort unit tests
Caches are fast, hashes are fast
C++ tricks: ZERO
C++ tricks: safe ARRAY_COUNT
Dumping a git repository to an encrypted zip file
Windows post-install for developers
Billions
Auto-mounting removable drives
Moving to OpenBSD
About me meta-post