Best of C ProgrammingApril 2026

  1. 1
    Article
    Avatar of hnHacker News·6w

    GitHub - fabienmillet/WiiFin: Jellyfin Client for Wii

    WiiFin is an experimental open-source homebrew Jellyfin client for the Nintendo Wii, written in C++ using GRRLIB and MPlayer CE. It supports authentication, library browsing (movies, TV, music), video/audio playback via server-side transcoding, HTTPS via mbedTLS, Wiimote IR input, and playback progress reporting. Ships as a ready-to-use .dol and installable .wad file. Build requires devkitPro with devkitPPC. Direct-play is not supported and audio is stereo-only.

  2. 2
    Article
    Avatar of lobstersLobsters·7w

    GitHub - LaurieWired/tailslayer: Library for reducing tail latency in RAM reads

    Tailslayer is a C++ library that reduces tail latency in RAM reads caused by DRAM refresh stalls. It works by replicating data across multiple independent DRAM channels with uncorrelated refresh schedules, using undocumented channel scrambling offsets compatible with AMD, Intel, and Graviton processors. When a read request arrives, it issues hedged reads across all replicas and uses whichever responds first. The library exposes a template-based HedgedReader API where users provide a signal function (to determine when to read) and a work function (to process the result). It handles address calculation and core pinning internally, acting as a hedged vector with logical indices.

  3. 3
    Video
    Avatar of youtubeYouTube·7w

    Linus Torvalds Explains Why C Code Is So Easy To Understand #shorts #linux #clanguage #programmer

    Linus Torvalds briefly explains why C code is intuitive for systems programmers: C was designed when compilers had to be simple, so reading C closely maps to understanding the resulting assembly language output. This makes C feel natural for those who think like a computer.

  4. 4
    Video
    Avatar of tsoding_dailyTsoding Daily·4w

    Bindings Generator

    A live coding session building a deterministic bindings generator for Moscow ML (Standard ML) targeting the raylib C library. The author modifies raylib's existing C parser tool to output SML bindings instead of JSON/XML, implementing C-to-SML type mappings, handling FFI constraints like the 5-argument limit, generating both the SML signature file and the corresponding C wrapper file. Key challenges include translating C types to SML equivalents, handling pointers, dealing with ML's 31-bit integer quirk, and using GNU nested functions as a local helper. The session contrasts this deterministic approach against using LLMs for boilerplate generation.