Feed

  1. Fixing the `opendiff` command line tool


    | chriscoyier.net
  2. Choosing between PostgreSQL and SQLite


    | kerkour.com
  3. Local by Flywheel was Ultra Slow Because I Had The Wrong Version


    | chriscoyier.net
  4. Is the "Nintendo Classics" collection a good value?


    | sethmlarson.dev
  5. Weekly Update 472


    | troyhunt.com
  6. Hosting a website with automatic HTTPS and unlimited bandwidth for 3 € / month with Pingoo


    | kerkour.com
  7. What's up Python? Lazy imports, django gets a task queue...


    | bitecode.dev
  8. Locality, and Temporal-Spatial Hypothesis


    | brooker.co.za
  9. Breaking “provably correct” Leftpad


    | lukeplant.me.uk
  10. #5 — September 2025


    | petemillspaugh.com
  11. DHH Is Way Worse Than I Thought


    | jakelazaroff.com
  12. Danger Gently


    | chriscoyier.net
  13. Case Study: How Proton uses Rust to build secure cross-platform applications for millions of people


    | kerkour.com
  14. Email outage


    | kerkour.com
  15. Winning a bet about “six”, the Python 2 compatibility shim


    | sethmlarson.dev
  16. Subtest grouping in Go


    | rednafi.com
  17. Understanding Weak References in Python


    | blog.codingconfessions.com
  18. How to find a domain for your startup


    | petemillspaugh.com
  19. Welcoming CERN to Have I Been Pwned


    | troyhunt.com
  20. Weekly Update 471


    | troyhunt.com
  21. GZipped files and streams may contain names


    | sethmlarson.dev
  22. Strongbacks


    | chriscoyier.net
  23. New Blog Post: " A Very Early History of Algebraic Data Types"


    | buttondown.com
  24. My GitHub account has been blocked. Edit: Solved. Thank you all!


    | kerkour.com
  25. Microwaves


    | chriscoyier.net
  26. Implementing automatic HTTPS / TLS for Pingoo: Here is what it takes to build a secure internet


    | kerkour.com
  27. HIBP Demo: Querying the API, and the Free Test Key!


    | troyhunt.com
  28. Compiling Python to Run Anywhere


    | blog.codingconfessions.com
  29. Send a Song


    | chriscoyier.net
  30. Flies


    | chriscoyier.net
  31. What's a UUID, and what do you use that for?


    | bitecode.dev
  32. Weekly Update 470


    | troyhunt.com
  33. Ongoing Tradeoffs, and Incidents as Landmarks


    | ferd.ca
  34. Let the domain guide your application structure


    | rednafi.com
  35. Is Zig's New Writer Unsafe?


    | openmymind.net
  36. Have I Been Pwned Demos Are Now Live!


    | troyhunt.com
  37. De la mystification de la Grande Idée


    | ploum.net
  38. Seven Years of Firecracker


    | brooker.co.za
  39. Announcing Pingoo: The fast and secure Load Balancer / API Gateway with built-in service discovery, WAF and bot management (in Rust)


    | kerkour.com
  40. What Makes System Calls Expensive: A Linux Internals Deep Dive


    | blog.codingconfessions.com
  41. In response to a developer asking about systems


    | notes.eatonphil.com
  42. Test state, not interactions


    | rednafi.com
  43. Devotions on 1 Thessalonians 1, August 2025


    | lukeplant.me.uk
  44. Weekly Update 469


    | troyhunt.com
  45. SCREAM CIPHER (“ǠĂȦẶAẦ ĂǍÄẴẶȦ”)


    | sethmlarson.dev
  46. Infinite Precision CVSS Calculator


    | sethmlarson.dev
  47. Many Hard Leetcode Problems are Easy Constraint Problems


    | buttondown.com
  48. Protecting Rust against supply chain attacks


    | kerkour.com
  49. A simple clustering and replication solution for Postgres


    | notes.eatonphil.com
  50. À la recherche de l’humanité perdue…


    | ploum.net
  51. Strong Eventual Consistency - The Big Idea behind CRDTs


    | lewiscampbell.tech
  52. Weekly Update 468


    | troyhunt.com
  53. Early return and goroutine leak


    | rednafi.com
  54. Everything is a []u8


    | openmymind.net
  55. What's up Python? Astral never stops, JetBrains gives us insights


    | bitecode.dev
  56. The Angels and Demons of Nondeterminism


    | buttondown.com
  57. SQL needed structure


    | scattered-thoughts.net
  58. Analytics query goes 6x faster with EDB Postgres Distributed's new analytics engine


    | notes.eatonphil.com
  59. #4 — August 2025


    | petemillspaugh.com
  60. Untitled


    | chriscoyier.net
  61. 0054: zest namespaces, store tags after payloads, go allocation probe, everyones got one, pprof labelguns, go value types, go perf probe, tpde, anyblox, books


    | scattered-thoughts.net
  62. Une vie sans notifications


    | ploum.net
  63. The Millspaugh method


    | petemillspaugh.com
  64. Centralia Old-Time Campout 2025


    | chriscoyier.net
  65. Talk: Почему компьютеры не умеют считать? @ Podlodka


    | tonsky.me
  66. Weekly Update 467


    | troyhunt.com
  67. Lifecycle management in Go tests


    | rednafi.com
  68. Finding Bugs in a Coding Agent with Lightweight DST


    | wickstrom.tech
  69. Logical Duals in Software Engineering


    | buttondown.com
  70. Home Assistant + Ubiquiti + AI = Home Automation Magic


    | troyhunt.com
  71. Building a Plugin System for Rust: Native Libraries vs Scripting Language vs WebAssembly vs Rules Engine


    | kerkour.com
  72. I tell you what I want, what I really, really want


    | bell.bz
  73. Pas de médaille pour les résistants


    | ploum.net
  74. Titles matter


    | joshcollinsworth.com
  75. Weekly Update 466


    | troyhunt.com
  76. The kids are alright


    | bitecode.dev
  77. Chalk Font Kid


    | chriscoyier.net
  78. I'm too dumb for Zig's new IO interface


    | openmymind.net
  79. Sapir-Whorf does not apply to Programming Languages


    | buttondown.com
  80. This Blog Will Make You a Better Programmer


    | hamvocke.com
  81. Launching MDN's new front end


    | developer.mozilla.org
  82. Arc Troopers: Adventures in Async Rust


    | bitbashing.io
  83. The Important Things in Life


    | hamvocke.com
  84. Weekly Update 465


    | troyhunt.com
  85. Basic Type System Terminology


    | lewiscampbell.tech
  86. How to Leverage the CPU’s Micro-Op Cache for Faster Loops


    | blog.codingconfessions.com
  87. Dynamo, DynamoDB, and Aurora DSQL


    | brooker.co.za
  88. Maintainers of Last Resort


    | words.filippo.io
  89. Set up a single-node EDB Postgres Distributed cluster on Ubuntu


    | notes.eatonphil.com
  90. Replacing Makefile with Invoke for Cross-Platform Python Tasks


    | safjan.com
  91. That 16 Billion Password Story (AKA "Data Troll")


    | troyhunt.com
  92. Cross-Site Request Forgery


    | words.filippo.io
  93. Lessons learned from implementing SIMD-accelerated algorithms (ChaCha20 / ChaCha12) in pure Rust


    | kerkour.com
  94. Get Pwned, Get Local Advice From a Trusted Gov Source


    | troyhunt.com
  95. Just a nice shell script


    | bitecode.dev
  96. Weekly Update 464


    | troyhunt.com
  97. LLMs as Parts of Systems


    | brooker.co.za
  98. What even is distributed systems


    | notes.eatonphil.com
  99. Key Derivation with ChaCha20 (or ChaCha12)


    | kerkour.com
  100. Choice is important with stuff like highlighting


    | bell.bz
  101. Software books I wish I could read


    | buttondown.com
  102. ChaCha12-BLAKE3: Secure, Simple and Fast authenticated and committing encryption for any CPU


    | kerkour.com
  103. We shouldn’t have needed lockfiles


    | tonsky.me
  104. The hiring test that defeated AI


    | bitecode.dev
  105. Everyone's got one


    | scattered-thoughts.net
  106. Your Own Newspaper, Or Not


    | chriscoyier.net
  107. Getting Started with Randomised Testing


    | lewiscampbell.tech
  108. Pixel data from encoders to decoders


    | developer.mozilla.org
  109. Big O vs Hardware: Better Complexity ≠ Better Performance


    | blog.codingconfessions.com
  110. Gateway pattern for external service calls


    | rednafi.com
  111. What's up Python? Unpacking in Comprehensions, Android Wheels, and uv is a big boy now...


    | bitecode.dev
  112. Go Assembly Mutation Testing


    | words.filippo.io
  113. Stack traces for Postgres errors with backtrace_functions


    | notes.eatonphil.com
  114. The $200 Yamaha


    | chriscoyier.net
  115. 2000 words about arrays and tables


    | buttondown.com
  116. The Signal Protocol Explained #2: Implementing the Double Ratchet Algorithm in Rust


    | kerkour.com
  117. Using OpenAI Python SDK with Local Ollama Models (and When to Opt for Alternatives)


    | safjan.com
  118. I deleted Bluesky, Mastodon and LinkedIn off my phone


    | bell.bz
  119. Implementing a Key Encapsulation Mechanism (KEM) with X25519


    | kerkour.com
  120. Why I’m not letting the juniors use GenAI for coding


    | lukeplant.me.uk
  121. Programming Language Escape Hatches


    | buttondown.com
  122. What "Parse, don't validate" means in Python?


    | bitecode.dev
  123. The Signal Protocol Explained #1: Implementing the Post-Quantum Extended Diffie-Hellman (PQXDH) Protocol in Rust


    | kerkour.com
  124. Celebrating 20 years of MDN


    | developer.mozilla.org
  125. Building a Multi-Notebook Report with Quarto


    | safjan.com
  126. TAG Bulletin: Q2 2025


    | blog.google
  127. x86 Assembly Exercise #1: Toy kill Program (Solution)


    | blog.codingconfessions.com
  128. The EU can be shut down with a few keystrokes


    | bitecode.dev
  129. Go allocation probe


    | scattered-thoughts.net
  130. Maybe writing speed actually is a bottleneck for programming


    | buttondown.com
  131. NIH Is Far Cheaper Than The Wrong Dependency


    | lewiscampbell.tech
  132. Zig's new Writer


    | openmymind.net
  133. Understanding Registers and Data Movement in x86-64 Assembly


    | blog.codingconfessions.com
  134. Rust is a great fit for the agentic era


    | kerkour.com
  135. A Programmer’s Guide to x86-64 Assembly (Series Overview)


    | blog.codingconfessions.com
  136. Gaslight-driven development


    | tonsky.me
  137. #3 — July 2025


    | petemillspaugh.com
  138. Encrypting Files with Passkeys and age


    | words.filippo.io
  139. Brett Cannon on Python, humans... and packaging


    | bitecode.dev
  140. Setting Up an SDL3 Mac App in XCode 16


    | journal.stuffwithstuff.com
  141. Store tags after payloads


    | scattered-thoughts.net
  142. The Creative Act by Rick Rubin


    | petemillspaugh.com
  143. Pure Rust cryptography is better than raw performance


    | kerkour.com
  144. The 4 pillars of Rust's superiority


    | kerkour.com
  145. How to Mount a Balcony Awning


    | solar.lowtechmagazine.com
  146. Logic for Programmers Turns One


    | buttondown.com
  147. You Should Run a Certificate Transparency Log


    | words.filippo.io
  148. What's up Python? Mypy gets better, uv faster, FastApi easier, Emscripten formal...er


    | bitecode.dev
  149. Podcast: Datomic: самая рок-н-рольная БД @ Тысяча фичей


    | tonsky.me
  150. The Framework 12 is the Thinkpad X220 we deserve in 2025


    | raphaelkabo.com
  151. Logical Quantifiers in Software


    | buttondown.com
  152. Why This Python Performance Trick Doesn’t Matter Anymore


    | blog.codingconfessions.com
  153. Flags for discoverable test config in Go


    | rednafi.com
  154. Want to meet people, try charging them for it?


    | notes.eatonphil.com
  155. Statically checking Python dicts for completeness


    | lukeplant.me.uk
  156. New zine: The Secret Rules of the Terminal


    | jvns.ca
  157. Downgrade or Upgrade Your Python Version with uv


    | safjan.com
  158. Lecture: Queueing theory on a cocktail napkin


    | blog.danslimmon.com
  159. Rust: A programming language that grows with you, your career and your projects


    | kerkour.com
  160. You can cheat a test suite with a big enough polynomial


    | buttondown.com
  161. Debugging memory leaks in Postgres, jemalloc edition


    | notes.eatonphil.com
  162. Career advice, or something like it


    | brooker.co.za
  163. Homomorphically Encrypting CRDTs


    | jakelazaroff.com
  164. Making System Calls in x86-64 Assembly


    | blog.codingconfessions.com
  165. How to Dress and Undress your Home


    | solar.lowtechmagazine.com
  166. Beyond Coverage - Building Truly Complete Test Suites with GitHub Copilot


    | safjan.com
  167. Solving LinkedIn Queens with SMT


    | buttondown.com
  168. Introduction to embedded development with Rust: Overview of the ecosystem


    | kerkour.com
  169. Using `make` to compile C programs (for non-C-programmers)


    | jvns.ca
  170. The Gap Through Which We Praise the Machine


    | ferd.ca
  171. One Law to Rule Them All: The Iron Law of Software Performance


    | blog.codingconfessions.com
  172. AI is a gamechanger for TLA+ users


    | buttondown.com
  173. it took a big cup


    | j3s.sh
  174. Record broken; Broken record


    | petemillspaugh.com
  175. Advanced Testing and Determinism


    | lewiscampbell.tech
  176. Systems Fun at HotOS


    | brooker.co.za
  177. What's up Python? Faster CPython cancelled, a new installer and yet another type checker


    | bitecode.dev
  178. 0053: consulting, go tips, benchmark_mode, niri, linkrot, sea of nos, llm outsourcing, books


    | scattered-thoughts.net
  179. Consider Knitting


    | journal.stuffwithstuff.com
  180. What does "Undecidable" mean, anyway


    | buttondown.com
  181. Talk: Local-first is not going to win, but that’s okay @ Local-First Conf


    | tonsky.me
  182. Debugging X86-64 Assembly with GDB


    | blog.codingconfessions.com
  183. Access Control Syntax


    | journal.stuffwithstuff.com
  184. Cheerleading


    | notes.eatonphil.com
  185. You probably don't need a DI framework


    | rednafi.com
  186. Debugging memory leaks in Postgres, heaptrack edition


    | notes.eatonphil.com
  187. How to securely encrypt your sensitive data with envelope encryption and KMS in Rust


    | kerkour.com
  188. Kitchen Confidential by Anthony Bourdain


    | petemillspaugh.com
  189. Finding hard 24 puzzles with planner programming


    | buttondown.com
  190. Announcing Markdown Ninja: Open Source alternative to Substack, Mailchimp and Netlify


    | kerkour.com
  191. Good Performance for Bad Days


    | brooker.co.za
  192. LLM Memory


    | grantslatton.com
  193. Building (and Breaking) Your First X86 Assembly Program


    | blog.codingconfessions.com
  194. Petit manifeste low-tech


    | ploum.net
  195. TAG Bulletin: Q1 2025


    | blog.google
  196. Modeling Awkward Social Situations with TLA+


    | buttondown.com
  197. Comment l’université tue le livre (et les intellectuels)


    | ploum.net
  198. Knowledge creates technical debt


    | lukeplant.me.uk
  199. Pour une poignée de bits…


    | ploum.net
  200. Claude Code


    | grantslatton.com
  201. Write the most clever code you possibly can


    | buttondown.com
  202. How to build small and secure Docker images for Rust (FROM scratch)


    | kerkour.com
  203. Color models for humans and devices


    | developer.mozilla.org
  204. The System-Level Foundation of Assembly


    | blog.codingconfessions.com
  205. Podfox: World's First Container-Aware Browser


    | val.packett.cool
  206. The Flying Pig Marathon 2025: race notes


    | petemillspaugh.com
  207. What's up Python? Python in hardware, lock file support and a new type checker


    | bitecode.dev
  208. Words & shwords


    | petemillspaugh.com
  209. The worst nightmare of small entrepreneurs happened. Products access postmortem.


    | kerkour.com
  210. The Business Case for Vanilla JS


    | lewiscampbell.tech
  211. VSCode workspace shortcuts with .desktop files on Linux


    | lovergne.dev
  212. Differential Coverage for Debugging


    | research.swtch.com
  213. Solution-space Taste


    | grantslatton.com
  214. Requirements change until they don't


    | buttondown.com
  215. The next big thing in Python


    | bitecode.dev
  216. Sorting Algorithm: The Game


    | grantslatton.com
  217. Burn your title


    | notes.eatonphil.com
  218. Preventing accidental struct copies in Go


    | rednafi.com
  219. Transactions are a protocol


    | notes.eatonphil.com
  220. Dédicace à Trolls & Vélo et magie cycliste


    | ploum.net
  221. Decomposing Aurora DSQL


    | brooker.co.za
  222. The Halting Problem is a terrible example of NP-Harder


    | buttondown.com
  223. Avoiding memory fragmentation in Rust with jemalloc


    | kerkour.com
  224. À la recherche de l’attention perdue


    | ploum.net
  225. I’ve been to 38 US states


    | petemillspaugh.com
  226. Concurrency in Haskell: Fast, Simple, Correct


    | bitbashing.io
  227. Go 1.24's "tool" directive


    | rednafi.com
  228. Building a Tell-Tale Heart with an Adafruit Prop-Maker FeatherWing


    | raphaelkabo.com
  229. Using Eleventy and S3 to build a personal photo blog


    | raphaelkabo.com
  230. Binary Arithmetic and Bitwise Operations for Systems Programming


    | blog.codingconfessions.com
  231. Capturing console output in Go tests


    | rednafi.com
  232. Default styles for h1 elements are changing


    | developer.mozilla.org
  233. Your mileage may vary: Training for a marathon on a vegan diet


    | petemillspaugh.com
  234. De l’utilisation des smartphones et des tablettes chez les adolescents


    | ploum.net
  235. The Business of Being a Writer by Jane Friedman


    | petemillspaugh.com
  236. Zig's new LinkedList API (it's time to learn @fieldParentPtr)


    | openmymind.net
  237. How to implement cryptographically-secure API keys in Rust


    | kerkour.com
  238. Solving a "Layton Puzzle" with Prolog


    | buttondown.com
  239. On David Foster Wallace


    | petemillspaugh.com
  240. Typo Minimizing Keyboard


    | grantslatton.com
  241. A Fresh Coat of Paint


    | hamvocke.com
  242. The Curve is Bending


    | grantslatton.com
  243. Understanding Computer Organization from First Principles


    | blog.codingconfessions.com
  244. Graph Search Algorithm: The Game


    | grantslatton.com
  245. A rough survey of compilation, recompilation, and compile-time evaluation


    | scattered-thoughts.net
  246. The blissful zen of a good side project


    | joshcollinsworth.com
  247. An incredible week for Markdown Ninja


    | kerkour.com
  248. What's up python? Less perf, no sugar and more bugs


    | bitecode.dev
  249. Architecting and building medium-sized web services in Rust with Axum, SQLx and PostgreSQL


    | kerkour.com
  250. Trading ambition for presence


    | petemillspaugh.com
  251. [April Cools] Gaming Games for Non-Gamers


    | buttondown.com
  252. Don’t Sweat the Small Stuff by Richard Carlson


    | petemillspaugh.com
  253. Deferred teardown closure in Go testing


    | rednafi.com
  254. Things that go wrong with disk IO


    | notes.eatonphil.com
  255. Allocator.resize


    | openmymind.net
  256. Betteridge's Law of Software Engineering Specialness


    | buttondown.com