20 random bookmarks

2025-09-04

133.

Beacon API

developer.mozilla.org/en-US/docs/Web/API/Beacon_API

The Beacon API is used to send an asynchronous and non-blocking request to a web server. The request does not expect a response. Unlike requests made using XMLHttpRequest or the Fetch API, the browser guarantees to initiate beacon requests before the page is unloaded and to run them to completion.

2025-08-12

128.

missing.css

missing.style

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

The Ingredients of a Productive Monorepo

blog.swgillespie.me/posts/monorepo-ingredients

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-01-09

97.

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

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

2025-01-07

96.

Write your own tiny programming system(s)!

d3s.mff.cuni.cz/teaching/nprg077

2024-11-20

88.

On "Safe" C++

izzys.casa/2024/11/on-safe-cxx

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-09-16

74.

Wayland: i3 to Sway migration

anarc.at/software/desktop/wayland

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

41.

Comparing Objective Caml and Standard ML

adam.chlipala.net/mlcomp
40.

Understanding SPF, DKIM, and DMARC: A Simple Guide

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

2024-06-13

27.

Category Theory for Programmers: The Preface

bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface
26.

The magic of dependency resolution

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

A simple, arena-backed, generic dynamic array for C

nullprogram.com/blog/2023/10/05

2024-06-11

11.

Optimizing Font Files for the Modern Web

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