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

138.

uops.info

uops.info/table.html

Latency, throughput and port usage of x86 instructions.

2024-05-23

137.

Load Balancing

samwho.dev/load-balancing

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

2024-05-20

133.

Understanding Real-World Concurrency Bugs in Go

songlh.github.io/paper/go-study.pdf
128.

nvim-dap-virtual-text: shows variables values in virtual text

github.com/theHamsta/nvim-dap-virtual-text

Looks useful if I ever install DAP.

125.

A Nix DSL for defining DNS zones

github.com/nix-community/dns.nix

2024-04-26

108.

bun.report is Bun's new crash reporter

bun.sh/blog/bun-report-is-buns-new-crash-reporter

How we built an anonymous Zig/C++ crash reporter that doesn't require debug symbols to be shipped with the application.

Pretty fun and showcases some Zig comtime stuff.

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.

2023-12-23

98.

Speculation in JavaScriptCore

www.webkit.org/blog/10308/speculation-in-javascriptcore

This post is all about speculative compilation, or just speculation for short, in the context of the JavaScriptCore virtual machine.

2023-12-18

96.

So you want custom allocator support in your C library

nullprogram.com/blog/2023/12/17

Some thoughts on custom allocator interfaces with nice examples.

2023-12-05

87.

Designing a SIMD Algorithm from Scratch

mcyoung.xyz/2023/11/27/simd-base64#fnref:pad-with-A

A nice post about SIMD algorithms using Rust’s portable SIMD as an example.

2023-12-02

86.

nix-std: no-nixpkgs standard library for the nix expression language

github.com/chessai/nix-std

2023-11-30

85.

Semantic fuzzing of the Rust compiler and interpreter

ethz.ch/content/dam/ethz/special-interest/infk/inst-pls/plf-dam/documents/StudentProjects/MasterTheses/2023-Andy-Thesis.pdf

A very nice paper about fuzzing Rust compiler by generating custom MIR. Found some bugs in both rustc and LLVM, but notably not in Cranelift.

2023-11-28

82.

Linus Torvalds about spinlocks and locking in general

www.realworldtech.com/forum?threadid=189711&curpostid=189723

2023-11-27

77.

Surprisingly Slow

gregoryszorc.com/blog/2021/04/06/surprisingly-slow

This is the closing-file-handles-on-Windows post.

I'm titling this post Surprisingly Slow because the slowness was either surprising to me or the sub-optimal practices leading to slowness are prevalent enough that I think many programmers would be surprised by their existence.

2023-11-26

73.

Sapiens: A Brief History of Humankind

en.wikipedia.org/wiki/Sapiens:_A_Brief_History_of_Humankind

The book, focusing on Homo sapiens, surveys the history of humankind, starting from the Stone Age and going up to the twenty-first century. The account is situated within a framework that intersects the natural sciences with the social sciences.

2023-11-25

45.

tips for systemd services management and hardening in NixOS

git.selfprivacy.org/alexoundos/articles/src/branch/master/systemd-hardening-in-NixOS/article.md

When it comes to security, we care about limiting access of each entity of a system to as few other entities as possible. Network input, executables and users must be able to reach only those resources, which are necessary to perform the defined server tasks. Principle of least priviledge.

Generally, it's better to implement as many layers of security as possible. Although, there is no way to make a server 100% bullet proof - it's a huge endless topic, this article covers some feasible essential systemd tunables that give us a layer of protection.

37.

Codebase as Database: Turning the IDE Inside Out with Datalog

petevilter.me/post/datalog-typechecking

Introspectable and extensible IDEs with logic programming

32.

Breaking Our Latin-1 Assumptions

manishearth.github.io/blog/2017/01/15/breaking-our-latin-1-assumptions
19.

Color: From Hexcodes to Eyeballs

jamie-wong.com/post/color

If you're curious about rainbows, colorimetry, gamma encoding, and experiments run in the late 1920s, then this is the post for you!

12.

Search-based compiler code generation

jamey.thesharps.us/2017/06/19/search-based-compiler-code-generation