2025-10-17
Automerge
automerge.orgAutomerge is a local-first sync engine for multiplayer apps that works offline, prevents conflicts, and runs fast.
2025-07-31
A dive into open chat protocols
wiki.alopex.li/ADiveIntoOpenChat2025-07-03
Beamer Viewer
beamerviewer.euxane.euThis web app displays notes and slides in separate windows,
keeping both synchronised.
It accepts simple, double-width, or double-height PDF presentations:
2025-06-18
You can use `fzf` to review git commits
jvns.ca/til/fzf-preview-git-commitsI just learned that
you can use it to review a git commit like this and I thought that was really
cool.
2025-04-24
Instrumenting Axum projects
determinate.systems/posts/instrumenting-axum2024-12-20
Visitor Pattern Considered Pointless - Use Pattern Switches Instead
nipafx.dev/java-visitor-pattern-pointlessIn modern Java, the visitor pattern is no longer needed. Using sealed types and switches with pattern matching achieves the same goals with less code and less complexity.
2024-11-22
New stuff in Emacs 30
www.mgmarlow.com/words/2024-07-28-emacs-30-newsReading through the Emacs 30 NEWS file and picking
out the stuff I think is the most interesting.
2024-10-21
init.py files are optional. Here’s why you should still use them
dev.arie.bovenberg.net/blog/still-use-init-py2024-08-15
Writing a C Compiler
nostarch.com/writing-c-compilerA fun, hands-on guide to writing your own compiler for a real-world programming language.
2024-06-27
plainweb
www.plainweb.devplainweb is a framework using HTMX, SQLite and TypeScript for less complexity and more joy.
2024-06-26
A (more) Modern CSS Reset
piccalil.li/blog/a-more-modern-css-resetYou probably wrote half a monad by accident
gieseanw.wordpress.com/2024/06/25/you-probably-wrote-half-a-monad-by-accident2024-06-21
On testing Go code using the standard library | Henrique Vicente
henvic.dev/posts/testing-goMost programming language ecosystems provide assert functions in their testing libraries but not Go's. Go's standard testing package follows a more direct and to-the-point approach.
2024-06-20
Go's 'range over function' iterators and avoiding iteration errors
utcc.utoronto.ca/~cks/space/blog/programming/GoIteratorsAndAvoidingMistakes2024-06-19
Avoiding complexity with systemd
mgdm.net/weblog/systemdUsing systemd to avoid having to write some risky code
Aurora - Python Static Site Generator
aurora.jamesg.blogAurora: An extensible, Python-based static site generator.
2024-06-14
CAUSAL.AGENCY(7)
causal.agencyI make mostly IRC software in C. I like OpenBSD but also the GPL. I just want to read books and try to learn to be kinder. When I can I'd like to talk to strangers and experience more magic.
2024-06-13
A simple, arena-backed, generic dynamic array for C
nullprogram.com/blog/2023/10/05An easy-to-implement, arena-friendly hash map
nullprogram.com/blog/2023/09/302024-06-12
My experience crafting an interpreter with Rust
ceronman.com/2021/07/22/my-experience-crafting-an-interpreter-with-rustLast year I finally decided to learn some Rust. The official book by Steve Klabnik and Carol Nichols is excellent, but even after reading it and working on some small code exercises, I felt that I …