Skip to main content
Archive
-
2025
-
Dead code
-
IPC channel multiplexer
-
/search/
-
What am I up to "now"?
-
IPC channel multiplexing: what next?
-
Metrics
-
RSS thank-you
-
Visitor stats and the point of blogging
-
Developer's block
-
Software convergence
-
Week note 2025-08-21
-
Is it worth blocking AI bots?
-
Formatting maths in Eleventy with KaTeX
-
Blogging in markdown
-
Arch linux take two
-
Understanding eleventy
-
Adding notes to an eleventy blog
-
Replacing WriteFreely with eleventy
-
i3 it is
-
i3 versus a suckless window manager?
-
Switching from xmonad to i3
-
IPC channel multiplexing: next steps
-
Is IPC channel multiplexing really necessary?
-
Multiplexing principles
-
IPC multiplexing prototype goes public
-
Complexity, surface area, and traction
-
Multiplexing over IPC channels: subchannel lifecycle
-
Another Fosstodon moderator steps down
-
Design driven development
-
An ideal Linux desktop
-
Fosstodon and authoritarian behaviour
-
Multiplexing over IPC channels: a prototype
-
The psychology of software development¹
-
Self-hosting a RSS reader
-
Software lineage: Mach ports vs BSD
-
Blog questions challenge
-
Progress on ipc-channel
-
Understanding Unix sockets
-
Social media and thought life
-
A new project: servo/ipc-channel
-
Advent of blogs: reflection
-
Privacy
-
What's occurring?¹
-
Advent of blogs half done
-
Principled code
-
Guest book
-
One year of underlap.org
-
Trialling comments
-
Advent of blogs
-
Uses
-
Blogs, signal to noise ratio, and discovery
-
The notebook
-
Renewing my SSL certificate
-
How to learn Rust
-
Ethics
-
Open development experiment: reflection and conclusion
-
Open development experiment: ordering function definition
-
Open development experiment: re-entry
-
Approaches to concurrent programming
-
Open development experiment: interactions
-
Open development experiment: search for Feistel networks
-
Open development experiment: cryptographic primitives
-
Open development experiment: ordering function (and reflection)
-
Formatting maths using Typst
-
Reflections on being a visiting lecturer
-
Time to upgrade macOS
-
Open development experiment: design
-
Open development experiment: requirements
-
Open development experiment: mathematical interlude
-
An experiment in truly open software development
-
Self-hosting a Rust link shortener
-
Focused commits
-
Construction of software and mathematical proofs
-
Taking the blades SSG for a spin
-
Static site generators
-
VPS web server process users
-
Notes
-
VPS memory usage
-
Incremental IndieWeb
-
Re-basing webfinger-rs on fluent-uri-rs
-
Installing webfinger-rs
-
Approximating WebFinger via nginx
-
A WebFinger server written in Rust
-
Change of email address
-
Writing better software design documents
-
Why write unit tests? A response
-
Dot Social: Threads Has Entered the Fediverse
-
Blocking AI web crawlers
-
NGINX robot access
-
Starting a new programming project
-
About anonymous blogging
-
"I just wanna link the thing"
-
Single user instances
-
Process algebra and JSONPath descendant segment semantics
-
License
-
WriteFreely v0.15.0
-
Testing non-deterministic behaviour
-
"Programming Pearls" from the 1980's
-
I don't understand
-
Links
-
Animating source code evolution
-
Implementing JSONPath RFC 9535
-
JSONPath: from blog post to RFC in 17 years
-
Understanding Haskell's type system
-
Top ten technical books
-
"Cornerstones"
-
Subscribe
-
Topics
-
Will I ever degoogle?
-
Written by human, not AI
-
The bad old days
-
Blogroll
-
Recovering from a pacman crash on arch Linux
-
How to grow other software developers
-
Start with an empty git commit
-
NVIDIA problem upgrading arch to 6.7 kernel
-
The Post Office Horizon system and ACID transactions
-
Early internet access
-
Abstracting cloud storage
-
This site, one month in
-
Account portability in the social web
-
Why I loved mathematics and loathed history
-
Promotion and its consequences
-
Career planning or serendipity?
-
Monads and more
-
How I got into software development
-
Software characters
-
Retrospective posts (2007-2013)
-
No solution for complexity - retrospective
-
Leaving IBM - retrospective
-
Joining Interface21 - retrospective
-
Life in a small company - retrospective
-
Coding and hill-walking - retrospective
-
OSGi resolution is NP-Complete. So what? - retrospective
-
Stumbling towards a better design - retrospective
-
What did we learn in 100 sprints?
-
Temporary simplification - retrospective
-
Why I hate spikes - retrospective
-
Harmful distractions - retrospective
-
Work-life balance - retrospective
-
Scrapping designs - retrospective
-
Writing partial designs - retrospective
-
Retrospective posts (2007-2013)
-
The design documentation pendulum
-
Why "underlap"?
-
YAML considered harmful
-
Fix for server error
-
Backing up my WriteFreely instance
-
Automatic RSS feeds
-
Setting up a WriteFreely instance
-
JSONPath RFC Nearing Publication
-
Blog posts: historical documents or ephemera?
-
Bring Back Blogging
-
Tidying up git branches
-
Managing scratch files in a git project
-
Micro-commits
-
On formalism in specification
-
Software Manifestos
-
A JSONPath Internet Draft
-
The humble commit message
-
Getting started with TDD
-
So you want to be a software developer?