20 random bookmarks

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

114.

SAT Live!

localhost:4000

2025-05-23

110.

honk

humungus.tedunangst.com/r/honk

Take control of your honks and join the federation.
An ActivityPub server with minimal setup and support costs.
Spend more time using the software and less time operating it.

2025-05-15

108.

Writing that changed how I think about PL

bernsteinbear.com/blog/pl-writing

Every so often I come across a paper, blog post, or (occasionally) video that completely changes how I think about a topic in programming languages and compilers. For some of these posts, I can’t even remember how I thought about the idea before reading it—it was that impactful.

2025-04-29

106.

No-engine gamedev using Odin + Raylib

zylinski.se/posts/no-engine-gamedev-using-odin-and-raylib

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

2025-03-13

101.

Building interactive web pages with Guile Hoot

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

2024-11-04

86.

Writing secure Go code

jarosz.dev/article/writing-secure-go-code

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

81.

Gnome Files: A detailed UI examination | datagubbe.se

www.datagubbe.se/gnomefiles

2024-09-30

79.

On Leaving Apple

typesanitizer.com/blog/leaving-apple.html

2024-09-19

77.

Blogging in Djot instead of Markdown

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

2024-08-15

66.

Planning Weekly Workouts in 100 lines of Haskell

alt-romes.github.io/posts/2024-08-14-planning-a-workout-week-with-100-lines-of-haskell.html

A lightning post on logic programming in Haskell to construct a workout weekly schedule given the set of exercises, days and constraints.

2024-07-03

59.

Announcing wcurl: a curl wrapper to download files

samueloph.dev/blog/announcing-wcurl-a-curl-wrapper-to-download-files

2024-06-26

55.

A (more) Modern CSS Reset

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

2024-06-19

45.

Avoiding complexity with systemd

mgdm.net/weblog/systemd

Using systemd to avoid having to write some risky code

2024-06-14

34.

Nix as a WebAssembly build tool

determinate.systems/posts/nix-wasm

2024-06-13

26.

The magic of dependency resolution

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

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.

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

3.

On Dependency Usage in Rust

landaire.net/on-dependency-usage-in-rust

Rust and Node aren't bad for encouraging dependency use -- your favorite language's tools just suck.