41554 blogs · [
{
"id": "01a0d802-40b4-73bf-81d8-057a06dd9d79",
"title": "The Ampere kernels were in the DLL the whole time",
"url": "https://dnim.dev/blog/dlssg-open-ampere-proton",
"published_at": "2026-09-22T00:00:00+00:00"
},
{
"id": "01a0c508-92c3-70a7-a4d1-5db647c54387",
"title": "VictoriaMetrics already had downsampling, under another name",
"url": "https://dnim.dev/blog/vm-tiered-downsampling",
"published_at": "2026-09-19T00:00:00+00:00"
},
{
"id": "01a096c3-c430-7368-9964-4dacb37c9284",
"title": "Relaying a self-hosted mail server through Cloudflare",
"url": "https://dnim.dev/blog/mail-relay-cloudflare-email-service",
"published_at": "2026-09-12T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-9437189c16d4",
"title": "Swapping a live router in 50 milliseconds",
"url": "https://dnim.dev/blog/blue-green-router-swap",
"published_at": "2026-08-31T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-943718e86061",
"title": "The clock that rang like a bell under load",
"url": "https://dnim.dev/blog/bbb-pru-pps-feedback-loop",
"published_at": "2026-08-25T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371934dffb",
"title": "Reverse engineering the Attack Shark keyboard protocol",
"url": "https://dnim.dev/blog/royuan-keyboard-protocol",
"published_at": "2026-07-27T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-9437197d9768",
"title": "The load average with a seven hour heartbeat",
"url": "https://dnim.dev/blog/load-average-seven-hour-heartbeat",
"published_at": "2026-07-12T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371a0be94d",
"title": "A fork in the uncanny valley",
"url": "https://dnim.dev/blog/fork-in-the-uncanny-valley",
"published_at": "2026-06-16T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371ab1fe5e",
"title": "Putting back the bass that was never recorded",
"url": "https://dnim.dev/blog/measured-audio-mastering",
"published_at": "2026-06-08T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371b12ad26",
"title": "What is putting those bytes on the wire?",
"url": "https://dnim.dev/blog/ceph-read-amplification",
"published_at": "2026-06-02T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371b8c6bec",
"title": "A Dovecot optimization the compiler had been deleting all along",
"url": "https://dnim.dev/blog/dovecot-attr-pure-panic",
"published_at": "2026-05-28T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371b9a3f91",
"title": "A Ceph cluster I throw away on every reboot",
"url": "https://dnim.dev/blog/cephplayground",
"published_at": "2026-05-24T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371b9c3d92",
"title": "The $20 stratum 1 that chrony kept benching",
"url": "https://dnim.dev/blog/esp32-stratum-1-ntp",
"published_at": "2026-05-20T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371bcdc297",
"title": "You cannot average percentiles",
"url": "https://dnim.dev/blog/cannot-average-percentiles",
"published_at": "2026-05-12T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371ca29610",
"title": "The frozen clock that nobody noticed",
"url": "https://dnim.dev/blog/ts2phc-go-frozen-clock",
"published_at": "2026-04-08T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371d6d8041",
"title": "130 frames per second, derived from a wire",
"url": "https://dnim.dev/blog/gometer-130fps-led",
"published_at": "2026-03-15T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371de48d7e",
"title": "ts2phc and gpsd cannot share a serial port",
"url": "https://dnim.dev/blog/jankgps-ts2phc-gpsd-demux",
"published_at": "2026-03-07T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371e2c15b2",
"title": "The spare cores in a BeagleBone keep better time than its kernel",
"url": "https://dnim.dev/blog/bbb-pru-pps-timestamping",
"published_at": "2026-03-02T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371e79cff1",
"title": "Tidal stopped serving lossless, so I read the token",
"url": "https://dnim.dev/blog/tidal-24bit-pkce",
"published_at": "2026-02-22T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371f12315f",
"title": "The game that rebooted the hypervisor",
"url": "https://dnim.dev/blog/gpu-passthrough-host-reboot",
"published_at": "2026-01-18T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371fb6b013",
"title": "The furnace controller that deadlocked when the WiFi dropped",
"url": "https://dnim.dev/blog/rp2040-furnace-deadlock",
"published_at": "2025-11-30T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94371fda4994",
"title": "The GPS that answers 0xFF when it has nothing to say",
"url": "https://dnim.dev/blog/gpsd-i2c-chrony-shm",
"published_at": "2025-10-27T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-943720afab81",
"title": "One socket for the whole subnet",
"url": "https://dnim.dev/blog/goscan-one-socket-subnet",
"published_at": "2025-03-03T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-943721597b2f",
"title": "My weather station lies about the sun",
"url": "https://dnim.dev/blog/wsrepeater-sensor-calibration",
"published_at": "2024-08-29T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-943721a5d045",
"title": "Indexing an on-chain token ledger in Rust",
"url": "https://dnim.dev/blog/rust-onchain-token-indexer",
"published_at": "2024-02-03T00:00:00+00:00"
},
{
"id": "01a0876e-3341-721d-870a-94372281273a",
"title": "The Python version worked. I rewrote it in Rust anyway.",
"url": "https://dnim.dev/blog/python-to-rust-indexer",
"published_at": "2024-01-20T00:00:00+00:00"
}
] posts Claim your blog