20 random bookmarks

Place where goldstein dumps his links so she doesn’t have 500 tabs ever again.

Tags are structured like this:

  • is- tags are about medium. Books, papers, blog posts, interactive explanations etc.

  • about- tags are about about. What’s this post topic or what’s this project is/for.

  • to- tags are about reason. Why did I even save this?

  • for- tags are about connections. Where can I use it?

2024-05-23

137.

Load Balancing

samwho.dev/load-balancing

A bottom-up, animated guide to HTTP load balancing algorithms.

2024-05-20

132.

Refinement Proofs in Rust Using Ghost Locks

arxiv.org/pdf/2311.14452

Something about tying abstract models to Rust programs, looks useful.

122.

trippy: A network diagnostic tool

github.com/fujiapple852/trippy

Looks super cool, I’ll have to remember it when I next need to do network diagnostics.

114.

pineapple: colorscheme previewer for neovim

github.com/CWood-sdf/pineapple

2024-01-24

105.

Learning Async Rust With Entirely Too Many Web Servers

ibraheem.ca/posts/too-many-web-servers

A nice explanation of async that’s not about “threads slow”, but rather about how async as an abstraction emerges from sensible design decisions.

2024-01-17

103.

A universal lowering strategy for control effects in Rust

www.abubalay.com/blog/2024/01/14/rust-effect-lowering

The Rust language has incrementally grown a set of patterns to support control-flow effects including error handling, iteration, and asynchronous I/O. In The registers of Rust, boats lays out four aspects of this pattern shared by Rust’s three effects. Today these effects are typically used in isolation, or at most combined in bespoke ways, but the Rust project has been working on ways to integrate them more deeply with each other, such as async gen blocks.

The theory of algebraic effects and handlers has explored this design space and offers answers to many of the questions that the Rust project has encountered during this work. This post will relate the patterns employed by Rust to the terminology and semantics of effects, to help build a shared vocabulary and understanding of the implications of combining multiple effects.

2024-01-04

99.

features are faults

flak.tedunangst.com/post/features-are-faults

Review of many different software vulnerabilities caused by obscure undertested (mis-)features.

A modern web browser is the software equivalent of Gabriel’s Horn. Finite volume, but infinite attack surface.

2023-12-15

94.

The Generic Dilemma

research.swtch.com/generic

The generic dilemma is this: do you want slow programmers, slow compilers and bloated binaries, or slow execution times?

No generics / monomorphization / dynamic dispatch

2023-12-06

88.

Execution in the Kingdom of Nouns

steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

About why free functions are important. I find verb/noun framework from this article quite useful.

2023-11-26

76.

netaddr.IP: a new IP address type for Go

tailscale.com/blog/netaddr-new-ip-type-for-go

The Go standard library’s net.IP type is problematic for a number of reasons. We wrote a new one.

This post explores some problems with Go’s “simplicity by design”: introducing a better IP type that’s also interoperable with the language proves to be a non-trivial challenge.

75.

Distributed Proofreaders

www.pgdp.net/c

Distributed Proofreaders provides a web-based method to ease the conversion of Public Domain books into e-books. By dividing the workload into individual pages, many volunteers can work on a book at the same time.

72.

git-revise

git-revise.readthedocs.io/en/latest

Faster and simpler git rebase.

68.

how I think when I think about programming

www.alicemaz.com/writing/program.html

a whirlwind tour through the guts of the system

67.

Dungeons and Discourse Third Edition: The dialectic continues

slatestarcodex.com/2013/02/22/dungeons-and-discourse-third-edition-the-dialectic-continues

Dungeons and Dragons, but about philosophy.

59.

Bots Are Stupid

www.gamingonlinux.com/2022/12/bots-are-stupid-is-an-ultra-precise-programming-platformer

Up for a challenge and love programming? Well it seems that Bots Are Stupid might be a good fit for you. An ultra-precise platformer where you don't directly control things — what could possibly go wrong?

2023-11-25

39.

A New Backend for Cranelift

cfallin.org/blog/2020/09/18/cranelift-isel-1
22.

What every programmer should know about memory

lwn.net/Articles/250967
20.

An Interactive Introduction to Fourier Transforms

www.jezzamon.com/fourier/index.html

Fourier transforms are a tool used in a whole bunch of different things. This is a explanation of what a Fourier transform does, and some different ways it can be useful.

18.

Rust Atomics and Locks by Mara Bos

marabos.nl/atomics

A free book about atomics and locks that also serves as a nice cheatsheet for x86_64, aarch64 and futexes.

16.

What I learned from making a DNS client in Rust

blog.adamchalmers.com/making-a-dns-client

A lot about sockets, syscalls and bits