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?

2025-01-15

155.

Async Rust is about concurrency, not (just) performance

kobzol.github.io/rust/2025/01/15/async-rust-is-about-concurrency.html

TLDR: I think that the primary benefit of async/await is that it lets us concisely express complex concurrency; any (potential) performance improvements are just a second-order effect. We should thus judge async primarily based on how it simplifies our code, not how (or if) it makes the code faster.

2024-09-30

152.

Building a robust frontend using progressive enhancement - Service Manual - GOV.UK

www.gov.uk/service-manual/technology/using-progressive-enhancement

an extremely based frontend manual from the GOV.UK

2024-05-20

135.

bbs-over-dns

bbs-over-dns.com

microforum in DNS TXT records

126.

telescope-ast-grep.nvim: AST grep extension for telescope.nvim

github.com/ray-x/telescope-ast-grep.nvim

Uses ast-grep, so tree-sitter, not LSP, but still potentially useful.

116.

Sjlver/psst: Paper-based Secret Sharing Technique

github.com/Sjlver/psst

Pen-and-paper secret sharing, looks fun. Don’t know how I would ever use this though.

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.

2023-12-15

95.

Performance of WebAssembly (WASM) runtimes in 2023

00f.net/2023/01/04/webassembly-benchmark-2023

Comparison between different runtimes and with native code.

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

92.

Pinning all system calls in OpenBSD

marc.info?l=openbsd-tech&m=170205367232026&w=2

How OpenBSD prohibited all syscalls from unknown locations.

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

78.

Lambda calculus - Combinatory Logic

theory.stanford.edu/~blynn/lambda/cl.html

Variables are the trickiest part of lambda calculus. And naming is the trickiest part of variables: the most complex code in our lambda evaluator is the part that renames variables to perform capture-avoiding substitutions.
Names are artificial tedious tags whose sole purpose is to aid human comprehension. Can we get rid of them? There ought to be a way to study computation without naming names.

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

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.

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

46.

Shufflecake: plausible deniability for multiple hidden filesystems on Linux

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

33.

Text Rendering Hates You

faultlore.com/blah/text-hates-you
24.

garnix | the nix CI

garnix.io

Simple, fast, and green CI and caching for nix projects

15.

SimpleX Chat: private and secure messenger without any user IDs (not even random)

simplex.chat

SimpleX Chat - a private and encrypted messenger without any user IDs (not even random ones)! Make a private connection via link / QR code to send messages and make calls.

1.

Trustfall

github.com/obi1kenobi/trustfall

Trustfall is a query engine for querying any kind of data source, from APIs and databases to any kind of files on disk.