news
Programming Leftovers
-
Nat Bennett ☛ Testing Problems are Design Problems
If you take anything away from this story I think it should be this: When there's a part of your system that's "buggy," it's not a testing problem. The solution isn't more validation. The problem is with the design.
-
Josh Lospinoso ☛ Modbus RTU: Boundaries, Silence, and Observer Reconstruction
A timing-sensitive serial artifact can use silence to bound frames, but register meaning and completeness still require separate authority.
-
Andrew Nesbitt ☛ Content addressing in package managers
Content addressing identifies a piece of data by a cryptographic hash of its contents rather than by a name or a location. Two copies of the same bytes get the same identifier wherever they came from, a single changed bit produces a completely different one, and because the identifier is derived from the data itself it works as a lookup key and an integrity check at the same time.
I keep running into content addressing in package management, usually solving one problem at one layer, and I’ve been collecting the places it appears. A package manager content-addressed end to end would have its registry index, its package metadata, every released artifact, and the files inside them all named by hash, so any of it could be fetched from any source and verified locally. That idea has been floating around for as long as I’ve been paying attention, and several of the systems below get a long way towards it without any one of them yet covering the whole stack. This is a survey of the pieces as they exist today: what gets hashed, and what each hash is used for.
-
Vikash Patel ☛ Designing a Rate Limiter
This is the boundary spike problem, and it is one of about ten things that will go wrong when you design a rate limiter from scratch. The algorithm is the easy part. The hard parts are what happens when two servers see the same request at the same time, what happens when Redis goes down, and what happens when a client figures out they can route around your limits by spreading requests across IP addresses.
This post designs Throttle, a rate limiting service you can embed as middleware or run as a standalone sidecar, the same way I built Relay in the previous post. We will go through every major algorithm, how each one breaks in a distributed system, how to fix those breaks, and how to deploy it.
-
XMLStarlet ☛ XMLStarlet Command Line XML Toolkit: News
Dear XMLStarlet users,
you may have noticed that the development of xmlstarlet has somewhat stalled. To get the submitted patches applied I volunteered to co-admin the project and at least do some maintenance work. Unfortunetaly my time is limited and I would like to call for participation. Especially the project needs help in the following areas: [...]
-
Python
-
Paolo Melchiorre ☛ DjangoCon US 2026
DjangoCon US is a six-day international conference for the community by the community about the Django web framework, held each year in North America.
-
-
Java/Golang
-
Kevin McDonald ☛ Making Dynamic Protobuf Fast in Go
Most Go Protobuf services get to cheat: their schemas are known at build time. protoc-gen-go turns those schemas into concrete message types, accessor methods, and runtime metadata that the protobuf runtime can use efficiently.
-
Cory Dransfeldt ☛ Implementing standard.site on a nonstandard site • Cory Dransfeldt
Now that this site is written in Go1, I've turned to restoring and adding more features connecting it to the open web. While I maintain a healthy skepticism of Bluesky the company, I'm enamored with open protocols and ATProto falls under that umbrella.
-