Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
Bark: The Toll-Free BBS for 90s Teens
Topics: Retrocomputing The other day I was thinking about the first communities I found online and, perhaps tangentially, to what degree they influenced the amount of therapy I now require to function normally as an adult. Our family's second computer came from Sam's Club. It was a 386DX with Windows 3.0 but my inner nerd would have nothing to do with cheerful bit-mapped color schemes, preferring instead to exit to MS-DOS and do all necessary computing and gaming from a command prompt and text-based GUIs. Hardware-wise, it looked and felt cheap. The machine was less reliable than the…
19 min · 4,358 words
How pro-China are Chinese models?
Vals AI evaluates how Chinese AI models handle politically sensitive questions, finding a more complicated picture than simple pro-CCP stereotypes suggest.
17 min · 3,880 words
David Rudnick on the borderline impossible process of designing a bespoke Arsenal typeface
Olivia Hingley interviews designer David Rudnick and collaborator Johnnie Campbell about Rocastle, a bespoke Arsenal typeface: the research, constraints of football branding, and why crafting a club-specific type system felt borderline impossible.
19 min · 4,280 words
LittleJS, the small dependency-free HTML5 game engine, gets its biggest update yet: a full 3D renderer that shares the canvas with 2D games, built-in 2D and 3D level editors, ready-made particle effects, a faster core, new tools for making games with AI, and a new demo site, alongside the third LittleJS Game Jam.
3 min · 765 words
Nvidia's first GPU: GeForce 256
Dave Farquhar looks back at the GeForce 256, released October 11, 1999 as the first product Nvidia called a GPU: what arguably made it a GPU (hardware transform and lighting), how it compared to 3dfx and earlier coprocessors, how Sega's investment kept Nvidia alive, and how Nvidia later bought 3dfx's IP.
3 min · 627 words
Ryan Bigg reflects on applying to hundreds of tech roles after years in the industry, the mismatch between experience and current hiring, and deciding to look beyond tech for what’s next.
1 min · 270 words
Deobfuscating Luraph: Lifting Lua to LLVM, Then Letting AI Try
Naci lifts Luraph-protected Lua to LLVM IR, explains why dynamic table operations survive optimization, and tests how far AI-assisted tooling and partial evaluation get at stripping the VM — and where AI just produces plausible-looking output.
17 min · 3,827 words
Compiler bootstrapping depends on more than you might think
Chris Siebenmann on bootstrapping the Go toolchain from C sources, and how OS and environment changes complicate the “start from source” story more than the language docs suggest.
3 min · 627 words
Brooks Lybrand asks whether web frameworks still matter in the age of vibe coding and agents—and whether there is still room to build new ones after React’s win.
19 min · 4,419 words
I posted to HN, and then my website was flooded with AI BOT traffic
Sammy Straus recounts how an HN post for sprinklz.io brought crushing AI-bot and change-monitor traffic, what showed up in NGINX logs, and the robots.txt, blocks, and rate limits that restored the site.
9 min · 2,034 words
Anomaly’s OpenCode 2.0 overhaul: one local background service shared by TUI, web, and desktop; Code Mode for MCP tools; background subagents; hot-reloadable plugins; and an embeddable @opencode/sdk with breaking V1 plugin/API changes.
4 min · 809 words
SlashDocs: the platform behind 28k+ documents at Razorpay, now open source
Razorpay open-sources SlashDocs, the self-hosted MIT-licensed hub where AI agents publish interactive HTML docs and humans review them with anchored comments, versions, CLI, and MCP—powering 28k+ internal documents.
9 min · 2,045 words
Were software engineers blue-collar workers all along?
Peter Bryant argues that much of software engineering has always looked more like skilled trades work than the white-collar myth—and that AI is making that continuity clearer, not inventing a new class of work.
2 min · 531 words
Tobias van Schneider argues that AI-era small teams can finally build specialized software for "unsexy" physical industries long ignored by top engineering talent locked into ads and social products—and that switching costs for legacy enterprise software are starting to fall.
2 min · 448 words
Release notes for Model2Vec 0.10.0: major training-side improvements to the fast static embeddings library, with links to the PyPI release and what changed for practitioners.
4 min · 929 words
Turn a WiFi 7 Router into a 320Msps Software Defined Radio Receiver
A GitHub project that repurposes a WiFi 7 router as a ~320 Msps software-defined radio receiver, documenting the hardware path, sampling approach, and how to get RF samples out of commodity WLAN silicon.
5 min · 1,059 words
How many shots are in the average movie today?
Film-data researcher Stephen Follows counts the shots in 8,770 feature films released between 1930 and 2025 using automatic shot-boundary detection, showing how many shots a typical film has now, how cutting pace has changed over a century, and how it varies by director, genre, runtime, budget and awards.
11 min · 2,614 words
The 1st Time Machines Mogged Mathematicians
Pessimists Archive's Louis Anslow revisits the 1976 computer-assisted proof of the Four Color Theorem by Appel and Haken, the skepticism and outright rejection it drew from mathematicians, how acceptance slowly came, and the parallels with today's debate over AI-generated mathematics.
4 min · 979 words
How we built demo.usenotra.com
Notra founding engineer Jan Burzinski explains how every visitor to demo.usenotra.com gets an isolated workspace in about 0.4 seconds without signing up—using signed cookies, a Postgres sandbox pool, and a fake model—so people can try the product immediately.
8 min · 1,924 words
Nixpkgs for the frontend impaired
Farid Zakaria introduces jinx, a tool that compiles Nix to TypeScript so all of nixpkgs can be evaluated in the browser with exact drvPath parity—aimed at making Nix’s package graph inspectable without installing Nix.
6 min · 1,431 words