20 random bookmarks

2025-08-21

129.

A Brief Guide to A Few Algebraic Structures

argumatronic.com/posts/2019-06-21-algebra-cheatsheet.html

I started writing this post because, for whatever reason, I keep forgetting what the difference is between a ring and a group, which is funny to me because I never forget the difference between a semiring and a semigroup – although other people do, because it’s quite easy to forget! So, I wanted a fast reference to the kinds of algebraic structures that I am most often dealing with in one way or another, usually because I’m writing Haskell (which has some reliance on terminology and structure from abstract algebra and category theory) or I’m trying to read a book about category theory and they keep talking about “groups.” Wikipedia, of course, defines all these structures, and that’s fine, but what I need in those times is more of a refresher than an in-depth explanation.

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-12

116.

Always do Extra

www.bennorthrop.com/Essays/2021/always-do-extra.php

Extra is different than More. Extra is finishing those two screens, but then researching a new library for form validation that might reduce the boilerplate code. Or it's learning ways to protect against common security vulnerabilities from data entry. These little off-ramps from the main highway of Normal Work could be dead-ends and not have any practical value to the project. But they might also be important contributions. And that's the thing with Extra. While the tangible value to the project is uncertain (it could be nothing this time or it could be something), the value to you is real.

2025-05-28

114.

SAT Live!

localhost:4000

2025-04-04

104.

Pitfalls of Safe Rus

corrode.dev/blog/pitfalls-of-safe-rust

When people say Rust is a “safe language”, they often mean memory safety.
And while memory safety is a great start, it’s far from all it takes to build robust applications.
Memory safety is important but not sufficient for overall r…

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-20

94.

Visitor Pattern Considered Pointless - Use Pattern Switches Instead

nipafx.dev/java-visitor-pattern-pointless

In 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-10-21

84.

init.py files are optional. Here’s why you should still use them

dev.arie.bovenberg.net/blog/still-use-init-py

2024-10-16

83.

Damas-Hindley-Milner inference two ways

bernsteinbear.com/blog/type-inference

2024-09-15

72.

Writing an OS in Rust

os.phil-opp.com

This blog series creates a small operating system in the Rust programming language. Each post is a small tutorial and includes all needed code.

2024-08-28

69.

There can't be only one

www.b-list.org/weblog/2024/aug/27/highlander-problem

There's a concept that I've heard called by a lot of different names, but my favorite name for it is …

2024-08-08

63.

More than 200 orphaned Debian packages moved to git, 216 to go

www.hungry.com/~pere/blog/More_than_200_orphaned_Debian_packages_moved_to_git__216_to_go.html

2024-06-27

56.

plainweb

www.plainweb.dev

plainweb is a framework using HTMX, SQLite and TypeScript for less complexity and more joy.

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-20

48.

build2 | C/C++ Build Toolchain

build2.org

build2 is an open source (MIT), cross-platform build toolchain that aims to approximate Rust Cargo's convenience for developing and packaging C/C++ projects while providing more depth and flexibility, especially in the build system.

2024-06-18

39.

Understanding a Python closure oddity

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

2024-06-13

26.

The magic of dependency resolution

ochagavia.nl/blog/the-magic-of-dependency-resolution
24.

Category Theory in Context

math.jhu.edu/~eriehl/context.pdf
23.

Macaroons Escalated Quickly

fly.io/blog/macaroons-escalated-quickly
21.

Building Go programs with Nix Flakes

xeiaso.net//blog/nix-flakes-go-programs