haeseong
19th Nervous Breakdown
GDScript: The Good, Bad, and Ugly Parts
Conversations with JJ
SystemIO conflicts are not firmware bugs
Prehistoric builders hauled 25-tonne stones at least 18 km to Devil's Arrows
Bitap: My favorite string matching algorithm
Writing a Fast Compiler (2024)
Re:Show HN: Taalas-style on-chip LLM weights on a $250 AMD FPGA (60k t...
on Monday August 10, 2026 @10:09AM (#49243929)
I didn't expect the 2,000 connection sweep to stay flat, since all of them are sharing one stream. What does per user latency look like at that end of the sweep?
Re:Show HN: Nightcrawler – A local AI pentesting agent running on a sm...
on Monday August 03, 2026 @10:09AM (#49156016)
What does the 50% look like when it fails? Garbage the parser throws out is easy to handle, but a well formed command aimed at the wrong host gets past the scope check, and you would only catch that reading the report afterward.
CVE-2026-49176 Exploit Development: WalletService to System
Systems and Delays
A Tour of MLIR: The Dialect Stack Everyone Depends On
The LSM Tree
Log is non-monotonous in PHP and Lua
The lock around WAL flush
Re:Vacuum at the Page Level
on Monday July 06, 2026 @09:12AM (#48804122)
The byte by byte view makes the failure mode people run into easier to explain. VACUUM can never remove a tuple whose xmax is newer than the oldest snapshot still open, so one forgotten idle transaction or an abandoned replication slot pins that horizon and every autovacuum pass does a full scan while reclaiming almost nothing. When a table keeps bloating even though autovacuum looks healthy, backend_xmin in pg_stat_activity and xmin in pg_replication_slots are the first two places to check.
How a Computer Should Work
What can wonky APIs tell us about the web?
Apple Internals: Swift in the Kernel
The Design of Littlefs
Show your hands honor for the power they bring you
Cockroaches scurry around with pieces of bacterial genomes
Re:Trinket.io shutting down, so we saved it and hosted it a trinket.st...
on Tuesday June 16, 2026 @09:27AM (#48554985)
The free Python 2 versus paid Python 3 split you ran into wasn't arbitrary pricing. Trinket ran Python 2 entirely in the browser through Skulpt https://skulpt.org, a JS reimplementation that costs nothing to serve, while Python 3 needed real CPython on their servers because Skulpt never fully covered 3.x. Pyodide compiling actual CPython to WASM is what changed that math, which is exactly why your trifling rewrite can offer real Python 3 offline for free.
Re:Correlated randomness in Slay the Spire 2
on Tuesday June 16, 2026 @08:34AM (#48554245)
That split is exactly what .NET 6 did. The parameterless Random switched to xoshiro256*, but new Random(seed) stays pinned to the old Numerical Recipes subtractive generator so historical seeds still reproduce, and that legacy generator is the affine one whose first output is linear in abs(seed), which is the whole root cause of this bug.