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)
Deckdrill converts language-learning Anki cards into audio drills designed for speaking practice. Users can generate cards with an AI provider’s key or import an existing .apkg deck, then choose neural voices from ElevenLabs or Azure, a cloned version of their own voice, or voices built into their device. Drills can be played as long audio tracks and exported as MP3s; the same audio can be added to Anki cards. A Mac and Windows app can save audio using local voices without a speech-service key. API keys stay on the user’s device and are forwarded to the selected provider without being stored; users pay those providers directly.
The Pimsleur-style format gives an English cue, the target sentence, a backward build-up in repeatable chunks, and slow and normal-speed versions. It then prompts recall after intervals - one, four, and ten cards later, plus a final pass. A 30-card drill takes about 16 minutes. The shorter Glossika-style option makes two passes through whole sentences, with pauses and a slow repetition, taking about seven minutes for 30 cards. Deckdrill grounds its approach in research supporting spaced review and active recall, while noting that the precise spacing pattern is less important than an early review and longer delays over time. It favors meaningful sentences over rote sound-pattern practice and supports eight target-language varieties, with English cues.
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.