Why Zig Over C for Systems Programming — Mihalis Tsoukalos

A C programmer compares resource cleanup, bounds checks, errors, and tooling in Zig, alongside the costs of an evolving language.

Published:  · Added:  · 1 min

Reverse Engineering a Coway Air Purifier for Local Control

A Home Assistant project traces an air purifier's cloud setup and replaces it with local provisioning and control.

Published:  · Added:  · 2 min

A PostgreSQL Type Change That Turned Old Bytes Into Code Execution

Mehmet Ince traces a PostgreSQL type-confusion vulnerability from a prepared value and a schema change to a backend exploit.

Published:  · Added:  · 1 min

When Windows Defender Uploads Unreleased Builds — Garrett Stimpson

A developer traces unexpected traffic to Defender sample submissions and shows how to check the logs without mistaking network connections for proof of a file upload.

Published:  · Added:  · 1 min

Why Writing Correct Software Is Hard — Ron Pressler

The limits of program verification, and why targeted checks and empirical study still matter.

Published:  · Added:  · 1 min

A 6809 Stack Trick That Made Tile Drawing Fast — Tom Moertel

A faster tile copier for an 8-bit game borrowed the system stack, then had to survive audio interrupts without corrupting its source data.

Published:  · Added:  · 2 min

A Critique of GPUI

A Rust UI benchmark asks which components rerun after one value changes, and what coarse invalidation costs as an app grows.

Published:  · Added:  · 2 min

What Is malloc Doing, Anyway? — Ben Andrew

A toy allocator shows why malloc keeps freed memory, when pages become resident, and what glibc trades for speed.

Published:  · Added:  · 2 min

Five Memorable Books About Programming — James Hague

James Hague's reading list favors real problems, creative practitioners, and simple code: five older books whose ideas travel beyond their languages.

Published:  · Added:  · 2 min

BentoPDF handles everyday PDF work in your browser

A self-hostable toolkit for merging, editing, converting, and searching PDFs, with extra setup for fully offline use.

Added:  · 1 min

Excelize builds Excel reports directly from Go

A pure-Go spreadsheet library for imports, formatted reports, charts, and streaming large worksheets.

Added:  · 1 min

Running a Law Firm on Free Software — Neil Brown

Five years into running his firm on Free software, Neil Brown keeps the tools that earn their upkeep and retires the services nobody uses.

Published:  · Added:  · 2 min

Inside GitHub's New Git Storage Architecture — Karthik Raman and Brian Celenza

GitHub separates immutable objects from mutable references, shrinking consensus work and moving compaction off the machines serving requests.

Published:  · Added:  · 2 min

Keep the Core Testable When the Platform Changes — Kevin Boone

Kevin Boone's UEFI programming advice: test ordinary logic on Linux, make platform assumptions explicit, and budget for the operating-system services you lose.

Published:  · Added:  · 2 min

Kensaku searches document text and screenshots on your computer

A local file-search app with document extraction, screenshot OCR, optional semantic search, and a read-only agent interface.

Added:  · 2 min

Tabularis puts SQL notebooks and agent access in one workspace

A cross-platform database client with editable results, visual query plans, and optional agent access through saved connections.

Added:  · 2 min

Reverse-Engineering a Gym Pass With Independent Tests — Shayon

An offline probe, plaintext logs and independent cryptographic checks turn a gym app's rotating QR code into a small browser tool.

Published:  · Added:  · 2 min

Keep the Engine, Migrate the Platform — Thomas Bonderup

An audit engine keeps its Scala core while Java takes over APIs and workflows. Migration safety starts with the boundary between them.

Published:  · Added:  · 1 min

Antimony's Shared Model for Code and Canvas — Matthew Keeter

A CAD architecture write-up connects scripted nodes, functional geometry, and draggable handles through one dependency graph.

Added:  · 1 min

Keeping Tantivy's Core Small — James Blackwood-Sewell

Paul Masurel on extension points, shared benchmarks with Lucene, and the review work that keeps a search library maintainable.

Published:  · Added:  · 2 min

The Importance of Communities Around Software — lumi

A free software license signals one set of commitments; project governance and community practices reveal who gets a say.

Published:  · Added:  · 1 min

Software may be getting worse, but it used to be horrible — Jake Voytko

Jake Voytko recalls crashes, lost documents, and fragile installs. Reliability improves when systems absorb the recovery work users once had to do themselves.

Published:  · Added:  · 2 min

Removing Next.js Got My Blog to 100 on Every Lighthouse Category — korindiehacker

Bloffy's creator replaced Next.js with Hono for public blog pages, removing browser JavaScript while keeping Next.js for the management app.

Published:  · Added:  · 2 min

Why I Am a Programmer — Alfie John

Alfie John's route from swapping games to writing demos shows what a good tutorial can do: make something admired feel within reach.

Added:  · 1 min

Small Tools for Better Shell Pipelines — Miguel Rentes

A moreutils tour covers quieter successful jobs, visible failures, safe input buffering, and timestamps for shell debugging.

Published:  · Added:  · 2 min

How Close Can Pure FP Get to C? — Richard Feldman

A Roc compression library approaches libdeflate's speed through careful ownership, bounds-check elimination, and compile-time work.

Published:  · Added:  · 1 min

Twelve Years of Distributed SQLite — Philip O'Toole

rqlite's creator maps three different needs behind distributed SQLite: consensus, disaster recovery, and merging independent writes.

Published:  · Added:  · 2 min

No Source Code? No Problem! — Peter Phillips and George Phillips

Peter and George Phillips on preserving old software with emulation, binary translation, and an honest budget for compatibility.

Published:  · Added:  · 2 min

PHP2Shell: Allocation Failure Needs a Safe Exit — Alexandre Daubois

PHP's allocator could abandon half-built structures that shutdown later traversed. Alexandre Daubois traces the failure and explains why two CVEs need different mitigations.

Published:  · Added:  · 2 min

Formal Notation Makes the Interface Smaller — Edsger W. Dijkstra

Dijkstra argues that precise notation reduces mistakes and communication costs. Making an interface more familiar can create extra work on both sides.

Added:  · 1 min

Triangulating Map Polygons, One Measured Change at a Time

Evgen Bodunov takes a map triangulator from 2.93 seconds to 489 milliseconds by simplifying the job, measuring each change, and preserving fallbacks.

Published:  · Added:  · 2 min

Rust's Compiler Work Is Starting to Compound — Matyáš Racek

Rust compiler contributor Matyáš Racek traces faster builds and new capabilities to years of architectural cleanup, performance triage, and sustained maintenance.

Published:  · Added:  · 2 min

Estimate the options, explain the risks — Sean Goedecke

Sean Goedecke treats a deadline as a constraint for choosing a design, then gives managers several approaches with explicit risks. His focus is unfamiliar work in large codebases.

Published:  · Added:  · 2 min

Netflix gives incident tools a shared language

Netflix connects telemetry, deployments and incident discussions through a validated knowledge graph. Its agents propose evidence-backed hypotheses; engineers still decide what happened.

Published:  · Added:  · 2 min

It's Still OK to Enjoy Programming — Chris Kiehl

A buggy Breakout clone and some difficult weekend experiments make Chris Kiehl's case for programming without an economic justification.

Published:  · Added:  · 1 min

Someone Behind the Software — Karri Saarinen

Karri Saarinen on earned intuition, shared product judgment, and why individually sound features can make the whole product worse.

Published:  · Added:  · 1 min

Parser Combinators — t3.at

Build a text parser from small functions, then read the HN discussion for the failure cases a friendly introduction leaves aside.

Published:  · Added:  · Updated:  · What changed: Added the author’s exception-based failure clarification and how pRepeat stops. · Reviewed comments: 99 · 2 min

The Future of Programming (1982) — Anthony I. Wasserman and Steven Gutz

A 1982 research agenda for better tools, trustworthy reusable components, and prototypes that expose misunderstood requirements before implementation.

Published:  · Added:  · 2 min

More on Anthropic's Scion ripping off Mononoke — Rain

Rain presses for specific credit to Mononoke's design, then accepts Anthropic's added attribution. The discussion separates that correction from disagreement over the engineering achievement.

Published:  · Added:  · 2 min

I Love Software Rendering — James Mackenzie

Sharp texels, palette-based lighting, and a useful reminder that a faster rendering backend can change the work it renders.

Published:  · Added:  · 1 min

Anthropic's Scion is heavily inspired by Mononoke — Rain

Reusing an open-source design is welcome. Crediting its authors should not disappear when an LLM helps build the successor.

Published:  · Added:  · Updated:  · What changed: Verified Anthropic added Mononoke and Bonsai credit, included its author response, and recorded Rain accepting the attribution. · Reviewed comments: 165 · 4 min

Recreational Programming — Christopher Phiri

A case for programming without a business case: follow curiosity, build disposable experiments, and keep production obligations out of the playground.

Added:  · 1 min

A Signed Cookie Is Not a Safe Object — Simon Koeck

A Google DevSite RCE writeup shows how readable session state, credential reuse, and pickle deserialization collapsed a trust boundary.

Added:  · 2 min

Reverse Engineering a Spatial Audio Effect by Measurement — Austin Shijo

A stalled Linux audio project becomes tractable when guessing at algorithms gives way to controlled probes, explicit assumptions, and held-out validation.

Added:  · 2 min

I paid people to try and follow my README — Terence Eden

Around €150 of real-user testing exposed the assumptions a developer couldn't see in his own installation guide.

Added:  · 2 min

Deterministic Simulation Testing in Celld — Yusuke Tanaka

A delayed cleanup deleted a new alarm's wake entry. Celld's simulator found the race, replayed it, and turned it into a regression test.

Added:  · 2 min

WSL Benchmarks: Measure the Workload, Not the Headline — Tony Metzidis

A large memory-bandwidth gain translated into a small compiler speedup: a useful reminder to distinguish microbenchmarks from end-to-end performance.

Added:  · 1 min

OTel-Native by Design — Nityananda Gohain and Dhruv Ahuja

Treat telemetry export as a product capability: OTLP destinations, preserved context, and an explicit trade-off between tenant isolation and operational overhead.

Added:  · 1 min

The Slow Formation of Durable Software — Dan Cohen

Zotero's origin story shows why understanding a workflow together takes longer than writing a prototype — and why that time can make software last.

Published:  · Added:  · 1 min

A Sustainable Web Career, for When All This Blows Over — David Bushell

Invest in accessibility, native CSS, and communication rather than mistaking a fashionable stack for a durable web-development career.

Published:  · Added:  · 1 min