Lepo Keruu
Aggregation of interesting posts
7/2026
Programming Aphorisms
matklad
2026-02-11
HN
6/2026
The cost of a function call
Daniel Lemire
2026-02-08
HN
Fragments of an adolescent web
Vincent Bernat
2026-02-08
HN
Why I joined OpenAI
Brendan Gregg
2026-02-06
HN
CI In a Box
matklad
2026-02-06
HN
Chris Hemsworth Is an L9 at Amazon, and I Have Questions
Last Week in AWS
2026-02-05
HN
Rewriting pycparser with the help of an LLM
Eli Bendersky
2026-02-05
HN
Let's compile Quake like it's 1997!
Fabien Sanglard
2026-02-05
HN
Converting data to hexadecimal outputs quickly
Daniel Lemire
2026-02-02
HN
Landscapes of Giuseppe De Nittis
is this it?
2026-02-02
HN
5/2026
Converting floats to strings quickly
Daniel Lemire
2026-02-01
HN
In Praise of –dry-run
Henrik Warne
2026-01-31
HN
I replaced a $120/year micro-SaaS in 20 minutes with LLM-generated code
The Pragmatic Engineer
2026-01-29
HN
Some notes on starting to use Django
Julia Evans
2026-01-27
HN
make.ts
matklad
2026-01-27
HN
4/2026
Optimizing Python scripts with AI
Daniel Lemire
2026-01-25
HN
Considering Strictly Monotonic Time
matklad
2026-01-23
HN
Vibecoding #2
matklad
2026-01-20
HN
Frankenwine: Multiple personas in a Wine process
null program
2026-01-19
HN
The Only Two Markup Languages
Ginger Bill
2026-01-19
HN
RAID 5 with mixed-capacity disks on Linux
Vincent Bernat
2026-01-19
HN
3/2026
A new way to call C from Java: how fast is it?
Daniel Lemire
2026-01-17
HN
Compiling Scheme to WebAssembly
Eli Bendersky
2026-01-17
HN
Is QSpy still cool? Let's play QuakeWorld!
Fabien Sanglard
2026-01-16
HN
The Magic of the Better Software Conference
Digital Grove
2026-01-15
HN
GCRA vs leaky / token buckets
Tony Finch
2026-01-15
HN
Change is the law, AI is the catalyst
Mathias Lafeldt
2026-01-15
HN
I Hope This Email Finds You Before I Do
Last Week in AWS
2026-01-14
HN
How stagnant is CPU technology?
Daniel Lemire
2026-01-14
HN
HTTP RateLimit headers
Tony Finch
2026-01-14
HN
Building a 1997 Quake PC: Benchmarking GLquake
Fabien Sanglard
2026-01-14
HN
hybrid quota-linear rate limiter
Tony Finch
2026-01-13
HN
Building a 1997 Quake PC: Benchmarking Vquake
Fabien Sanglard
2026-01-13
HN
Bin Laden's Bookshelf
is this it?
2026-01-13
HN
Building a 1997 Quake PC: Benchmarking Quake
Fabien Sanglard
2026-01-12
HN
2/2026
Mitigating the Billion Dollar Mistake
Ginger Bill
2026-01-11
HN
ex Italia
is this it?
2026-01-11
HN
AWS in 2026: The Year of Proving They Still Know How to Operate
Last Week in AWS
2026-01-08
HN
What I Got Wrong About “Hard Work” in My 20s
Daniel Lemire
2026-01-08
HN
Building a 1997 Quake PC!
Fabien Sanglard
2026-01-08
HN
A data model for Git (and other docs updates)
Julia Evans
2026-01-08
HN
The grief when AI writes most of the code
The Pragmatic Engineer
2026-01-07
HN
A bit of glass and freedom is all you need
Daniel Lemire
2026-01-07
HN
Using eBPF to load-balance traffic across UDP sockets with Go
Vincent Bernat
2026-01-05
HN
1/2026
Was it really a Billion Dollar Mistake?
Ginger Bill
2026-01-02
HN
Fast Code, Expensive Confidence: Building Software With LLMs
Dmitry Danilov
2026-01-01
HN
WebAssembly as a Python extension platform
null program
2026-01-01
HN
Technology is culture
Daniel Lemire
2026-01-01
HN
Summary of reading: October - December 2025
Eli Bendersky
2026-01-01
HN
The culture war that we won
Daniel Lemire
2025-12-31
HN
Freestyle linked lists tricks
null program
2025-12-31
HN
By how much does your memory allocator overallocate?
Daniel Lemire
2025-12-30
HN
Memory Safety Is ...
matklad
2025-12-30
HN
Freedom from incompetence
Daniel Lemire
2025-12-29
HN
The Second Great Error Model Convergence
matklad
2025-12-29
HN
52/2025
Don’t be so eager to rewrite your code
Daniel Lemire
2025-12-28
HN
Parsing Advances
matklad
2025-12-28
HN
Parsing IP addresses quickly (portably, without SIMD magic)
Daniel Lemire
2025-12-27
HN
The production bug that made me care about undefined behavior
Philippe Gaultier
2025-12-27
HN
doubly dual shuffles
Tony Finch
2025-12-25
HN
Unix "find" expressions compiled to bytecode
null program
2025-12-23
HN
In Which My Situation is Discussed.
Jason Scott
2025-12-23
HN
Static Allocation For Compilers
matklad
2025-12-23
HN
Newtype Index Pattern In Zig
matklad
2025-12-23
HN
51/2025
Detecting goroutine leaks with DTrace
Philippe Gaultier
2025-12-21
HN
Performance trick : optimistic vs pessimistic checks
Daniel Lemire
2025-12-20
HN
JSON-complete data formats and programming languages
Daniel Lemire
2025-12-20
HN
The Pulse: Cloudflare’s latest outage proves dangers of global configuration changes (again)
The Pragmatic Engineer
2025-12-18
HN
Plugins case study: mdBook preprocessors
Eli Bendersky
2025-12-18
HN
context—Odin's Most Misunderstood Feature
Ginger Bill
2025-12-15
HN
Multiplying the Shuffle Speed in Go with Batched Shuffling
Daniel Lemire
2025-12-15
HN
50/2025
The Pulse: Could a 5-day RTO be around the corner for Big Tech?
The Pragmatic Engineer
2025-12-13
HN
Don't fear Python subprocess or Go codegen
Ben Hoyt
2025-12-13
HN
Closures as Win32 window procedures
null program
2025-12-12
HN
Revisiting "Let's Build a Compiler"
Eli Bendersky
2025-12-10
HN
49/2025
Compressing embedded files in Go
Vincent Bernat
2025-12-07
HN
Why speed matters
Daniel Lemire
2025-12-05
HN
Downdetector and the real cost of no upstream dependencies
The Pragmatic Engineer
2025-12-05
HN
We see something that works, and then we understand it
Daniel Lemire
2025-12-04
HN
Leaving Intel
Brendan Gregg
2025-12-04
HN
Why don’t we get more scientific breakthroughs?
Daniel Lemire
2025-12-03
HN
What HTTP routes does your application provide?
Philippe Gaultier
2025-12-03
HN
Why WinQuake exists and how it works
Fabien Sanglard
2025-12-03
HN
48/2025
How fast can browsers process base64 data?
Daniel Lemire
2025-11-29
HN
Antifragile Programming and Why AI Won’t Steal Your Job
Daniel Lemire
2025-11-29
HN
On "AI Brendans" or "Virtual Brendans"
Brendan Gregg
2025-11-27
HN
AWS Finally Lets You Find Your Idle NAT Gateways
Last Week in AWS
2025-11-27
HN
Quake Engine Indicators
Fabien Sanglard
2025-11-24
HN
47/2025
How good are Chinese CPUs? Benchmarking the Loongson 3A6000
Daniel Lemire
2025-11-23
HN
A startup in Mongolia translated my book
The Pragmatic Engineer
2025-11-21
HN
Intel is listening, don't waste your shot
Brendan Gregg
2025-11-21
HN
A million ways to die from a data race in Go
Philippe Gaultier
2025-11-21
HN
The Pulse: Cloudflare takes down half the internet – but shares a great postmortem
The Pragmatic Engineer
2025-11-20
HN
Desktop Abstraction and OS Design — Video Discussion w/ Sam Smith
Digital Grove
2025-11-20
HN
How quake.exe got its TCP/IP stack
Fabien Sanglard
2025-11-17
HN
46/2025
Third Stage Engineering
Brendan Gregg
2025-11-16
HN
AMD vs. Intel: a Unicode benchmark
Daniel Lemire
2025-11-16
HN
Four years on writing a tech book: pitching to a publisher
The Pragmatic Engineer
2025-11-11
HN
45/2025
Automated Equality Checks in C++ with Reflection (C++26)
Daniel Lemire
2025-11-09
HN
The Pulse: Amazon layoffs – AI or economy to blame?
The Pragmatic Engineer
2025-11-06
HN
Fine-Tuning an AI – Part I
zwischenzugs
2025-11-04
HN
44/2025
op Sydney
is this it?
2025-11-01
HN
As smart as a PhD
Daniel Lemire
2025-10-30
HN
Comparing interviews at 8 large tech companies
The Pragmatic Engineer
2025-10-30
HN
New trend: programming by kicking off parallel AI agents
The Pragmatic Engineer
2025-10-30
HN
43/2025
Flame Graphs in Go
Daniel Lemire
2025-10-26
HN
Thinking Clearly
Daniel Lemire
2025-10-26
HN
Wintering on Lakes Te Anau and Manapouri
is this it?
2025-10-25
HN
how to draw a tetrapod
Tony Finch
2025-10-24
HN
What caused the large AWS outage?
The Pragmatic Engineer
2025-10-23
HN
42/2025
Speeding up C++ functions with a thread_local cache
Daniel Lemire
2025-10-19
HN
Research results are cultural artifacts, not public goods
Daniel Lemire
2025-10-17
HN
Speculations on arenas and non-trivial destructors
null program
2025-10-16
HN
Speed of random number generators in Go
Daniel Lemire
2025-10-15
HN
AWS Deprecates Two Dozen Services (Most of Which You’ve Never Heard Of)
Last Week in AWS
2025-10-14
HN
41/2025
Multi-Core By Default
Digital Grove
2025-10-10
HN
Notes on switching to Helix from vim
Julia Evans
2025-10-10
HN
Aesthetics matter
Daniel Lemire
2025-10-08
HN
40/2025
std::ranges may not deliver the performance that you expect
Daniel Lemire
2025-10-05
HN
Melbourne Photography XIII
is this it?
2025-10-04
HN
Beyond papers: rethinking science in the era of artificial intelligence
Daniel Lemire
2025-10-03
HN
How to reproduce and fix an I/O data race with Go and DTrace
Philippe Gaultier
2025-10-01
HN
More speculations on arenas in C++
null program
2025-09-30
HN
The smallest number that is infinite
Daniel Lemire
2025-09-29
HN
39/2025
See all network traffic in a Go program, even when encrypted and compressed
Philippe Gaultier
2025-09-25
HN
A Very Early History of Algebraic Data Types
Hillel Wayne
2025-09-25
HN
Hierarchical field sort with string interning
null program
2025-09-24
HN
Iterating strings and manually decoding UTF-8
Karl Zylinski
2025-09-23
HN
Akvorado release 2.0
Vincent Bernat
2025-09-22
HN
38/2025
Hard work is a virtue
Daniel Lemire
2025-09-21
HN
Are my SQL files read at build time or run time?
Philippe Gaultier
2025-09-16
HN
37/2025
Back to writing: two years, one book, and a lot in between
Dmitry Danilov
2025-09-14
HN
a few notes on ratelimiting
Tony Finch
2025-09-14
HN
Observe live SQL queries in Go with DTrace
Philippe Gaultier
2025-09-11
HN
first-class merges and cover letters
Tony Finch
2025-09-11
HN
Package Managers are Evil
Ginger Bill
2025-09-08
HN
36/2025
Splitting a long string in lines efficiently
Daniel Lemire
2025-09-07
HN
Multithreaded Radix Sort Implementation Walkthrough
Digital Grove
2025-09-04
HN
Processors are getting wider
Daniel Lemire
2025-09-01
HN
35/2025
strongly typed?
Tony Finch
2025-08-28
HN
Know why you don't like OOP
Karl Zylinski
2025-08-26
HN
Understand the Temporary Allocator; Understand arenas
Karl Zylinski
2025-08-25
HN
34/2025
Debugging C++ with Visual Studio Code under macOS
Daniel Lemire
2025-08-24
HN
An amusing blind spot in Go's static analysis
Philippe Gaultier
2025-08-22
HN
Seven Weeks with the Camera among the Glaciers of Mt Cook
is this it?
2025-08-22
HN
Creative ways to fund open source projects
The Pragmatic Engineer
2025-08-21
HN
AWS in 2025: The Stuff You Think You Know That’s Now Wrong
Last Week in AWS
2025-08-20
HN
33/2025
Predictable memory accesses are much faster
Daniel Lemire
2025-08-15
HN
New trend: extreme hours at AI startups
The Pragmatic Engineer
2025-08-14
HN
32/2025
A subtle bug with Go's errgroup
Philippe Gaultier
2025-08-09
HN
p-fast trie, but smaller
Tony Finch
2025-08-06
HN
p-fast trie: lexically ordered hash map
Tony Finch
2025-08-04
HN
31/2025
When to Hire a Computer Performance Engineering Team (2025) part 1 of 2
Brendan Gregg
2025-08-03
HN
Melbourne Photography XII
is this it?
2025-08-01
HN
If Odin Had Macros
Ginger Bill
2025-07-31
HN
Amazon Promotes Malphas to Senior Vice President of Bad Decisions, Unveils 17th Leadership Principle
Last Week in AWS
2025-07-30
HN
I No Longer Attend Vintage Computer Festivals. (But You Probably Should.)
Jason Scott
2025-07-29
HN
30/2025
Cursor makes developers less effective?
The Pragmatic Engineer
2025-07-24
HN
Amazon Q: Now with Helpful AI-Powered Self-Destruct Capabilities
Last Week in AWS
2025-07-23
HN
Cracking the Code: Realtime Debugger Visualization Architecture – BSC 2025
Digital Grove
2025-07-23
HN
29/2025
Analog Photography Assistant - 1.1.0
is this it?
2025-07-18
HN
28/2025
I’m Writing a New Book!
zwischenzugs
2025-07-12
HN
The AWS Survival Guide for 2025: A Field Manual for the Brave and the Bankrupt
Last Week in AWS
2025-07-09
HN
27/2025
clamp / median / range
Tony Finch
2025-07-02
HN
An optimization and debugging story with Go and DTrace
Philippe Gaultier
2025-07-01
HN
26/2025
Golang and Let's Encrypt: a free software story
Tony Finch
2025-06-26
HN
New zine: The Secret Rules of the Terminal
Julia Evans
2025-06-26
HN
25/2025
AWS Certificate Manager Has Announced Exportable TLS Certificates, and I’m Mostly Okay With It
Last Week in AWS
2025-06-17
HN
24/2025
Lessons From 9 More Years of Tricky Bugs
Henrik Warne
2025-06-15
HN
Pine Smoke
is this it?
2025-06-14
HN
A Day in the Life of Server #47B-2: An AWS Data Center Memoir
Last Week in AWS
2025-06-11
HN
A subtle data race in Go
Philippe Gaultier
2025-06-10
HN
Using `make` to compile C programs (for non-C-programmers)
Julia Evans
2025-06-10
HN
What should your mutexes be named?
Philippe Gaultier
2025-06-09
HN
23/2025
performance of random floats
Tony Finch
2025-06-08
HN
LLMs are cheap
Juho Snellman
2025-06-02
HN
22/2025
moka pot notes
Tony Finch
2025-06-01
HN
Immediate Mode Option Parser: Small, Simple, Elegant
NRK
2025-06-01
HN
Cloud Repatriation is Getting Complicated
Last Week in AWS
2025-05-29
HN
the algebra of dependent types
Tony Finch
2025-05-29
HN
21/2025
3 Years of Extremely Remote Work
Brendan Gregg
2025-05-21
HN
20/2025
Building my childhood dream PC
Fabien Sanglard
2025-05-18
HN
the penultimate conditional syntax
Tony Finch
2025-05-13
HN
Odin: A programming language made for me
Karl Zylinski
2025-05-12
HN
18/2025
testing data structures per element
Tony Finch
2025-05-01
HN
Doom GPU Flame Graphs
Brendan Gregg
2025-04-30
HN
No-engine gamedev using Odin + Raylib
Karl Zylinski
2025-04-28
HN
17/2025
Unstructured Thoughts on the Problems of OSS/FOSS
Ginger Bill
2025-04-22
HN
Detecting if an expression is constant in C
NRK
2025-04-21
HN
15/2025
Handle-based maps: Three implementations
Karl Zylinski
2025-04-10
HN
14/2025
Mistakes and cool things to do with arena allocators
Karl Zylinski
2025-04-04
HN
Generate Odin bindings for C libraries
Karl Zylinski
2025-04-02
HN
Gamer Games for Non-Gamers
Hillel Wayne
2025-04-01
HN
13/2025
syntax highlighting with tree-sitter
Tony Finch
2025-03-30
HN
"Handles are the better pointers": An Odin gamedev follow-up
Karl Zylinski
2025-03-25
HN
12/2025
Build PIE executables in Go: I got nerd-sniped
Philippe Gaultier
2025-03-18
HN
Offline PKI using 3 YubiKeys and an ARM single board computer
Vincent Bernat
2025-03-17
HN
11/2025
Exploring OSCAL Using Neo4J
zwischenzugs
2025-03-15
HN
Bodaciously True and Totally Awesome
Jason Scott
2025-03-14
HN
Tip of the day #6: Use Bpftrace to estimate how much memory an in-memory cache will use
Philippe Gaultier
2025-03-12
HN
A Perplexing Javascript Parsing Puzzle
Hillel Wayne
2025-03-12
HN
10/2025
Standards for ANSI escape codes
Julia Evans
2025-03-07
HN
constantly divisionless random numbers
Tony Finch
2025-03-05
HN
Why fastDoom is fast
Fabien Sanglard
2025-03-04
HN
The Hierarchy of Controls (or how to stop devs from dropping prod)
Hillel Wayne
2025-03-04
HN
9/2025
More Good Programming Quotes, Part 6
Henrik Warne
2025-03-02
HN
8/2025
Making my static blog generator <del>11</del> 33 times faster
Philippe Gaultier
2025-02-19
HN
Tip of the day #5: Install Go tools with a specific version
Philippe Gaultier
2025-02-18
HN
Making my debug build run 100x faster so that it is finally usable
Philippe Gaultier
2025-02-18
HN
7/2025
Addressing CGO pains, one at a time
Philippe Gaultier
2025-02-14
HN
random numbers from pcg32 at 200 Gbit/s
Tony Finch
2025-02-13
HN
How to add a directory to your PATH
Julia Evans
2025-02-13
HN
Tip of the day #4: Type annotations on Rust match patterns
Philippe Gaultier
2025-02-11
HN
6/2025
Programming Conference – Jfokus Stockholm 2025
Henrik Warne
2025-02-08
HN
Some terminal frustrations
Julia Evans
2025-02-05
HN
5/2025
The missing cross-platform OS API for timers
Philippe Gaultier
2025-02-02
HN
4/2025
Advent of Code 2024 & BQN
NRK
2025-01-24
HN
Writing 'Understanding the Odin Programming Language'
Karl Zylinski
2025-01-21
HN
2/2025
What's involved in getting a "modern" terminal setup?
Julia Evans
2025-01-11
HN
52/2024
Demystifying Debuggers, Part 3: Debugger-Kernel Interaction
Digital Grove
2024-12-28
HN
Demystifying Debuggers, Part 2: The Anatomy Of A Running Program
Digital Grove
2024-12-23
HN
51/2024
Demystifying Debuggers, Part 1: A Busy Intersection
Digital Grove
2024-12-16
HN
50/2024
"Rules" that terminal programs follow
Julia Evans
2024-12-12
HN
49/2024
Programmers Are Users (Bad Performance Makes Everyone Less Efficient)
Digital Grove
2024-12-06
HN
48/2024
Why pipes sometimes get "stuck": buffering
Julia Evans
2024-11-29
HN
47/2024
Importing a frontend Javascript library without a build system
Julia Evans
2024-11-18
HN
46/2024
ChibiHash: Small, Fast 64 bit hash function
NRK
2024-11-16
HN
A command line diary user interface using FZF
ane
2024-11-15
HN
45/2024
Way too many ways to wait on a child process with a timeout
Philippe Gaultier
2024-11-10
HN
OpenGL is not Right-Handed
Ginger Bill
2024-11-10
HN
My Simple Knowledge Management and Time Tracking System
Henrik Warne
2024-11-09
HN
New microblog with TILs
Julia Evans
2024-11-09
HN
Perhaps Rust needs "defer"
Philippe Gaultier
2024-11-06
HN
44/2024
Tip of the day #3: Convert a CSV to a markdown or HTML table
Philippe Gaultier
2024-10-31
HN
ASCII control characters in my terminal
Julia Evans
2024-10-31
HN
Lessons learned from a successful Rust rewrite
Philippe Gaultier
2024-10-30
HN
Tip of the day #2: A safer arena allocator
Philippe Gaultier
2024-10-29
HN
Tip of the day #1: Count lines of Rust code, ignoring tests
Philippe Gaultier
2024-10-29
HN
AI Flame Graphs
Brendan Gregg
2024-10-28
HN
43/2024
Using less memory to look up IP addresses in Mess With DNS
Julia Evans
2024-10-27
HN
41/2024
Some notes on upgrading Hugo
Julia Evans
2024-10-07
HN
40/2024
Terminal colours are tricky
Julia Evans
2024-10-01
HN
39/2024
Some Go web dev notes
Julia Evans
2024-09-27
HN
38/2024
A small trick for simple Rust/C++ interop
Philippe Gaultier
2024-09-19
HN
37/2024
Reasons I still love the fish shell
Julia Evans
2024-09-12
HN
Hiatus
Hillel Wayne
2024-09-11
HN
Odin and musl: Cross-compiling Odin programs for the Raspberry Pi Zero
Philippe Gaultier
2024-09-10
HN
36/2024
Marketing the Odin Programming Language is Weird
Ginger Bill
2024-09-08
HN
34/2024
Programming With ChatGPT
Henrik Warne
2024-08-25
HN
Migrating Mess With DNS to use PowerDNS
Julia Evans
2024-08-19
HN
The Dying Computer Museum
Jason Scott
2024-08-19
HN
33/2024
Watching sunsets
Fabien Sanglard
2024-08-18
HN
Data-oriented ideas for small gamedev teams
Karl Zylinski
2024-08-15
HN
32/2024
How the SNES Graphics System works
Fabien Sanglard
2024-08-09
HN
SNES: Sprites and backgrounds rendering
Fabien Sanglard
2024-08-09
HN
31/2024
nix-compress: fast LZW decoding via unrolled linked list
NRK
2024-07-31
HN
Carving the Super Nintendo Video System
Fabien Sanglard
2024-07-29
HN
30/2024
strlcpy and how CPUs can defy common sense
NRK
2024-07-24
HN
29/2024
No More Blue Fridays
Brendan Gregg
2024-07-21
HN
Does Crossplane Replace Terraform? Part I: the Theory
zwischenzugs
2024-07-16
HN
Toolbox languages
Hillel Wayne
2024-07-15
HN
28/2024
Codebase Walkthrough: Multi-Window, Panel-Tree UI
Digital Grove
2024-07-08
HN
27/2024
John von Neumann – The Man from the Future
Henrik Warne
2024-07-07
HN
Codebase Walkthrough: Using The Metaprogram
Digital Grove
2024-07-06
HN
In Praise of Low Tech DevEx
zwischenzugs
2024-07-05
HN
26/2024
At 50 Years Old, Is SQL Becoming a Niche Skill?
zwischenzugs
2024-06-27
HN
25/2024
Let's write a video game from scratch like it's 1987
Philippe Gaultier
2024-06-20
HN
OK Cloud, On-Prem is Alright
zwischenzugs
2024-06-18
HN
Why People are Angry over Go 1.23 Iterators
Ginger Bill
2024-06-17
HN
Composing TLA+ Specifications with State Machines
Hillel Wayne
2024-06-17
HN
23/2024
Introduction to the Odin Programming Language
Karl Zylinski
2024-06-07
HN
21/2024
Solodevs and the trap of the game engine
Karl Zylinski
2024-05-23
HN
The Most Interesting Uninteresting Thing
Jason Scott
2024-05-22
HN
20/2024
Enter The Arena: Simplifying Memory Management (Talk)
Digital Grove
2024-05-13
HN
19/2024
Upstream & Downstream
Digital Grove
2024-05-11
HN
18/2024
How to rewrite a C++ codebase successfully
Philippe Gaultier
2024-05-03
HN
Software Friction
Hillel Wayne
2024-05-01
HN
16/2024
A Never-Ending Block Party
Jason Scott
2024-04-21
HN
Inside the Super Nintendo cartridges
Fabien Sanglard
2024-04-21
HN
15/2024
Go performance from version 1.0 to 1.22
Ben Hoyt
2024-04-13
HN
I Continue To No Longer Attend Vintage Computer Festivals
Jason Scott
2024-04-12
HN
I Am No Longer Attending Vintage Computer Festivals
Jason Scott
2024-04-11
HN
Don't let Alloy facts make your specs a fiction
Hillel Wayne
2024-04-10
HN
The evolution of the Super Nintendo motherboard
Fabien Sanglard
2024-04-08
HN
14/2024
String Type Distinctions
Ginger Bill
2024-04-05
HN
The Video That Inspired Me To Create Odin
Ginger Bill
2024-04-04
HN
The Tale of Daniel
Hillel Wayne
2024-04-01
HN
The hearts of the Super Nintendo
Fabien Sanglard
2024-04-01
HN
12/2024
Decoding UTF8 with Parallel Extract
NRK
2024-03-23
HN
11/2024
Multi-Threading & Mutation
Digital Grove
2024-03-12
HN
10/2024
A small trick to improve technical discussions by sharing code
Philippe Gaultier
2024-03-07
HN
9/2024
The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions
Ben Hoyt
2024-03-03
HN
The Hunt for the Missing Data Type
Hillel Wayne
2024-03-02
HN
You've just inherited a legacy C++ codebase, now what?
Philippe Gaultier
2024-02-29
HN
8/2024
Quick and easy PNG image size reduction
Philippe Gaultier
2024-02-23
HN
Planner programming blows my mind
Hillel Wayne
2024-02-20
HN
Make games using Odin and Raylib #3: An animated player
Karl Zylinski
2024-02-20
HN
7/2024
Switching from S3 to Tigris on Fly.io
Ben Hoyt
2024-02-13
HN
6/2024
Finding a New Software Developer Job
Henrik Warne
2024-02-11
HN
Make games using Odin and Raylib #2: A controllable player
Karl Zylinski
2024-02-11
HN
Make games using Odin and Raylib #1: Setup + First Program
Karl Zylinski
2024-02-09
HN
5/2024
Discussing Forth, C, CGI, Python, Go, and AWK on "Stray Pointers"
Ben Hoyt
2024-02-04
HN
In Realtime: Digital Heaven (And a Call for Donations)
Jason Scott
2024-02-02
HN
4/2024
Why I Hate Language Benchmarks
Ginger Bill
2024-01-22
HN
An RNG that runs in your brain
Hillel Wayne
2024-01-22
HN
3/2024
How the DevTeam conquered the iPhone
Fabien Sanglard
2024-01-21
HN
"Stray Pointers" interview
Ben Hoyt
2024-01-16
HN
2/2024
Tidy First?
Henrik Warne
2024-01-10
HN
1/2024
The World and the Machine
Hillel Wayne
2024-01-04
HN
Advent of Code 2023: What I've learnt
NRK
2024-01-02
HN
Codebase Walkthrough: From-Scratch Data Structures
Digital Grove
2024-01-01
HN
52/2023
Codebase Walkthrough: Strings
Digital Grove
2023-12-31
HN
Why Android developers no longer need Windows USB drivers
Fabien Sanglard
2023-12-30
HN
The Easiest Way To Handle Errors Is To Not Have Them
Digital Grove
2023-12-29
HN
What I Learned Using Private LLMs to Write an Undergraduate History Essay
zwischenzugs
2023-12-27
HN
51/2023
Body of work
Philippe Gaultier
2023-12-19
HN
50/2023
This blog now has an Atom feed, and yours should probably too
Philippe Gaultier
2023-12-15
HN
49/2023
Notes on Every Strangeloop 2023 Talk I Attended
Hillel Wayne
2023-12-05
HN
48/2023
Solving a problem with Gnuplot, the programming language (not the plotting software!)
Philippe Gaultier
2023-12-01
HN
47/2023
Roll your own memory profiling: it's actually not hard
Philippe Gaultier
2023-11-23
HN
How Apple's Pro Display XDR takes Thunderbolt 3 to its limit
Fabien Sanglard
2023-11-23
HN
46/2023
Setenv is not Thread Safe and C Doesn't Want to Fix It
Evan Jones
2023-11-19
HN
45/2023
Using a Markov chain to generate readable nonsense with 20 lines of Python
Ben Hoyt
2023-11-11
HN
The bash book to rule them all
Fabien Sanglard
2023-11-08
HN
0x4 reasons to write and publish
Fabien Sanglard
2023-11-07
HN
A better explanation of the Liskov Substitution Principle
Hillel Wayne
2023-11-07
HN
41/2023
Learn Wayland by writing a GUI from scratch
Philippe Gaultier
2023-10-12
HN
40/2023
Forty years of programming
Fabien Sanglard
2023-10-08
HN
Optimizing an Advent of Code solution in assembly
Philippe Gaultier
2023-10-05
HN
39/2023
How (not) to apply for a software job
Ben Hoyt
2023-09-26
HN
Exploring Command-line space time
Fabien Sanglard
2023-09-26
HN
37/2023
A gentle introduction to static analyzers for C
NRK
2023-09-16
HN
Hash based trees and tries
NRK
2023-09-15
HN
Hot Reload Gameplay Code: What, why, limitations and examples!
Karl Zylinski
2023-09-15
HN
Implementing and simplifying Treap in C
NRK
2023-09-13
HN
36/2023
The AWK book's 60-line version of Make
Ben Hoyt
2023-09-10
HN
What I Have Changed My Mind About in Software Development
Henrik Warne
2023-09-10
HN
35/2023
Random Load Balancing is Unevenly Distributed
Evan Jones
2023-08-29
HN
One song at a time
Mathias Lafeldt
2023-08-28
HN
34/2023
Learn AutoHotKey by stealing my scripts
Hillel Wayne
2023-08-21
HN
33/2023
Using the WordStar diamond in 2023
Ben Hoyt
2023-08-17
HN
The Swedbank Outage shows that Change Controls don't work
High Scalability
2023-08-16
HN
32/2023
Ode to the M1
Fabien Sanglard
2023-08-12
HN
mDNS Primer
Fabien Sanglard
2023-08-11
HN
31/2023
Name before type: why 'age int' is better than 'int age'
Ben Hoyt
2023-08-06
HN
30/2023
The proposal to enhance Go's HTTP router
Ben Hoyt
2023-07-30
HN
Scripting with Go: a 400-line Git client that can create a repo and push itself to GitHub
Ben Hoyt
2023-07-29
HN
Should you set free()-ed pointers to NULL?
NRK
2023-07-28
HN
Commander Keen: Adaptive Tile Scrolling
Fabien Sanglard
2023-07-27
HN
Factorio, Mutation, & Lossiness
Digital Grove
2023-07-26
HN
Web Environment Integrity vs. Private Access Tokens - They're the same thing!
Juho Snellman
2023-07-25
HN
29/2023
Nanosecond timestamp collisions are common
Evan Jones
2023-07-20
HN
The Marketplace Of Ideals
Digital Grove
2023-07-19
HN
10NES
Fabien Sanglard
2023-07-18
HN
28/2023
Lessons Learned Running Presto at Meta Scale
High Scalability
2023-07-16
HN
Gossip Protocol Explained
High Scalability
2023-07-16
HN
How much does the read/write buffer size matter for socket throughput?
Evan Jones
2023-07-16
HN
Codebase Walkthrough: Memory Management
Digital Grove
2023-07-16
HN
Learn jq the Hard Way,Part IV: Pipes
zwischenzugs
2023-07-13
HN
27/2023
Open sourcing Listkeeper: Looking back at my suspended Twitter app
Mathias Lafeldt
2023-07-06
HN
My Problem With the Four-Document Model
Hillel Wayne
2023-07-05
HN
Names should be as short as possible while still being clear
Ben Hoyt
2023-07-03
HN
26/2023
Lookup Tables (Forth Dimensions XIX.3)
Ben Hoyt
2023-07-01
HN
For Python packages, file structure != API
Ben Hoyt
2023-06-30
HN
Learn jq the Hard Way,Part III: Filters
zwischenzugs
2023-06-27
HN
24/2023
Designing Pythonic library APIs
Ben Hoyt
2023-06-18
HN
Good Vibrations
Fabien Sanglard
2023-06-17
HN
23/2023
The C Standard Library Function isspace() Depends on Locale
Evan Jones
2023-06-06
HN
Preparing for the Incoming Computer Shopper Tsunami
Jason Scott
2023-06-05
HN
22/2023
Cycle detection in graphs does not have to be hard: A lesser known, simple way with Kahn's algorithm
Philippe Gaultier
2023-06-03
HN
Learn x86-64 assembly by writing a GUI from scratch
Philippe Gaultier
2023-05-31
HN
21/2023
The Great Aboveground Empire
Jason Scott
2023-05-22
HN
19/2023
My thoughts on microservices and monoliths
Dmitry Danilov
2023-05-13
HN
18/2023
Somehow AutoHotKey is kinda good now
Hillel Wayne
2023-05-03
HN
Driving Compilers
Fabien Sanglard
2023-05-03
HN
17/2023
Disabling Disqus comments
Dmitry Danilov
2023-04-24
HN
16/2023
Breaking the limits of TLA+ model checking
Hillel Wayne
2023-04-17
HN
14/2023
Hitting the road with AppSync JavaScript resolvers
Mathias Lafeldt
2023-04-04
HN
13/2023
Ten weird things you can buy online (and why you would)
Hillel Wayne
2023-04-01
HN
The Joy of Computer History Books
Fabien Sanglard
2023-04-01
HN
12/2023
Using shared_ptr for reloadable config
Dmitry Danilov
2023-03-25
HN
A lock-free single element generic queue
NRK
2023-03-22
HN
11/2023
That Time Indiana Almost Made π 3.2
Hillel Wayne
2023-03-14
HN
A Neovim Task Runner in 30 lines of Lua
Hillel Wayne
2023-03-13
HN
10/2023
An approach to protocol reverse-engineering
Joonas
2023-03-12
HN
Discord, or the Death of Lore
Jason Scott
2023-03-06
HN
9/2023
The Grind a Day
Jason Scott
2023-03-05
HN
All you may need is HTML
Fabien Sanglard
2023-03-02
HN
8/2023
From Go on EC2 to Fly.io: +fun, −$9/mo
Ben Hoyt
2023-02-26
HN
Consistent hashing algorithm
High Scalability
2023-02-22
HN
NP-Complete isn't (always) Hard
Hillel Wayne
2023-02-20
HN
7/2023
Priority and Process
Jason Scott
2023-02-13
HN
6/2023
How I Do It, Buffered By Cries I Am Doing It Wrong
Jason Scott
2023-02-08
HN
5/2023
Archiving in the Time of Streaming
Jason Scott
2023-02-04
HN
4/2023
Infinite Inboxes of Infinity
Jason Scott
2023-01-23
HN
Sources of Complexity: Constraints
Hillel Wayne
2023-01-23
HN
Mjolnir
Fabien Sanglard
2023-01-23
HN
3/2023
Huge Pages are a Good Idea
Evan Jones
2023-01-16
HN
50/2022
What is Cloud Computing? According to ChatGPT.
High Scalability
2022-12-16
HN
A Linux evening...
Fabien Sanglard
2022-12-16
HN
Books update
Fabien Sanglard
2022-12-15
HN
Replicating Database Changes to a Message Queue is Tricky
Evan Jones
2022-12-13
HN
49/2022
Code coverage for your AWK programs
Ben Hoyt
2022-12-10
HN
48/2022
Stuff The Internet Says On Scalability For December 2nd, 2022
High Scalability
2022-12-02
HN
47/2022
I/O is no longer the bottleneck
Ben Hoyt
2022-11-26
HN
The Book Of CP-System, paper version
Fabien Sanglard
2022-11-22
HN
46/2022
Let's Prove Leftpad
Hillel Wayne
2022-11-16
HN
microPledge: our startup that (we wish) competed with Kickstarter
Ben Hoyt
2022-11-14
HN
44/2022
Notes on Every Strangeloop 2022 Talk I Attended
Hillel Wayne
2022-11-02
HN
VS Code with dockerized build environments for C/C++ projects
Dmitry Danilov
2022-11-01
HN
X11: Listening for an event with a timeout the right way
NRK
2022-11-01
HN
43/2022
The Cloud is Not a Railroad - An Argument Against the Vertical Separation of Cloud Providers
High Scalability
2022-10-24
HN
40/2022
Last mile DynamoDB: Deno Deploy edition
Mathias Lafeldt
2022-10-04
HN
38/2022
CCPS: A CPS-1 SDK
Fabien Sanglard
2022-09-25
HN
The Book Of CP-System
Fabien Sanglard
2022-09-25
HN
36/2022
Safety and Liveness Properties
Hillel Wayne
2022-09-06
HN
35/2022
Software Mimicry
Hillel Wayne
2022-08-29
HN
32/2022
Rob Pike's simple C regex matcher in Go
Ben Hoyt
2022-08-12
HN
libz1: Experience in writing my first library
NRK
2022-08-08
HN
31/2022
Tools I use to build my website
Ben Hoyt
2022-08-02
HN
30/2022
Crimes with Python's Pattern Matching
Hillel Wayne
2022-07-31
HN
28/2022
Stuff The Internet Says On Scalability For July 11th, 2022
High Scalability
2022-07-11
HN
Reverse Engineering Alembic
Ginger Bill
2022-07-11
HN
27/2022
isdigit: simple function, multiple implementation
NRK
2022-07-08
HN
26/2022
Announcing: Learn TLA+
Hillel Wayne
2022-07-01
HN
25/2022
Been there, done that
ane
2022-06-21
HN
23/2022
The miserable state of Github's moderation
NRK
2022-06-07
HN
22/2022
I'm not a fan of strlcpy(3)
NRK
2022-06-03
HN
21/2022
Go: Functional options are slow
Evan Jones
2022-05-23
HN
19/2022
QMK w/ Drop CTRL: Nordic layout hack in ANSI layout
Joonas
2022-05-14
HN
Modernizing AWK, a 45-year old language, by adding CSV support
Ben Hoyt
2022-05-09
HN
18/2022
The Beautiful Diablo 2 Resurrected machine
Fabien Sanglard
2022-05-08
HN
C: Stop writing f()
NRK
2022-05-07
HN
USB Cheat Sheet
Fabien Sanglard
2022-05-05
HN
17/2022
Sending git patches with neomutt
NRK
2022-04-29
HN
13/2022
I ❤️ Microscopes
Hillel Wayne
2022-04-01
HN
8/2022
Postgres large sub-string query performance
Evan Jones
2022-02-27
HN
Prig: like AWK, but uses Go for "scripting"
Ben Hoyt
2022-02-27
HN
7/2022
CPS-1: GFX system internals
Fabien Sanglard
2022-02-20
HN
6/2022
Hiatus
Hillel Wayne
2022-02-13
HN
Programming pattern for ensuring a function is called as root
Joonas
2022-02-12
HN
5/2022
Go performance from version 1.2 to 1.18
Ben Hoyt
2022-02-03
HN
Optimizing GoAWK with a bytecode compiler and virtual machine
Ben Hoyt
2022-02-03
HN
Postgres large JSON value query performance
Evan Jones
2022-02-01
HN
3/2022
Fast access to regional AWS endpoints from Cloudflare Workers
Mathias Lafeldt
2022-01-19
HN
2/2022
Street Fighter 2: Sound System Internals
Fabien Sanglard
2022-01-15
HN
51/2021
Street Fighter 2: Spin when you can't
Fabien Sanglard
2021-12-24
HN
Street Fighter 2: Subtile accurate animation
Fabien Sanglard
2021-12-24
HN
Street Fighter 2: The World Warrier
Fabien Sanglard
2021-12-23
HN
Following Street Fighter 2 paper trails
Fabien Sanglard
2021-12-22
HN
Cross-compiling Rust Lambdas on macOS without Docker
Mathias Lafeldt
2021-12-20
HN
50/2021
Multiple Return Values Research
Ginger Bill
2021-12-15
HN
Using Abstract Data Types in TLA+
Hillel Wayne
2021-12-13
HN
48/2021
Making my site open source
NRK
2021-12-02
HN
Memory Allocation Strategies - Part 6
Ginger Bill
2021-12-02
HN
The hidden magic of Incremental Static Regeneration with Next.js
Mathias Lafeldt
2021-12-02
HN
Memory Allocation Strategies - Part 5
Ginger Bill
2021-11-30
HN
Alloy 6: it's about Time
Hillel Wayne
2021-11-29
HN
46/2021
AWKGo, an AWK-to-Go compiler
Ben Hoyt
2021-11-21
HN
Improving the code from the official Go RESTful API tutorial
Ben Hoyt
2021-11-16
HN
43/2021
Dockerized build environments for C/C++ projects
Dmitry Danilov
2021-10-28
HN
40/2021
How to Solve the Sudoku Puzzle with programming
Hillel Wayne
2021-10-10
HN
39/2021
Simple Lists: a tiny to-do list app written the old-school way (server-side Go, no JS)
Ben Hoyt
2021-10-03
HN
38/2021
Structural pattern matching in Python 3.10
Ben Hoyt
2021-09-20
HN
36/2021
Vim: view git commit log without any plugins
NRK
2021-09-07
HN
The Value Propagation Experiment Part 2
Ginger Bill
2021-09-06
HN
31/2021
SAML is insecure by design
Joonas
2021-08-03
HN
30/2021
This website is now hosted on sourcehut
ane
2021-07-28
HN
29/2021
A monorepo misconception - atomic cross-project commits
Juho Snellman
2021-07-21
HN
28/2021
Stable device path for Linux hwmon interfaces
Joonas
2021-07-15
HN
Specification Refinement
Hillel Wayne
2021-07-13
HN
27/2021
The Value Propagation Experiment
Ginger Bill
2021-07-05
HN
26/2021
Ping metrics as graphs
Joonas
2021-07-04
HN
Cross-Branch Testing
Hillel Wayne
2021-06-28
HN
23/2021
Coding pattern: preventing the use of '0 results' as a loading indicator
Joonas
2021-06-09
HN
22/2021
Clever vs Insightful Code
Hillel Wayne
2021-06-06
HN
21/2021
Terminating with panic! in Rust
Dmitry Danilov
2021-05-30
HN
19/2021
Observing my cellphone switch towers
Fabien Sanglard
2021-05-15
HN
18/2021
Configuring core dumps in docker
Dmitry Danilov
2021-05-09
HN
15/2021
Why Specifications Don't Compose
Hillel Wayne
2021-04-18
HN
Mugo, a toy compiler for a subset of Go that can compile itself
Ben Hoyt
2021-04-12
HN
14/2021
Game Engine Black Book: DOOM, Korean Edition
Fabien Sanglard
2021-04-05
HN
12/2021
Why Do Interviewers Ask Linked List Questions?
Hillel Wayne
2021-03-28
HN
How to implement a hash table (in C)
Ben Hoyt
2021-03-26
HN
11/2021
Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust
Ben Hoyt
2021-03-15
HN
10/2021
How to overwrite a file in Rust
Dmitry Danilov
2021-03-14
HN
9/2021
Untyped Types
Ginger Bill
2021-03-07
HN
The small web is beautiful
Ben Hoyt
2021-03-01
HN
8/2021
TLA+ Action Properties
Hillel Wayne
2021-02-25
HN
Docker multi-arch image tooling, buildx
Joonas
2021-02-23
HN
Blog facelift & technical renovation
Joonas
2021-02-22
HN
7/2021
UEFI, PC boot process and UEFI with QEMU
Joonas
2021-02-18
HN
Reverse-engineering MIDI devices, AKAI MPK Mini Mk3
Joonas
2021-02-17
HN
Locating costly AWS S3 buckets
Joonas
2021-02-16
HN
5/2021
Structured Control Flow (Brain Dump)
Ginger Bill
2021-02-02
HN
The Essence of Programming
Ginger Bill
2021-02-01
HN
4/2021
Coming in Go 1.16: ReadDir and DirEntry
Ben Hoyt
2021-01-28
HN
3/2021
What engineering can teach (and learn from) us
Hillel Wayne
2021-01-22
HN
We Are Not Special
Hillel Wayne
2021-01-20
HN
Are We Really Engineers?
Hillel Wayne
2021-01-18
HN