New
The latest blog posts to take off on Hacker News. 6,220 posts.
Internet Access Providers Aren't Bound by DMCA Unmasking Subpoenas–In Re Cox
The DMCA online safe harbor is a notice-and-takedown scheme. Web hosts aren’t liable for copyright-infringing third-party uploads unless and until the copyright owner submits a proper takedown notice to the host, at which point the web host can remain legally...
Everything I know about good API design
Most of what modern software engineers do involves APIs: public interfaces for communicating with a program, like this one from Twilio. I’ve spent a lot of time…
SQLite (with WAL) doesn't do `fsync` on each commit under default settings
SQLite doesn’t do fsync unless specified.
Making games in Go: 3 months without LLMs vs. 3 days with LLMs
After 15 years as a software engineer, I realized I had never actually built and published a game.
Dynamically patch a Python function's source code at runtime
written by Eric J. Ma on 2025-08-23 | tags: python runtime llm security namespace compilation execution functions toolbot monkeypatching
A German ISP changed their DNS to block my website
One of Germany's biggest ISPs changed how their DNS works, right after I exposed an organization that they’re part of.
Writing with LLM is not a shame
Do we have to disclaim how we use AI ?
A bug saved the company
Fortune favors the buggy?
Turning Claude Code into my best design partner
When I first started using Claude Code, I had a naive approach to working with it. I would describe the task directly in the prompt, press Enter, and cross my fingers. If the agent made mistakes, I would tell it how to fix them. For small tasks, this can be good enough, but as the task grows in complexity, this…
A visual introduction to big O notation
A visual introduction to big O notation.
DeepWiki: Understand Any Codebase
How I use DeepWiki to speed up real coding work
In-Memory Filesystems in Rust
I’ve been working on a CLI tool recently, and one of the things it does is manage files on disk. I have written a lot of file management tests for Bundler, and the two biggest reasons that the Bundler test suite is slow are exec and fstat. Knowing that, I thought I would try to get out ahead of the slow file stat…
Turning a Decommissioned iPhone into a UniFi Protect Camera
Why buy a bespoke camera when you can do something much harder instead?
It is worth it to buy the fast CPU
In the past few years, CPUs have gotten really fast. Shockingly fast! Yet most people are stuck on previous generation mobile chips (whether by choice, or by their companies choice), at a huge detriment to their productivity. Meanwhile, AI coding subscriptions like Cursor are all the rage these days. I'll skip the…
How to make things slower so they go faster
In a service with capacity $\mu$ requests per second and background load $\lambda_0$, the usable headroom is $H = \mu - \lambda_0 > 0$. When $M$ clients align, e.g., after a cache expiry, at a cron boundary, or as a service returns from an outage, the bucketed arrival rate can
Omarchy Is Out
My latest love letter to Linux has been published. It's called Omarchy, and it's an opinionated setup of the Arch Linux distribution and the Hyprland tiling window manager. With everything configured out-of-the-box to give you exactly the same setup that I now run every day. My Platonic ideal of what a developer…
How to build a coding agent
It's not that hard to build a coding agent. 300 lines of code running in a loop with LLM tokens. You just keep throwing tokens at the loop, and then you've got yourself an agent.
Evaluating LLMs for my personal use case
My life is not a math Olympiad
AGI is an engineering problem, not a model training problem
LLM models are plateauing, but true AGI isn't about scaling the next breakthrough model—it's about engineering the right context, memory, and workflow systems. AGI is fundamentally a systems engineering problem, not a model training problem.
The cost of interrupted work (2023)
You’ve likely read lots of blog posts stating that it takes 23 minutes and 15 seconds to get back to work after an interruption, context switch, or meeting. Thus, “do you have five minutes” ends up not only costing those few minutes, but instead about half an hour. But where does that number come from?
Materialized views are obviously useful
As programmers we spend a lot of time shuttling data back and forth between different systems and transforming it from one format to another. Sometimes it gets pretty miserable!
Romhack.ing's Internet Archive Mirror No Longer Available
Classic game mods and resources
What makes Claude Code so damn good
Claude Code is the most delightful AI agent/workflow I have used so far. Not only does it make targeted edits or vibe coding throwaway tools less annoying, ...
Line scan camera image processing for train photography
I use my line scan camera to take cool pictures of trains and other stuff.
RFC 9839 and Bad Unicode
Unicode is good. If you’re designing a data structure or protocol that has text fields, they should contain Unicode characters encoded in UTF-8. There’s another question, though: “ Which Unicode characters?” The answer is “Not all of them, please exclude some.”
Writing Speed-of-Light Flash Attention for 5090 in CUDA C++
In this post, I will walk through how I learned to implement Flash Attention for 5090 in CUDA C++. The main objective is to learn writing attention in CUDA C++, since many features are not available in Triton, such as MXFP8 / NVFP4 MMA for sm120. I also feel this is a natural next step after learning about matmul…
I made a floppy disk from scratch
Polymatt decided he was going to make a 3.5” floppy disk from scratch — and actually did. I’m not sure how many of you have actually cracked one of these things