2025-08-25
Everything I know about good API design
www.seangoedecke.com/good-api-design2025-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-26
Box combinators
mmapped.blog/posts/41-box-combinators.htmlIn functional programming,
combinator libraries refer to a design style that emphasizes bottom-up program construction.
Such libraries define a few core data types
and provide constructors—functions that create initial objects—and combinators—functions that build larger objects from smaller pieces.Combinators enable the programmer to use intuitive visual and spatial reasoning
that’s vastly more powerful than linear language processing.
As a result, solving problems with combinators feels like playing with lego pieces.
2025-06-13
What I talk about when I talk about IRs
bernsteinbear.com/blog/irsI have a lot of thoughts about the design of compiler intermediate representations (IRs). In this post I’m going to try and communicate some of those ideas and why I think they are important.
2025-04-29
No-engine gamedev using Odin + Raylib
zylinski.se/posts/no-engine-gamedev-using-odin-and-raylibGames can be made in many different ways. Many games are made using big, general purpose game engines such as Unity and Godot. I enjoy using the Odin Programming Language combined with Raylib.
Odin is a C-like programming language and Raylib is library for drawing graphics, checking input and playing sounds. So it’s just a program that uses a simple library, no engine!
There are no objectively best ways to create games.
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-11-04
Writing secure Go code
jarosz.dev/article/writing-secure-go-codeSecurity testing starts with understanding vulnerabilities. The CVE website lists known software flaws. The OWASP Top Ten highlights common weaknesses. With this knowledge, we can improve our Go development. This article shows how to put in place robust practices. They are to: fuzz inputs, verify dependencies, and use static analysis tools (SAST).
2024-09-19
Blogging in Djot instead of Markdown
www.jonashietala.se/blog/2024/02/02/blogging_in_djot_instead_of_markdown2024-09-10
run freebsd in qemu on linux
sethops1.net/post/run-freebsd-in-qemu-on-linux2024-08-28
There can't be only one
www.b-list.org/weblog/2024/aug/27/highlander-problemThere's a concept that I've heard called by a lot of different names, but my favorite name for it is …
2024-06-26
A reckless introduction to Hindley-Milner type inference
reasonableapproximation.net/2019/05/05/hindley-milner.html2024-06-18
Linux 6.10 Honors One Last ReiserFS Request Made By Hans Reiser - Phoronix
www.phoronix.com/news/ReiserFS-README-Linux-6.102024-06-13
Category Theory for Programmers: The Preface
bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-prefaceThe magic of dependency resolution
ochagavia.nl/blog/the-magic-of-dependency-resolutionSolving SAT via Positive Supercompilation
hirrolot.github.io/posts/sat-supercompilation.htmlArena allocator tips and tricks
nullprogram.com/blog/2023/09/27Avoid Linux locking up in low memory situations using earlyoom
dataswamp.org/~solene/2022-09-28-earlyoom.htmlThis article presents the program earlyoom to prevent a Linux system to lock up in low memory situations.
Optimal SQLite settings for Django
gcollazo.com/optimal-sqlite-settings-for-djangoThere’s plenty of information out there on how to scale Django to handle numerous requests per second, but most of it…
2024-06-11
Go evolves in the wrong direction
valyala.medium.com/go-evolves-in-the-wrong-direction-7dfda8a1a620Go programming language is known to be easy to use. Thanks to its well-thought syntax, features and tooling, Go allows writing easy-to-read…
Hard disagree on this one, but still interesting.
2024-06-10
Modern IRC Client Protocol
modern.ircdocs.horseLiving specification of the IRC protocol. Does not include brand new behavior, just existing behavior present in IRC software and/or networks (new extensions are IRCv3's area).