# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 35972
# self = https://watcher.sour.is?uri=https://feeds.twtxt.net/lobste_rs/twtxt.txt&offset=33972
# next = https://watcher.sour.is?uri=https://feeds.twtxt.net/lobste_rs/twtxt.txt&offset=34072
# prev = https://watcher.sour.is?uri=https://feeds.twtxt.net/lobste_rs/twtxt.txt&offset=33872
Efficient and Universal Merkle Tree Inclusion Proofs via OR Aggregation
CommentsRead more
Gatekeeper and notarization in Sequoia
CommentsRead more
3 reasons traces are better than metrics for debugging your application
CommentsRead more
Linux memory overcommit (2007)
CommentsRead more
OpenVMS x86 E9.2-3 fixes CDE (DECWindows) and adds a Guest Console
CommentsRead more
Passkeys are not passwords
CommentsRead more
Steering Characters with Interpretability
CommentsRead more
Why We Picked AGPL
CommentsRead more
Return an Enumerator When Your Collection Has Multiple Traversals
CommentsRead more
At home in your firmware: Analysis of CVE-2024-36877
CommentsRead more
How big a table do you need for your jigsaw puzzle?**
Abstract

Jigsaw puzzles are typically labeled with their finished area and number of pieces. With this information, is it possible to estimate the area required to lay each piece flat before assembly? We derive a simple formula based on two-dimensional circular packing and show that the unassembled puzzle area is √3 times the assembled puzzle area, independent of the number of pieces. We perform measurements on 9 puzzles ranging from 333 cm² (9 pieces) to 6798 cm² (2000 pieces) ... ⌘ Read more
Run Diablo I in your browser
CommentsRead more
Safe curves for elliptic curve cryptography
CommentsRead more
Eric S Raymond talking about The Cathedral and the Bazaar
CommentsRead more
Would Sherlock use traces or metrics to debug your application?**
CommentsRead more
Using lazydocker with SSH-based remote contexts
CommentsRead more
Some thoughts on OpenSSH 9.8's PerSourcePenalties feature
CommentsRead more
slow TCP connect on Windows
CommentsRead more
Logtalk introduction
CommentsRead more
Practices of Reliable Software Design
CommentsRead more
Forge 0.4.0 and 0.4.1 released
CommentsRead more
CSVs Are Kinda Bad. DSVs Are Kinda Good
CommentsRead more
Will Postgres development rely on mailing lists forever?**
CommentsRead more
Security Issues in Matrix’s Olm Library
CommentsRead more
End of the Road for Lambda: Choco's Journey to Kubernetes
CommentsRead more
Basic MetaProgramming in Zig
CommentsRead more
Planning Weekly Workouts in 100 lines of Haskell
CommentsRead more
The long, slow demise of DVD-RAM
CommentsRead more
Portals in Emacs
CommentsRead more
NIST Releases First 3 Finalized Post-Quantum Encryption Standards
CommentsRead more
Post-Quantum Cryptography FIPS Approved
CommentsRead more
The Universal Server
A simple web server that uses an LLM to respond to HTTP requests and simulates a Wiki application. Could in principle be used for any Web application. Of course not geared towards production.

CommentsRead more
Table format comparisons - Append-only tables and incremental reads
CommentsRead more
From object transition to RCE in the Chrome renderer
CommentsRead more
A Taxonomy of Tech Debt
CommentsRead more
Distributed Relational
CommentsRead more
Go 1.23 Release Notes
CommentsRead more
A practitioner's guide to testing and running large GPU clusters for training generative AI models
CommentsRead more
termsand
CommentsRead more
Building a Galaksija, Part I: The Tech
CommentsRead more
Can You Do Both: Fast Scans and Fast Writes in a Single System?**
CommentsRead more
Why exploits prefer memory corruption
CommentsRead more
Mixwave - Convert, package and manipulate your video on the fly
CommentsRead more
Division and Modulus for Computer Scientists (2003)
CommentsRead more
HTTP/1.0 From Scratch
CommentsRead more
Abusing Makefiles for fun and profit
CommentsRead more
Against Names
CommentsRead more
Good Retry, Bad Retry: An Incident Story
CommentsRead more
The new PostgreSQL 17 make dist
CommentsRead more
Haiku Activity & Contract Report, July 2024
CommentsRead more
Don't Write, but Return: Replacing Output Parameters with Algebraic Data Types in C-to-Rust Translation
CommentsRead more
Announcing Lix 2.91 "Dragon's Breath"
CommentsRead more
Language Server Protocol from debug symbols
CommentsRead more
Introducing the ZDI Vanguard Awards
CommentsRead more
GameBoy Memory Addresses and What They Mean
CommentsRead more
Developing CLIs
CommentsRead more
PPP Wins 8th DEF CON Title
CommentsRead more
Searching and Summoning
CommentsRead more
Weekly Lobsters office hours + development
Hey folks,

When this post is two hours old, and indefinitely twice a week, I’m going to stream Lobsters office hours and development on Twitch.
The channel is here and more info + an archive is on my blog. (You don’t have to sign up to Twitch to watch.)

The office hours are largely to support iteratively running queries.
People don’t take me up on this very often except via IRC because it’s hard to write these th ... ⌘ Read more
YouTube Video (7mins): Hacking AI for Typography
CommentsRead more
Why don't programming languages or IDEs support attaching descriptive metadata to variables?**
CommentsRead more
You should make a new programming language
CommentsRead more
A Flexible Minimalist Neovim for 2024
CommentsRead more
Rust Project goals for 2024
CommentsRead more
Ruby Hub - tutorials, cheat sheets, and tools to support your development journey
CommentsRead more
Go is my hammer, and everything is a nail
CommentsRead more
Okay, I really like WezTerm
CommentsRead more
Approximating sum types in Python with Pydantic
CommentsRead more
Reviewing git contributions via email
CommentsRead more
A different memory pool in Rust
CommentsRead more
Fearless extensibility: Extending THINK Pascal
CommentsRead more
SQL Injection Isn't Dead - Smuggling Queries at the Protocol Level
CommentsRead more
What are you doing this week?**
What are you doing this week? Feel free to share!

Keep in mind it’s OK to do nothing at all, too. ⌘ Read more
The Illustrated QUIC Connection: Every Byte Explained
CommentsRead more
GIL Become Optional in Python 3.13
CommentsRead more
blitz: High performance HTML and CSS renderer
CommentsRead more
A Webring written in OCaml for FP enthusiasts
CommentsRead more
Controlling link opening in Emacs
CommentsRead more
The colors of GTK
CommentsRead more
Apple memory holed its broken promise for an OCSP opt-out
CommentsRead more
Adventures with Bun & Hono
CommentsRead more
Your Go version CI matrix might be wrong
CommentsRead more
The Jame of Life
CommentsRead more
Windows 98 Disk Defrag Simulator
CommentsRead more
OpenBSD 7.5 via qemu on Hetzner (no phys. access / KVM console)
CommentsRead more
Why no one should use the AT&T syntax ever, for any reason, under any circumstances (2021)
CommentsRead more
Building static binaries in Nix
CommentsRead more
Rosie pattern language
CommentsRead more
Just-In-Time Compilation on ARM—A Closer Look at Call-Site Code Consistency
CommentsRead more
A deep dive into CVE-2023-2163: How we found and fixed an eBPF Linux Kernel Vulnerability
CommentsRead more
Fast Arithmetic with Tagged Integers - A Plea for Hardware Support (2022)
CommentsRead more
The Dying Web
CommentsRead more
GNU APL 1.9 Released
(Only two months later, I noticed it.)

CommentsRead more
Distrobox: Use any Linux distribution in your terminal
CommentsRead more
Picking glibc versions at runtime
CommentsRead more
Bevy's Fourth Birthday
CommentsRead more
JPEG Chroma Upsampling
CommentsRead more
Context menus in Emacs 28
CommentsRead more
How I Created 175 Fonts Using Rust
CommentsRead more
SNES: Sprites and backgrounds rendering
CommentsRead more