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.

123.

Box combinators

mmapped.blog/posts/41-box-combinators.html

In 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-18

121.

You can use `fzf` to review git commits

jvns.ca/til/fzf-preview-git-commits

I just learned that
you can use it to review a git commit like this and I thought that was really
cool.

120.

zb beta released

www.zombiezen.com/blog/2025/06/zb-beta-release

zb is a tool for reproducibly building software, similar to Bazel.
(See the comparison page if you’re curious to know the differences.)
When a software build process is reproducible,
it will produce the exact same output
when given the same inputs.
Reproducibility is a desirable property for a software build process to have:
it simplifies debugging,
it enables build speed-ups,
and it is essential for digital supply chain security.
However, reproducibility is a difficult goal to achieve.

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-05-28

113.

The Ingredients of a Productive Monorepo

blog.swgillespie.me/posts/monorepo-ingredients

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.

2025-01-09

97.

if got, want: A Simple Way to Write Better Go Tests

mtlynch.io/if-got-want-improve-go-tests

2024-12-17

91.

Advent of Code on the Nintendo DS

sailor.li/aocnds.html

Solving AoC on the DS with Rust.

2024-11-22

89.

New stuff in Emacs 30

www.mgmarlow.com/words/2024-07-28-emacs-30-news

Reading through the Emacs 30 NEWS file and picking
out the stuff I think is the most interesting.

2024-10-04

80.

Snappy UI Optimization with useDeferredValue

www.joshwcomeau.com/react/use-deferred-value

useDeferredValue is one of the most underrated React hooks. It allows us to dramatically improve the performance of our applications in certain contexts. I recently used it to solve a gnarly performance problem on this blog, and in this tutorial, I'll show you how! ⚡

2024-06-26

55.

A (more) Modern CSS Reset

piccalil.li/blog/a-more-modern-css-reset

2024-06-21

49.

On testing Go code using the standard library | Henrique Vicente

henvic.dev/posts/testing-go

Most 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-18

39.

Understanding a Python closure oddity

utcc.utoronto.ca/~cks/space/blog/python/UnderstandingClosureOddity

2024-06-13

25.

Solving SAT via Positive Supercompilation

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

2024-06-11

9.

Exploring Gleam, a type-safe language on the BEAM!

christopher.engineering/en/blog/gleam-overview

From Erlang, to Elixir and now, GLEAM!?

7.

NetBSD 10 on a Pinebook Pro laptop

www.idatum.net/netbsd-10-on-a-pinebook-pro-laptop.html

I've been running NetBSD on a RockPro64 since NetBSD 10-BETA, and I'm still happy with it now with NetBSD 10-RELEASE. I'm always looking for hardware to hack NetBSD though, and I recently watched a FOSDEM 2024 video: NetBSD 10: Thirty years, still going strong!. The Pinebook Pro laptop was mentioned at one point, which has the same RockChip SoC as the RockPro64. That reminded me I'd been wanting to give this inexpensive ARM 64 laptop a try.

6.

Go evolves in the wrong direction

valyala.medium.com/go-evolves-in-the-wrong-direction-7dfda8a1a620

Go 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

5.

Modern IRC Client Protocol

modern.ircdocs.horse

Living 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).