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)
Jepsen tested ParticleDB, a database intended to combine SQL, key-value storage, vector search, analytics, and programmable functions for AI and workflow applications. The review examined versions 1.1.4 through 1.1.18.11.rc-22 on single nodes, since the supplied builds did not support the product’s replicated mode. ParticleDB advertised “Full ACID,” but its documentation gave conflicting descriptions of transaction isolation and durability, and different interfaces disagreed about which settings were defaults or what they guaranteed. Jepsen tested transaction modes and WAL sync options using concurrent reads and writes, appends, crash and disk-failure simulations, and generated SQL comparisons against PostgreSQL.
Testing uncovered 96 issues, including crashes, deadlocks, lost data, inconsistent results within a transaction, malformed or reappearing tables, and values or columns changing unexpectedly. Many defects required no failures or complex setup - just one server and client. Most were apparently fixed by version 1.1.18.11.rc-22, but important safety failures remained: the default OCC mode could lose committed writes during ordinary operation, while the strongest serializable setting still exhibited internal anomalies and Lost Update. The findings therefore challenge ParticleDB’s claims of full transactional safety, not just its reliability under crashes. Orkes later released version 1.1.19-rc.13 and said it fixed all remaining issues in the report; the testing was funded by Orkes.
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)
GCC can lower dense switch statements into jump tables, subtracting a constant when case values share an offset. It generally favors jump tables when the value range has no more than about eight entries per case label. (xoranth.net)
Today's best Hacker News stories, summarized and screenshotted, one email a day.