20 random bookmarks

2025-09-01

132.

Jujutsu for everyone

jj-for-everyone.github.io

A Jujutsu tutorial that requires no previous experience with Git or other version control systems.

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

112.

Async from scratch 1: What's in a Future, anyway? | natkr's ramblings

natkr.com/2025-04-10-async-from-scratch-1

There are a lot of guides about how to use async Rust from a "user's
perspective", but I think it's also worth understanding how it
works, what those async blocks actually mean.

111.

share_target - Web application manifest

developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest/Reference/share_target

The share_target manifest member allows installed Progressive Web Apps (PWAs) to be registered as a share target in the system's share dialog.

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

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

88.

On "Safe" C++

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

2024-10-16

83.

Damas-Hindley-Milner inference two ways

bernsteinbear.com/blog/type-inference

2024-08-18

68.

Permacomputing

permacomputing.net

Permacomputing is both a concept and a community of practice oriented around issues of resilience and regenerativity in computer and network technology inspired by permaculture.

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-08-14

65.

A Flexible Minimalist Neovim for 2024

wickstrom.tech/2024-08-12-a-flexible-minimalist-neovim.html

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

32.

Putting Go's Context package into context

blog.meain.io/2024/golang-context
30.

litterbox - IRC logger

git.causal.agency/litterbox/about

2024-06-13

27.

Category Theory for Programmers: The Preface

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

2024-06-11

11.

Optimizing Font Files for the Modern Web

documentation.platformos.com/best-practices/performance/optimizing-font-files
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).