gnyeki
PL Education in the Age of AI: Interview with Shriram Krishnamurthi
Offgrid Electric Car (2025)
NetBSD and My Life (2005)
Your analytics are lying to you
Agentic test processes, LLM benchmarks, and other notes from Galapagos Island
SQLite should have (Rust-style) editions
Unsolved Problems in MLOps
My Images Are Dithered
One too many words on AT&T's $2k Korn shell and other Usenet topics
Top-Down Microarchitecture Analysis Method
Storing configuration directly in executable, with no external config (2023)
One difference I can imagine is context switching due to system calls. If Nginx incurs a context switch when it calls into the kernel for the disk cache, then it suffers a performance penalty. Neovim avoids this because the file contents are loaded into a table. When requests are served, getting the content is done fully in userspace.
I have no idea if this actually accounts for the performance difference though.
Hiding a message in my PyTorch weights
Borrow Checking, RC, GC, and the Eleven (!) Other Memory Safety Approaches
Linus and Dirk on succession, Rust, and more
Inside STL: The string (2023)
A Modern Compiler for the French Tax Code (2021)
For your first question, using three hidden layers makes it a little clearer what the network does. Each layer performs one step of the calculation. The first layer collects what is known from the current token and what we knew after the calculation for the previous token. The second layer decides whether the current token looks like program code, by checking if it satisfies the decision rule. The third layer compares the decision with what we decided for previous tokens.
I think that this could be compressed into a single hidden layer, too. A ReLU should be good enough at capturing non-linearities so this should work.