Bookmarks

138 bookmarks saved.

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?

systemd, 10 years later: a historical and technical retrospective

blog.darknedgy.net/technology/2020/05/02/0

This offers an interesting technical analysis of systemd (in part 3). I’m not a huge fan of the social/historical parts (1-2, 4), although they offer some perspective.

about-low-level,is-blog,to-show

effing-mad: Algebraic effects for Rust

github.com/rosefromthedead/effing-mad

Very much not-production-ready (didn’t even compile on my machine), but looks pretty cool (rad, even).

about-rust,is-repo,to-show

uops.info

uops.info/table.html

Latency, throughput and port usage of x86 instructions.

about-compilers,about-low-level,about-tools,is-project,to-archive

Load Balancing

samwho.dev/load-balancing

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

about-networking,is-blog,to-show

Queueing – An interactive study of queueing strategies

encore.dev/blog/queueing

In this blog, we go on an interactive journey to understand common queueing strategies for handling HTTP requests.

about-networking,is-blog,to-show

bbs-over-dns

bbs-over-dns.com

microforum in DNS TXT records

about-networking,is-project,to-show

Типизированная математика by suhr

suhr.github.io/tmath
about-math,is-book,to-read

Understanding Real-World Concurrency Bugs in Go

songlh.github.io/paper/go-study.pdf
about-programming,is-paper,to-read

Refinement Proofs in Rust Using Ghost Locks

arxiv.org/pdf/2311.14452

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

about-rust,is-paper,to-read

Folk Computer

folk.computer/notes/tableshots

An IRL spatial computer making use of printed codes to do stuff.

about-humans,about-langs,is-blog,to-show

wayback: a personal web archiving tool.

github.com/wabarc/wayback

Wayback is a web archiving and playback tool that allows users to capture and preserve web content. It provides an IM-style interface for receiving and presenting archived web content, and a search and playback service for retrieving previously archived pages. Wayback is designed to be used by web archivists, researchers, and anyone who wants to preserve web content and access it in the future.

about-tools,is-repo,to-try

TIGER_STYLE.md: TigerBeetle’s code style guidelines

github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md
about-programming,is-blog,to-read

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

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

Looks useful if I ever install DAP.

about-debug,about-nvim,is-repo,to-try

stalwart: all-in-one mail server

github.com/stalwartlabs/mail-server

May be a replacement for a current postfix+dovecot+rspamd+L+ratio setup. Notably supports JMAP, although most clients don’t anyways.

about-networking,about-tools,is-repo,to-try

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.

about-nvim,about-tools,is-repo,to-try

A Nix DSL for defining DNS zones

github.com/nix-community/dns.nix
about-networking,about-nix,is-repo,to-try

rustaceanvim: fork of rust-tools.nvim

github.com/mrcjkb/rustaceanvim

Has some interesting features like “View HIR”, grouped code actions and failed test diagnostics.

about-nvim,about-rust,is-repo,to-try

nix-output-monitor: fun build progress display

github.com/maralorn/nix-output-monitor
about-nix,about-tools,is-repo,to-try

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.

about-networking,about-tools,is-repo,to-try

mini.ai: Neovim Lua plugin to extend and create `a`/`i` textobjects. Part of 'mini.nvim' library.

github.com/echasnovski/mini.ai

Interesting for tree-sitter textobjects.

about-nvim,is-repo,to-try

cdmill/neomodern.nvim: A collection of modern themes for Neovim

github.com/cdmill/neomodern.nvim

Could it be?.. A sensible looking Neovim colorscheme?..

about-nvim,is-repo,to-try

srgn: tree-sitter-aware text replacement tool

github.com/alexpovel/srgn

Looks useful, although I don’t remember any context in which it would be useful. Worth a try anyway.

about-tools,is-repo,to-try

Best-Effort Extent-Same, a btrfs dedupe agent

github.com/Zygo/bees

Probably useful if I ever run out of disk space.

about-tools,is-repo,to-try

may: rust stackful coroutine library

github.com/Xudong-Huang/may

Looks interesting, supports cancellation and other useful stuff.

about-rust,is-repo,to-try

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.

about-security,about-tools,is-repo,to-archive

pineapple: colorscheme previewer for neovim

github.com/CWood-sdf/pineapple
about-nvim,is-repo,to-try

the nix iceberg

cohost.org/leftpaddotpy/post/3885451-the-nix-iceberg

sadly, doesn’t provide links, but most is googlable

about-nix,is-blog,to-show

RalfJung/cargo-careful: Execute Rust code carefully, with extra checking along the way

github.com/RalfJung/cargo-careful

Enables std debug assertions + presents an interface for building with a sanitizer.

about-rust,about-tools,for-memequeue,is-repo,to-try

Compilers for free with weval

bernsteinbear.com/blog/weval

With some partial evaluation and specialization hints, it is possible to get pretty decent speedups on interpreters by turning them into compilers.

about-compilers,is-blog,to-show

RFC 9225: Software Defects Considered Harmful

datatracker.ietf.org/doc/html/rfc9225

one of my favourite RFCs probably

about-programming,is-paper,to-show

git-infinite-recursion

github.com/asyncmeow/git-infinite-recursion

git clone --recursive --remote-submodules https://github.com/asyncmeow/git-infinite-recursion.git

about-vcs,is-repo,to-show

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.

about-langs,about-tools,is-blog,to-show

How to manipulate curve standards: a white paper for the black hat

bada55.cr.yp.to/bada55-20150927.pdf

A paper about choosing “nothing-up-my-sleeve” numbers while having stuff up your sleeve.

about-security,is-paper,to-show

The little ssh that (sometimes) couldn't

mina.naguib.ca/blog/2012/10/22/the-little-ssh-that-sometimes-couldnt.html

A fascinating tale about network problems.

about-networking,is-blog,to-show

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.

about-rust,is-blog,to-show

Shapecatcher

shapecatcher.com

Allows you to find Unicode characters by drawing them.

about-text,about-tools,is-project,to-show

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.

about-compilers,about-rust,is-blog,to-show

voidlizard/hbs2: P2P CAS / P2P Framework / Distributed GIT

github.com/voidlizard/hbs2

A distributed network that allows you to add host-independent repo identifier as a git origin. Looks like it worth a try, especially with sr.ht being down and Codeberg half-broken because of a DDoS attack.

about-networking,about-tools,about-vcs,is-repo,to-try

ast-grep | structural search/rewrite tool for many languages

ast-grep.github.io

Treesitter-based AST search-and-replace. Supports lints via saved patterns, LSP diagnostics + quick fixes and a regular CLI. Sounds pretty cool for custom lints.

about-langs,about-tools,is-project,to-try

Compromising a Linux desktop using... 6502 processor opcodes on the NES?!

scarybeastsecurity.blogspot.com/2016/11/0day-exploit-compromising-linux-desktop.html

gstreamer-plugins-bad includes a NES 6502 emulator, which was vulnerable to RCE.

about-security,is-blog,to-show

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.

about-security,is-blog,to-show

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.

about-compilers,about-low-level,is-blog,to-show

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.

about-low-level,is-blog,to-archive,to-show

Performance of WebAssembly (WASM) runtimes in 2023

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

Comparison between different runtimes and with native code.

about-compilers,about-tools,is-blog,to-archive,to-show

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

about-compilers,about-langs,is-blog,to-show

mfio: Completion I/O for Everyone

blaz.is/blog/post/mfio-release

Another take on io_uring in Rust. Doesn’t bring its own runtime, instead choosing to integrate with tokio.

about-rust,is-project,to-try

Pinning all system calls in OpenBSD

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

How OpenBSD prohibited all syscalls from unknown locations.

about-low-level,about-security,is-blog,to-show

FireDBG: Time Travel Visual Debugger for Rust

firedbg.sea-ql.org

Looks really cool. I wonder what’s inside.

about-rust,about-tools,for-memequeue,is-project,to-try

prr: Review GitHub PRs from local editor

dxuuu.xyz/prr.html
about-tools,about-vcs,is-project,to-try

Software Transactional Memory: Clojure vs. Haskell

leftfold.tech/posts/pie-a-la-mode/#fnref-2

A nice overview of STM primitives.

about-programming,is-blog,to-read

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.

about-langs,is-blog,to-show

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.

about-low-level,is-blog,to-read

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

github.com/chessai/nix-std
about-nix,is-repo,to-try

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.

about-compilers,about-rust,is-paper,to-show

jaq: A jq clone focussed on correctness, speed, and simplicity

github.com/01mf02/jaq
about-tools,is-repo,to-try

Friends don't let friends make certain types of data visualization

github.com/cxli233/FriendsDontLetFriends

This is an opinionated essay about good and bad practices in data visualization. Examples and explanations are below.

about-humans,about-math,about-tools,is-blog,to-read,to-show

Linus Torvalds about spinlocks and locking in general

www.realworldtech.com/forum/?threadid=189711&curpostid=189723
about-low-level,for-memequeue,is-blog,to-read

Efficient Userspace Optimistic Spinning Locks

lpc.events/event/4/contributions/286/attachments/225/398/LPC-2019-OptSpin-Locks.pdf

How to spin before sleeping so that it actually helps and not harms?

about-low-level,for-memequeue,is-paper,to-read

Mutexes Are Faster Than Spinlocks

matklad.github.io/2020/01/04/mutexes-are-faster-than-spinlocks.html

Microbenchmark for futexes + spinlocks and some useful links at the bottom.

about-low-level,about-rust,for-memequeue,is-blog,to-show

Spinlocks Considered Harmful

matklad.github.io/2020/01/02/spinlocks-considered-harmful.html

Because spin locks are so simple and fast, it seems to be a good idea to use them for short-lived critical sections. For example, if you only need to increment a couple of integers, should you really bother with complicated syscalls? In the worst case, the other thread will spin just for a couple of iterations…
Unfortunately, this logic is flawed! A thread can be preempted at any time, including during a short critical section. If it is preempted, that means that all other threads will need to spin until the original thread gets its share of CPU again. And, because a spinning thread looks like a good, busy thread to the OS, the other threads will spin until they exhaust their quants, preventing the unlucky thread from getting back on the processor!

about-low-level,about-rust,is-blog,to-show

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.

about-math,about-programming,is-blog,is-interactive,to-read

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.

about-programming,about-rust,is-blog,to-show

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.

about-langs,about-networking,is-blog,to-show

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.

about-humans,is-project,to-try
1 3