20 random bookmarks

2025-08-29

131.

You no longer need JavaScript

lyra.horse/blog/2025/08/you-dont-need-js

An overview of what makes modern CSS so awesome.

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

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

117.

What I talk about when I talk about IRs

bernsteinbear.com/blog/irs

I 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-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-30

115.

The PGP Problem

www.latacora.com/blog/2019/07/16/the-pgp-problem

Why do people keep telling me to use PGP? The answer is that they shouldn’t be telling you that, because PGP is bad and needs to go away.

2025-03-13

101.

Building interactive web pages with Guile Hoot

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

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

82.

'Do' More With 'Run'

maxgreenwald.me/blog/do-more-with-run

I recently wrote about Async Pool, one of my favorite JavaScript / TypeScript helpers, and today I want to share an even simpler yet extremely useful utility

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-07-15

62.

"GitHub" Is Starting to Feel Like Legacy Software

mistys-internet.website/blog/blog/2024/07/12/github-is-starting-to-feel-like-legacy-software

I’ve used a lot of tools over the years, which means I’ve seen a lot of tools hit a plateau. That’s not always a problem; sometimes …

2024-06-20

46.

Why does SQLite (in production) have such a bad rep?

avi.im/blag/2024/sqlite-bad-rep

2024-06-18

38.

Linux 6.10 Honors One Last ReiserFS Request Made By Hans Reiser - Phoronix

www.phoronix.com/news/ReiserFS-README-Linux-6.10

2024-06-17

36.

How I learned Haskell in just 15 years - duckrabbit solutions

duckrabbit.tech/articles/learning-haskell.html

2024-06-14

31.

CAUSAL.AGENCY(7)

causal.agency

I 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.

30.

litterbox - IRC logger

git.causal.agency/litterbox/about

2024-06-13

25.

Solving SAT via Positive Supercompilation

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

API Tokens: A Tedious Survey

fly.io/blog/api-tokens-a-tedious-survey

Comparison between types of API tokens.

15.

OpenBSD extreme privacy setup

dataswamp.org/~solene/2024-06-08-openbsd-privacy-setup.html

In this article, you will learn how to install and configure OpenBSD to reduce its network activity over clearnet

2024-06-11

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.