Show HN: NES Contra (1987) port (ASM –> C and then C –> WebAssembly)
A browser-based port of the 1987 NES game Contra converts its assembly code to C and then WebAssembly. It supports solo play and online two-player games. (epoyraz.github.io)
A small change to Linux’s FAT driver, merged for kernel 7.4, substantially speeds up a particular file-allocation operation on FAT32. The issue was how the driver handled requests using FALLOC_FL_KEEP_SIZE, a flag that reserves disk space for a file without increasing its reported size. When such a file needed to grow its allocated space, the existing code repeatedly requested allocation one cluster at a time, creating unnecessary overhead.
Developer Matheus Alves de Almeida changed the allocation path so it can request multiple clusters in a single call instead. Benchmarks he shared show gains across the tested workloads, reaching a maximum improvement of 265 times over the previous behavior. The result comes from only a few lines of code and targets this specific preallocation path; it does not imply that all FAT32 operations or general file access become hundreds of times faster. The patch was included in Linux 7.4 through a non-memory-management pull request sent by Andrew Morton. For systems that use FAT32 and rely on keeping files preallocated without changing their visible size, the kernel update can make that operation dramatically more efficient.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.
A browser-based port of the 1987 NES game Contra converts its assembly code to C and then WebAssembly. It supports solo play and online two-player games. (epoyraz.github.io)
PostgreSQL’s TOAST storage made the table much smaller, and counting or scanning rows was faster than with the larger uncompressed table. But reading a field inside every toasted value required far more buffer reads, showing that TOAST can trade space savings for slower access to large values. (pgedge.com)
Large GROUP BY hash tables cause frequent slow RAM accesses, leaving CPUs stalled even when monitoring shows 100% usage. Processing data in smaller chunks can improve cache use and speed up aggregation, even if it requires more CPU work. (pivotlake.io)
Enlightenment 0.28 adds initial NetBSD support, a NetworkManager module, and native PipeWire mixer support while retaining PulseAudio compatibility. The release also improves window management, display handling, and X11 and Wayland support, alongside numerous fixes and code cleanups. (phoronix.com)
Nonna is a TypeScript dependency-injection framework and ahead-of-time compiler that avoids reflection and runtime dependencies. It supports Node.js, Deno, Bun, edge runtimes, and major frontend frameworks, with request scoping and deterministic lifecycle hooks. (nonna.nodeboot.io)
Jepsen found 96 bugs in ParticleDB versions 1.1.4 through 1.1.18.11.rc-22, including crashes, data loss, and serious transaction anomalies. Most issues were fixed, but committed writes could still disappear and serializable transactions still had anomalies; Orkes says a later release resolves the remaining problems. (jepsen.io)
Today's best Hacker News stories, summarized and screenshotted, one email a day.