Feed


  1. Nintendo Switch 2: DRM, expensive, and GameCube


    | sethmlarson.dev
  2. terminal escape codes


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


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


    | kerkour.com
  5. I've been kidnapped by Robert Caro


    | martinfowler.com
  6. [April Cools] Gaming Games for Non-Gamers


    | buttondown.com
  7. Shoptalk show


    | bell.bz
  8. Weekly Update 445


    | troyhunt.com
  9. Alright, let me tell you how to make good Yorkshire puddings


    | bell.bz
  10. 5 years since the .NET Mag article


    | bell.bz
  11. Deferred teardown closure in Go testing


    | rednafi.com
  12. Talk: Clojure workflow with Sublime Text @ SciCloj


    | tonsky.me
  13. [Igalia Podcast] What Happens If They Sell Chrome?


    | chriscoyier.net
  14. Things that go wrong with disk IO


    | notes.eatonphil.com
  15. Allocator.resize


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


    | buttondown.com
  17. canonical mode


    | wizardzines.com
  18. the terminal: cast of characters


    | wizardzines.com
  19. How, as an indie author, I have fought and won against the piracy of my books


    | kerkour.com
  20. Black Hat Rust Promotion


    | kerkour.com
  21. The role of developer skills in agentic coding


    | martinfowler.com
  22. A Sneaky Phish Just Grabbed my Mailchimp Mailing List


    | troyhunt.com
  23. Don't bring slop to a slop fight


    | sethmlarson.dev
  24. One or Two? How Many Queues?


    | brooker.co.za
  25. Phil Eaton on Technical Blogging


    | notes.eatonphil.com
  26. Creating problems to sell the solution is evil


    | kerkour.com
  27. Three flavors of sorting Go slices


    | rednafi.com
  28. Podcast: Мир стал строго лучше @ Думаем дальше


    | tonsky.me
  29. Hardware-Aware Coding: CPU Architecture Concepts Every Developer Should Know


    | blog.codingconfessions.com
  30. Weekly Update 444


    | troyhunt.com
  31. Du désir profond de se faire arnaquer


    | ploum.net
  32. A 10x faster batch job by batching PostgreSQL inserts/updates with Rust and SQLx


    | kerkour.com
  33. I fear for the unauthenticated web


    | sethmlarson.dev
  34. The Compressed Book Edition


    | solar.lowtechmagazine.com
  35. ShopTalk on YouTube


    | chriscoyier.net
  36. Writing against the global lobotomy


    | kerkour.com
  37. Cofessions Of A Code Addict


    | lovergne.dev
  38. “Open Recent” UI in VS Code Alternatives


    | chriscoyier.net
  39. Verification-First Development


    | buttondown.com
  40. We may finally be able to ditch NIST (and FIPS) cryptography


    | kerkour.com
  41. Weekly Update 443


    | troyhunt.com
  42. AI Slop Podcasts?


    | chriscoyier.net
  43. Implications of Global Privacy Control


    | developer.mozilla.org
  44. ArenaAllocator.free and Nested Arenas


    | openmymind.net
  45. Google Being Forced To Sell Chrome is Not Good for the Web


    | chriscoyier.net
  46. did u ever read so hard u accidentally wrote?


    | blog.danslimmon.com
  47. Fediverse Donut Club (#FediDonutFriday)


    | sethmlarson.dev
  48. On Balatro


    | chriscoyier.net
  49. Python Performance: Why 'if not list' is 2x Faster Than Using len()


    | blog.codingconfessions.com
  50. New Blog Post: "A Perplexing Javascript Parsing Puzzle"


    | buttondown.com
  51. Nil comparisons and Go interface


    | rednafi.com
  52. Soft-Launching and Open Sourcing the Have I Been Pwned Rebrand


    | troyhunt.com
  53. N’attendez pas, changez vos paradigmes !


    | ploum.net
  54. When worse is better


    | bitecode.dev
  55. Rohit Chess


    | grantslatton.com
  56. Post Malone Oreos


    | sethmlarson.dev
  57. Computer, Enhance!


    | lovergne.dev
  58. What makes concurrency so hard?


    | lovergne.dev
  59. Models All the Way Down


    | lovergne.dev
  60. Weekly Update 442


    | troyhunt.com
  61. AI: Where in the Loop Should Humans Go?


    | ferd.ca
  62. Zig's dot star syntax (value.*)


    | openmymind.net
  63. Stacked middleware vs embedded delegation in Go


    | rednafi.com
  64. It’s almost like they are saying one thing and doing another.


    | chriscoyier.net
  65. shell history


    | wizardzines.com
  66. Web browsers and our future as developers


    | bitecode.dev
  67. We're Backfilling and Cleaning Stealer Logs in Have I Been Pwned


    | troyhunt.com
  68. What's up Python? Better packaging and better debugging


    | bitecode.dev
  69. Weekly Update 441


    | troyhunt.com
  70. Minimal downtime Postgres major version upgrades with EDB Postgres Distributed


    | notes.eatonphil.com
  71. Tracking Down zsh Alias Plugin Sources


    | safjan.com
  72. GetOrPut With String Keys


    | openmymind.net
  73. JT & Kelsey


    | chriscoyier.net
  74. Commenting on removing "X" on US passports


    | martinfowler.com
  75. Processing 23 Billion Rows of ALIEN TXTBASE Stealer Logs


    | troyhunt.com
  76. GenAI Patterns: Fine Tuning


    | martinfowler.com
  77. Weekly Update 440


    | troyhunt.com
  78. A 16-Color Vim Color Scheme


    | hamvocke.com
  79. [Course Launch] Hands-on Introduction to X86 Assembly


    | blog.codingconfessions.com
  80. Folding code blocks in VS Code


    | petemillspaugh.com
  81. Slashing my ".bashrc" in half


    | bitecode.dev
  82. AI software I'm surprised doesn't exist yet


    | grantslatton.com
  83. Comparing Strings as Integers with @bitCast


    | openmymind.net
  84. Five Kinds of Nondeterminism


    | buttondown.com
  85. GenAI Patterns: Guardrails and RAG overview


    | martinfowler.com
  86. An interview with Leonard Richardson


    | htmx.org
  87. CSS user-select


    | petemillspaugh.com
  88. De la soumission au technofascisme religieux


    | ploum.net
  89. Calculators & Writing


    | chriscoyier.net
  90. My Top 15 OS Books: From Theory and Implementation to Systems Programming


    | blog.codingconfessions.com
  91. What role does LLM reasoning play for software tasks?


    | martinfowler.com
  92. CSS ampersand selector


    | petemillspaugh.com
  93. Le succès existe-t-il ?


    | ploum.net
  94. Weekly Update 439


    | troyhunt.com
  95. A year of uv: pros, cons, and should you migrate


    | bitecode.dev
  96. From web developer to database developer in 10 years


    | notes.eatonphil.com
  97. Writing TILs


    | petemillspaugh.com
  98. this, self, window, global, globalThis, etc.


    | petemillspaugh.com
  99. GenAI Patterns: Reranker


    | martinfowler.com
  100. Blob API


    | petemillspaugh.com
  101. Switching on Strings in Zig


    | openmymind.net
  102. Christ the True and Better Frodo


    | lukeplant.me.uk
  103. Are Efficiency and Horizontal Scalability at odds?


    | buttondown.com
  104. Meetings & Space


    | chriscoyier.net
  105. GenAI Patterns: Query Rewriting


    | martinfowler.com
  106. Is ops a bullshit job?


    | blog.danslimmon.com
  107. CSS cascade layers


    | petemillspaugh.com
  108. CSS revert-layer


    | petemillspaugh.com
  109. À la recherche de la déconnexion parfaite


    | ploum.net
  110. Machine: Learning; Human: Unlearning;


    |
  111. Guide to Managing VS Code Keyboard Shortcuts


    | safjan.com
  112. Recording: How Modern CPUs Execute Your Code: A Deep Dive into Performance


    | blog.codingconfessions.com
  113. Weekly Update 438


    | troyhunt.com
  114. Why does Go's io.Reader have such a weird signature?


    | rednafi.com
  115. Using Generics to Inject Stubs when Testing


    | openmymind.net
  116. Technocapital


    | grantslatton.com
  117. The DeepSeek Series: A Technical Overview


    | martinfowler.com
  118. Passwords suck a lot. Can passkeys replace them?


    | kerkour.com
  119. Go slice gotchas


    | rednafi.com
  120. De la décadence technologique et des luddites technophiles


    | ploum.net
  121. GenAI Patterns: RAG Limitations and Hybrid Retriever


    | martinfowler.com
  122. Let's compile Python 1.0


    | bitecode.dev
  123. What Fekete's Anomaly Can Teach Us About Isolation


    | brooker.co.za
  124. Panel at goto Copenhagen: "Where is SW development Going


    | youtube.com
  125. GenAI Patterns: Retrieval Augmented Generation (RAG)


    | martinfowler.com
  126. Versioning versus Coordination


    | brooker.co.za
  127. Weekly Update 437


    | troyhunt.com
  128. Making Ham, 2025 Edition


    | hamvocke.com
  129. Writing a good design document


    | grantslatton.com
  130. What's up Python? A new Windows installer, ruff will type check, Pypi quarantines...


    | bitecode.dev
  131. "Passage"


    | grantslatton.com
  132. Control


    | chriscoyier.net
  133. Bliki: Forest And Desert


    | martinfowler.com
  134. What hard thing does your tech make easy?


    | buttondown.com
  135. Incident SEV scales are a waste of time


    | blog.danslimmon.com
  136. Embeddings in GenAI Products


    | martinfowler.com
  137. A Little Arm Chair Businessin’ about Chrome


    | chriscoyier.net
  138. Et si on arrêtait d’être de bons petits consultants obéissants ?


    | ploum.net
  139. Edit for clarity


    | notes.eatonphil.com
  140. A Software Engineer's Guide to Reading Research Papers


    | blog.codingconfessions.com
  141. Emerging Patterns in Building GenAI Products


    | martinfowler.com
  142. In Zig, What's a Writer?


    | openmymind.net
  143. Goodbye, Griff. You were a good boy.


    | joshcollinsworth.com
  144. An interview with Chris Wanstrath aka @defunkt, Creator of pjax


    | htmx.org
  145. An interview with Makinde Adeagbo, Creator of Primer


    | htmx.org
  146. An interview with Mike Amundsen, Author of 'RESTful Web APIs'


    | htmx.org
  147. Vendoring


    | htmx.org
  148. Change Python's syntax with the "# coding:" trick


    | bitecode.dev
  149. Launching Live Courses on Systems Programming


    | blog.codingconfessions.com
  150. Weekly Update 436


    | troyhunt.com
  151. What should I know about JavaScript engines and runtimes?


    | petemillspaugh.com
  152. An explosion of transitive dependencies


    | notes.eatonphil.com
  153. Podcast with Luca Rossi


    | refactoring.fm
  154. Rare words in common phrases, and how to avoid getting them wrong


    | joshcollinsworth.com
  155. JavaScript Temporal is coming


    | developer.mozilla.org
  156. SHA-3 Explained: Understanding The Sponge Construction, Keccak, SHAKE, KMAC, TurboSHAKE and KangarooTwelve


    | kerkour.com
  157. You Can't Trust Hackers, and Other Data Breach Verification Tales


    | troyhunt.com
  158. Hacking Subaru: Tracking and Controlling Cars via the STARLINK Admin Panel


    | samcurry.net
  159. The Juggler's Curse


    | buttondown.com
  160. Codemods in other languages


    | martinfowler.com
  161. Embedding Python in Rust (for tests)


    | notes.eatonphil.com
  162. Gloomy Season


    | hamvocke.com
  163. Using SIMD to Tell if the High Bit is Set


    | openmymind.net
  164. Ne venez pas dire que vous n’étiez pas prévenus…


    | ploum.net
  165. The domain knowledge dilemma


    | rednafi.com
  166. Linux Context Switches: The Truth About TLB Flushes


    | blog.codingconfessions.com
  167. Kind Engineering


    | hamvocke.com
  168. Logical replication in Postgres: Basics


    | notes.eatonphil.com
  169. Simple In-Memory Knowledge Graphs for Quick Graph Querying


    | safjan.com
  170. What are the Rosettas of formal specification?


    | buttondown.com
  171. Fixing Common Pitfalls of Codemods


    | martinfowler.com
  172. Peeking Behind Zig Interfaces by Creating a Dummy std.Random Implementation


    | openmymind.net
  173. Live Session: How Modern CPUs Execute Your Code: A Deep Dive into Performance


    | blog.codingconfessions.com
  174. Fix your website's Largest Contentful Paint by optimizing image loading


    | developer.mozilla.org
  175. How Unix Spell Ran in 64kB RAM


    | blog.codingconfessions.com
  176. Hierarchical rate limiting with Redis sorted sets


    | rednafi.com
  177. Alternatives to htmx


    | htmx.org
  178. Yes, you should use a Python venv in a container like docker


    | bitecode.dev
  179. Dynamic shell variables


    | rednafi.com
  180. A Real World wasm to htmx Port


    | htmx.org
  181. Comptime as Configuration


    | openmymind.net
  182. My favorite musical discoveries of 2024


    | martinfowler.com
  183. A more complex codemod


    | martinfowler.com
  184. MDN 2024 content projects


    | developer.mozilla.org
  185. "Logic for Programmers" Project Update


    | buttondown.com
  186. Refactoring with Codemods to Automate API Changes


    | martinfowler.com
  187. Link blog in a static site


    | rednafi.com
  188. Design Patterns


    | grantslatton.com
  189. The Joy of Under-Engineering


    | hamvocke.com
  190. Zig's @bitCast


    | openmymind.net
  191. All your Python project in one file with shiv


    | bitecode.dev
  192. How to write complex software


    | grantslatton.com
  193. TinyFeed


    | lovergne.dev
  194. blogs rot. wikis wait.


    | j3s.sh
  195. The future of htmx


    | htmx.org
  196. Benchmarking RSA Key Generation


    | words.filippo.io
  197. Looking Back at 2024


    | hamvocke.com
  198. Running only a single instance of a process


    | rednafi.com
  199. How I run a coffee club


    | notes.eatonphil.com
  200. Recursive project search in Emacs


    | lukeplant.me.uk
  201. Need an Air Horn? Say No More.


    | hamvocke.com
  202. Linux Context Switching Internals: Part 1 - Process State and Memory


    | blog.codingconfessions.com
  203. What's up Python: MOAR uv, flask-like Django, debugging live processes...


    | bitecode.dev
  204. datalists are more powerful than you think


    | htmhell.dev
  205. Boost website speed with prefetching and the Speculation Rules API


    | htmhell.dev
  206. Misleading Icons: Icon-Only-Buttons and Their Impact on Screen Readers


    | htmhell.dev
  207. Picking up volleyball in NYC with Goodrec and New York Urban


    | notes.eatonphil.com
  208. Basic Awareness in Addition to Deep Understanding


    | openmymind.net
  209. The underrated <dl> element


    | htmhell.dev
  210. Preloading fonts for web performance with link rel="preload"


    | htmhell.dev
  211. Things I enjoyed in 2024


    | joshcollinsworth.com
  212. The search input: They almost got it right


    | htmhell.dev
  213. htmx quirks


    | htmx.org
  214. Mon collègue Julius


    | ploum.net
  215. The devil is in the <details>


    | htmhell.dev
  216. Function types and single-method interfaces in Go


    | rednafi.com
  217. How to Build an Electrically Heated Table?


    | solar.lowtechmagazine.com
  218. PSA: Stop using the title attribute as tooltip!


    | htmhell.dev
  219. Bureaulogy


    | grantslatton.com
  220. Grouping form fields


    | htmhell.dev
  221. A new learning experience on MDN


    | developer.mozilla.org
  222. My favourite colour is Chuck Norris red


    | htmhell.dev
  223. Sorting Strings in Zig


    | openmymind.net
  224. Getting Oriented with HTML Video


    | htmhell.dev
  225. Formally modeling dreidel, the sequel


    | buttondown.com
  226. Reflections on 2024 and Exciting Plans for 2025


    | blog.codingconfessions.com
  227. Choosing a hash function for 2030 and beyond: SHA-2 vs SHA-3 vs BLAKE3


    | kerkour.com
  228. L’urgence de soutenir l’énergie du libre


    | ploum.net
  229. Microdata for books


    | htmhell.dev
  230. TAG Bulletin: Q4 2024


    | blog.google
  231. Browsertech Digest: Encrypting offline storage for local-first apps


    | digest.browsertech.com
  232. The difference between Bandwidth and Traffic (ingress and egress)


    | kerkour.com
  233. SSH saga


    | rednafi.com
  234. htmx lore


    | htmx.org
  235. Snapshot Isolation vs Serializability


    | brooker.co.za
  236. How I gained a new perspective on ARIA


    | htmhell.dev
  237. You don’t need the isOpen class


    | htmhell.dev
  238. UV tricks


    | bitecode.dev
  239. Recording: Live Coding a Bytecode Compiler for Python


    | blog.codingconfessions.com
  240. The Gift You Do NOT Want: A Div in a Button's Clothing


    | htmhell.dev
  241. Crash recovery in 256 bytes


    | cliffle.com
  242. Mandlebrot set


    | petemillspaugh.com
  243. Page by Page: How Pagination Makes the Web Accessible


    | htmhell.dev
  244. dot com et al


    | petemillspaugh.com
  245. Improving User Experience for Multilingual Web Browsing


    | htmhell.dev
  246. Context Switching and Performance: What Every Developer Should Know


    | blog.codingconfessions.com
  247. Design Token-Based UI Architecture


    | martinfowler.com
  248. Raw strings in Rust


    | petemillspaugh.com
  249. HTML and CSS I didn't even know about before I started creating content in Japanese


    | htmhell.dev
  250. Stroustrup's Rule


    | buttondown.com
  251. Browsertech.wasm SF & AI in Prod NYC talk recordings


    | digest.browsertech.com
  252. Isomorphic Web Components


    | jakelazaroff.com
  253. Makeshift hot reload


    | htmhell.dev
  254. Designing Data Products: next steps


    | martinfowler.com
  255. Submit to the Quirks of HTML


    | htmhell.dev
  256. Gluing JSON


    | openmymind.net