Feed


  1. Kind Engineering


    | hamvocke.com
  2. The Garden vs The River


    | chriscoyier.net
  3. Nest Cams


    | chriscoyier.net
  4. Simple In-Memory Knowledge Graphs for Quick Graph Querying


    | safjan.com
  5. Sidebar is back from its break. Of ideas that can’t cease to exist. 


    | bradfrost.com
  6. What are the Rosettas of formal specification?


    | buttondown.com
  7. Donating to LA Fire Support


    | bradfrost.com
  8. Fixing Common Pitfalls of Codemods


    | martinfowler.com
  9. Quickly visualizing an SBOM document


    | sethmlarson.dev
  10. 1,000 lbs


    | chriscoyier.net
  11. Studioworks: Business management software for creative studios


    | bradfrost.com
  12. Live Session: How Modern CPUs Execute Your Code: A Deep Dive into Performance


    | blog.codingconfessions.com
  13. The UX of login codes


    | bradfrost.com
  14. Funky VI


    | bradfrost.com
  15. Experimenting with Stealer Logs in Have I Been Pwned


    | troyhunt.com
  16. Tech + Pace Layering


    | chriscoyier.net
  17. Fix your website's Largest Contentful Paint by optimizing image loading


    | developer.mozilla.org
  18. Weekly Update 434


    | troyhunt.com
  19. How Unix Spell Ran in 64kB RAM


    | blog.codingconfessions.com
  20. Alternatives to htmx


    | htmx.org
  21. Hierarchical rate limiting with Redis sorted sets


    | rednafi.com
  22. Yes, you should use a Python venv in a container like docker


    | bitecode.dev
  23. Dynamic shell variables


    | rednafi.com
  24. Short Life of Trouble


    | chriscoyier.net
  25. Durable products


    | bradfrost.com
  26. A Real World wasm to htmx Port


    | htmx.org
  27. Balancing Text In CSS


    | bradfrost.com
  28. 2025: another year of blog on the desktop again | live laugh blog


    | bradfrost.com
  29. Exploring Hogwarts Puzzle


    | chriscoyier.net
  30. Design Tokens Course Update: 2hrs of video now available!


    | bradfrost.com
  31. My favorite musical discoveries of 2024


    | martinfowler.com
  32. Check-in-the-Mail IRL Spam (Canada Dry)


    | chriscoyier.net
  33. A more complex codemod


    | martinfowler.com
  34. MDN 2024 content projects


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


    | buttondown.com
  36. Starlink


    | chriscoyier.net
  37. Refactoring with Codemods to Automate API Changes


    | martinfowler.com
  38. Stimulation Clicker


    | bradfrost.com
  39. M4


    | chriscoyier.net
  40. Untitled


    | chriscoyier.net
  41. Recreate a Cool Shuffling Effect in Pure CSS


    | chriscoyier.net
  42. Weekly Update 433


    | troyhunt.com
  43. Frostapalooza: one epic night


    | bradfrost.com
  44. Link blog in a static site


    | rednafi.com
  45. Media Diet


    | chriscoyier.net
  46. Design Patterns


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


    | hamvocke.com
  48. All your Python project in one file with shiv


    | bitecode.dev
  49. How to write complex software


    | grantslatton.com
  50. blogs rot. wikis wait.


    | j3s.sh
  51. The future of htmx


    | htmx.org
  52. Wrapping up 2024


    | andy-bell.co.uk
  53. Benchmarking RSA Key Generation


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


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


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


    | notes.eatonphil.com
  57. Weekly Update 432


    | troyhunt.com
  58. Recursive project search in Emacs


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


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


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


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


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


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


    | htmhell.dev
  65. The underrated <dl> element


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


    | notes.eatonphil.com
  67. Weekly Update 431


    | troyhunt.com
  68. Preloading fonts for web performance with link rel="preload"


    | htmhell.dev
  69. Things I enjoyed in 2024


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


    | htmhell.dev
  71. Introducing Subatomic: The Complete Guide To Design Tokens


    | bradfrost.com
  72. Mon collègue Julius


    | ploum.net
  73. htmx quirks


    | htmx.org
  74. The devil is in the <details>


    | htmhell.dev
  75. How to Build an Electrically Heated Table?


    | solar.lowtechmagazine.com
  76. Function types and single-method interfaces in Go


    | rednafi.com
  77. PSA: Stop using the title attribute as tooltip!


    | htmhell.dev
  78. Bureaulogy


    | grantslatton.com
  79. Grouping form fields


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


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


    | htmhell.dev
  82. Getting Oriented with HTML Video


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


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


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


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


    | ploum.net
  87. Microdata for books


    | htmhell.dev
  88. TAG Bulletin: Q4 2024


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


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


    | kerkour.com
  91. htmx lore


    | htmx.org
  92. SSH saga


    | rednafi.com
  93. Snapshot Isolation vs Serializability


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


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


    | htmhell.dev
  96. UV tricks


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


    | blog.codingconfessions.com
  98. Weekly Update 430


    | troyhunt.com
  99. The Gift You Do NOT Want: A Div in a Button's Clothing


    | htmhell.dev
  100. Mandlebrot set


    | petemillspaugh.com
  101. Crash recovery in 256 bytes


    | cliffle.com
  102. Page by Page: How Pagination Makes the Web Accessible


    | htmhell.dev
  103. dot com et al


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


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


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


    | martinfowler.com
  107. Raw strings in Rust


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


    | htmhell.dev
  109. Stroustrup's Rule


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


    | digest.browsertech.com
  111. Isomorphic Web Components


    | jakelazaroff.com
  112. Makeshift hot reload


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


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


    | htmhell.dev
  115. New experimental Debian package for Cosign (Sigstore)


    | sethmlarson.dev
  116. La colère de l’écrivain


    | ploum.net
  117. Native HTML light and dark color scheme switching


    | htmhell.dev
  118. Weekly Update 429


    | troyhunt.com
  119. Past HTML, Future HTML?


    | htmhell.dev
  120. Prefer If Statements To Polymorphism...


    | htmx.org
  121. Almost, but not quite, entirely unlike...


    | htmhell.dev
  122. "Pwned", The Book, Is Now Available for Free


    | troyhunt.com
  123. Pérenniser ma numérique éphémérité


    | ploum.net
  124. DSQL Vignette: Wait! Isn't That Impossible?


    | brooker.co.za
  125. aria-labelledby = self


    | htmhell.dev
  126. frood, an Alpine initramfs NAS


    | words.filippo.io
  127. React v19 – React


    | bradfrost.com
  128. My Sketch – OpenProcessing


    | bradfrost.com
  129. Check if a point is in a cylinder - geometry and code


    | lukeplant.me.uk
  130. DSQL Vignette: Transactions and Durability


    | brooker.co.za
  131. Forced Colors Mode Futility


    | htmhell.dev
  132. Generalizing the design of data products


    | martinfowler.com
  133. Welcoming the Armenian Government to Have I Been Pwned


    | troyhunt.com
  134. DSQL Vignette: Reads and Compute


    | brooker.co.za
  135. Control the Viewport Resize Behavior on mobile with `interactive-widget`


    | htmhell.dev
  136. Designing data products: Working backwards from use cases


    | martinfowler.com
  137. New era of slop security reports for open source


    | sethmlarson.dev
  138. DSQL Vignette: Aurora DSQL, and A Personal Story


    | brooker.co.za
  139. Smooth Multi-Page Experiences with Just a Few Lines of CSS


    | htmhell.dev
  140. Come to Pittsburgh Plays The Cure!


    | bradfrost.com
  141. La conjuration de la fierté ignorante


    | ploum.net
  142. Injecting Pytest fixtures without cluttering test signatures


    | rednafi.com
  143. Starting off right: Where autofocus shines


    | htmhell.dev
  144. Live Session: Live Coding a Bytecode Interpreter for Python


    | blog.codingconfessions.com
  145. Weekly Update 428


    | troyhunt.com
  146. Countdown to the holidays with daily coding challenges


    | developer.mozilla.org
  147. A link on a logo in the header, what should the alt-text be?


    | htmhell.dev
  148. kirby vs. this blog post


    | bradfrost.com
  149. I wrote a course, but it’s so much more than that


    | andy-bell.co.uk
  150. 1 million page views


    | notes.eatonphil.com
  151. Ella’s First Website


    | bradfrost.com
  152. Comparing AWS S3 with Cloudflare R2: Price, Performance and User Experience


    | kerkour.com
  153. Offrez des évasions livresques !


    | ploum.net
  154. My ADHD diagnosis process


    | bradfrost.com
  155. Disillusioning the Magic of the fork System Call


    | blog.codingconfessions.com
  156. How to solve your Cross-Origin Resource Sharing (CORS) errors by building a proxy with Cloudflare Pages and Cloudflare workers


    | kerkour.com
  157. #34 a button is not a link


    | htmhell.dev
  158. Samuel Colvin on LogFire, mixing Python with Rust & being pydantic about types


    | bitecode.dev
  159. Weekly Update 427


    | troyhunt.com
  160. How to avoid the thundering herd problem in Go with the singleflight package


    | kerkour.com
  161. Revisiting Hubris appconfigs


    | cliffle.com
  162. How do I pay the publisher of a web page?


    | sethmlarson.dev
  163. Codin' Dirty


    | htmx.org
  164. How to deploy a Docker image to Scaleway serverless containers from a CI/CD pipeline (e.g. GitHub actions) using the API


    | kerkour.com
  165. Visualizing the Python package SBOM data flow


    | sethmlarson.dev
  166. Drinking from the Bluesky Firehose


    | jakelazaroff.com
  167. Closer to the Edge: Hyperscaling Have I Been Pwned with Cloudflare Workers and Caching


    | troyhunt.com
  168. Hyperproperties


    | buttondown.com
  169. Exploring Gen AI: Copilot's new multi-file editing


    | martinfowler.com
  170. Mach 1 with Python!


    | bitecode.dev
  171. An Unreachable Hidden XKCD Easter Egg inside CPython


    | blog.codingconfessions.com
  172. Local Optimizations Don't Lead to Global Optimums


    | ferd.ca
  173. Local Optimizations Don't Lead to Global Optimums


    | ferd.ca
  174. From Hubris To Bits


    | cliffle.com
  175. Weekly Update 426


    | troyhunt.com
  176. ADHD


    | bradfrost.com
  177. Podcast with Geek Narrator on Object Storage Databases


    | sirupsen.com
  178. Design Systems Q&A


    | bradfrost.com
  179. What if AI eventually makes programmers smarter, not dumber?


    | bitecode.dev
  180. Active and influential NYC infrastructure people


    | notes.eatonphil.com
  181. A peasant's plight


    | grantslatton.com
  182. Ten Years of AWS Lambda


    | brooker.co.za
  183. Posting on Bluesky, and other thoughts on social media


    | martinfowler.com
  184. Inside the DemandScience by Pure Incubation Data Breach


    | troyhunt.com
  185. An app can be a home-cooked meal


    | bradfrost.com
  186. Hyperconnexion, addiction et obéissance


    | ploum.net
  187. Web Components Work Great with htmx


    | htmx.org
  188. Five Unusual Raku Features


    | buttondown.com
  189. folder gotchas


    | wizardzines.com
  190. line editing


    | wizardzines.com
  191. Museum of Modern Fart


    | bradfrost.com
  192. In this house…


    | bradfrost.com
  193. lowercase


    | petemillspaugh.com
  194. Monitoring and optimizing website performance


    | developer.mozilla.org
  195. Every Man his own API


    | grantslatton.com
  196. The Pythonic Emptiness


    | blog.codingconfessions.com
  197. Weekly Update 425


    | troyhunt.com
  198. Tim Brown: Flexible Typesetting is now yours, for free


    | bradfrost.com
  199. Goodbye, Twitter.


    | bradfrost.com
  200. Rencontres littéraires à Paris, à Louvain-la-Neuve et un bout de contribution aux communs


    | ploum.net
  201. Next.js to htmx — A Real World Example


    | htmx.org
  202. Leader election with PostgreSQL's advisory locks


    | kerkour.com
  203. The childlike and the childish


    | joshcollinsworth.com
  204. Explicit method overriding with @typing.override


    | rednafi.com
  205. Exploring Postgres's arena allocator by writing an HTTP server from scratch


    | notes.eatonphil.com
  206. A list of ternary operators


    | buttondown.com
  207. Assessing the results of using the Strangler Fig on a Mobile App


    | martinfowler.com
  208. How to organize errors in large Rust projects


    | kerkour.com
  209. What's a Single-Page App?


    | jakelazaroff.com
  210. A response to "Defending Open Source: Protecting the Future of WordPress"


    | joshcollinsworth.com
  211. Effective unemployment and social media


    | notes.eatonphil.com
  212. Building an intuition for file size and network speed


    | petemillspaugh.com
  213. Quicker startup with module-level __getattr__


    | rednafi.com
  214. How to land your first developer job


    | developer.mozilla.org
  215. Putting custom firmware on the WASD CODE v2


    | cliffle.com
  216. Checking linearizability in Go


    | notes.eatonphil.com
  217. Live Session: Live Coding a Bytecode Interpreter for Python


    | blog.codingconfessions.com
  218. Diving deeper into using the Strangler Fig with Mobile Apps


    | martinfowler.com
  219. How do you provision a Linux VM?


    | paravoce.bearblog.dev
  220. quitting in the terminal


    | wizardzines.com
  221. Using the Strangler Fig with Mobile Apps


    | martinfowler.com
  222. The CAP Theorem of Clustering: Why Every Algorithm Must Sacrifice Something


    | blog.codingconfessions.com
  223. What's up Python? 3.13 is out, t-strings look awesome, dep groups come in handy...


    | bitecode.dev
  224. My Modern CSS Reset


    | jakelazaroff.com
  225. Web Component continued progress


    | bradfrost.com
  226. Mundango


    | bradfrost.com
  227. Culture is a set of social Schelling points


    | grantslatton.com
  228. Python 3.13, what didn't make the headlines


    | bitecode.dev
  229. Ils nous mentent


    | ploum.net
  230. TLA from first principles


    | buttondown.com
  231. Docker mount revisited


    | rednafi.com
  232. How do you deploy in 10 seconds?


    | paravoce.bearblog.dev
  233. Russell Keith-Magee on Beeware, packaging, GUI & money in Python


    | bitecode.dev
  234. Portals are Undertheorized


    | grantslatton.com
  235. Frostapalooza: Reflecting Two Months Later – Ian Frost Weather


    | bradfrost.com
  236. You're overcomplicating production


    | paravoce.bearblog.dev
  237. Speculative Decoding and Beyond: A Survey of Speculative Decoding Techniques


    | blog.codingconfessions.com
  238. I’ve been to 37 US states


    | petemillspaugh.com
  239. How to get the country of your visitors with Cloudflare


    | kerkour.com
  240. Cameron’s World


    | bradfrost.com
  241. Hire HTML and CSS people


    | bradfrost.com
  242. Be Suspicious of Success


    | buttondown.com
  243. Defending against bruteforce, credential stuffing and user enumeration attacks


    | kerkour.com
  244. "I'm so happy"


    | hamvocke.com
  245. Why Rust is taking the data engineering world by storm


    | kerkour.com
  246. Introducing the new MDN Community page


    | developer.mozilla.org
  247. Bikepunk, les chroniques du flash


    | ploum.net
  248. Binary IQ


    | grantslatton.com
  249. virtualenvwrapper 6.1.1


    | doughellmann.com
  250. Yes, you need to duplicate your frontend business logic on the server


    | bitecode.dev
  251. Designing bug-proof engines


    | grantslatton.com
  252. Topological sort


    | rednafi.com
  253. Accidental Urbanism


    | grantslatton.com
  254. Accumulated Test Vectors


    | words.filippo.io
  255. 5 Awesome (but less known) Rust projects


    | kerkour.com
  256. Serious TLDs


    | petemillspaugh.com