20 random bookmarks

2025-07-31

127.

A dive into open chat protocols

wiki.alopex.li/ADiveIntoOpenChat

2025-06-26

124.

The plan-execute pattern

mmapped.blog/posts/29-plan-execute.html

I feel uneasy about design patterns.
On the one hand, my university class on design patterns revived my interest in programming.
On the other hand, I find most patterns in the Gang of Four book to be irrelevant to my daily work;
they solve problems that a choice of programming language or paradigm creates.

My litmus test of a good design pattern is its cross-disciplinary applicability.
I’m more likely to accept an idea that pops up in fields beyond software engineering.
And the most convincing patterns are the ones that help me in everyday life.

This article describes a universal pattern that billions of people rely on daily, but software engineers rarely discuss—the plan-execute pattern.

2025-06-17

119.

Debugging tricks for IntelliJ

andreabergia.com/blog/2025/06/debugging-tricks-for-intellij

I have been using IntelliJ Idea at work for a decade or so by now, and it’s been a reliable companion. JetBrains IDEs have a bit of a reputation for being slow, but their feature set is incredible: powerful refactoring tools, a great VCS UI (though I like magit even more!), a huge number of supported frameworks, integration with just about any testing library for any language, code coverage tools, powerful debuggers, etc.

2025-06-16

118.

CSS Classes considered harmful

www.keithcirkel.co.uk/css-classes-considered-harmful

The solution to all of these problems

I humbly put forward that modern web development provides us all the utilities to move away from class names and implement something much more robust, with some fairly straightforward changes:

Attributes

Attributes allow us to parameterise a component using a key-value representation, very similar to Map<string, T>. Browsers come with a wealth of selector functions to parse the values of an attribute.

2025-04-24

105.

Instrumenting Axum projects

determinate.systems/posts/instrumenting-axum

2025-03-13

101.

Building interactive web pages with Guile Hoot

spritely.institute/news/building-interactive-web-pages-with-guile-hoot.html

2025-01-17

98.

Earthstar

earthstar-project.org

Storage for private, distributed, offline-first applications. Earthstar is a specification and JavaScript library for building connected applications owned and run by their users.

2024-12-17

93.

GBA From Scratch With Ferris

lokathor.github.io/gba-from-scratch
92.

Building GBA Games in Rust

shanesnover.com/2024/02/07/intro-to-rust-on-gba.html

2024-10-16

83.

Damas-Hindley-Milner inference two ways

bernsteinbear.com/blog/type-inference

2024-09-19

77.

Blogging in Djot instead of Markdown

www.jonashietala.se/blog/2024/02/02/blogging_in_djot_instead_of_markdown

2024-06-24

50.

Microfeatures I Love in Blogs and Personal Websites

danilafe.com/blog/blog_microfeatures

In this post, I talk about pleasant but seemingly minor features in personal sites

2024-06-18

40.

Understanding SPF, DKIM, and DMARC: A Simple Guide

github.com/nicanorflavier/spf-dkim-dmarc-simplified

2024-06-13

25.

Solving SAT via Positive Supercompilation

hirrolot.github.io/posts/sat-supercompilation.html
20.

My personal C coding style as of late 2023

nullprogram.com/blog/2023/10/08
18.

An easy-to-implement, arena-friendly hash map

nullprogram.com/blog/2023/09/30
17.

Arena allocator tips and tricks

nullprogram.com/blog/2023/09/27
14.

Optimal SQLite settings for Django

gcollazo.com/optimal-sqlite-settings-for-django

There’s plenty of information out there on how to scale Django to handle numerous requests per second, but most of it…

2024-06-11

11.

Optimizing Font Files for the Modern Web

documentation.platformos.com/best-practices/performance/optimizing-font-files

2024-06-09

1.

The Hare programming language

harelang.org

Hare is a systems programming language designed to be simple, stable, and robust. Hare uses a static type system, manual memory management, and a minimal runtime. It is well-suited to writing operating systems, system tools, compilers, networking software, and other low-level, high performance tasks.