Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
Cretezy explains how to strip ads from Android TV and Google TV devices by replacing the launcher with Projectivy, swapping YouTube for SmartTube, using Wholphin for Jellyfin and remapping the remote with Button Mapper, with step-by-step ADB commands for disabling the stock launcher and cleaning up.
3 min · 764 words
Composite objects and C++26 the std::polymorphic type
Marius Bancila explains C++26's std::polymorphic, the companion to std::indirect for owning polymorphic members in composite classes, covering value semantics, copying, and how it simplifies strategy objects, AST nodes, and similar has-a hierarchies.
8 min · 1,888 words
Shipping a LaTeX compiler behind an edge app
Bhargav explains why a Cloudflare Workers app cannot run a TeX engine and walks through moving PDF compilation to a Cloud Run container running Tectonic, including handling untrusted LaTeX safely, failing closed when a secret is missing, failed deploys, and a single Dockerfile line that turned a three second compile into a sixty second timeout.
18 min · 4,046 words
Making an 88x31 book-button using ImageMagick
Konstanty Sośnierz shows how to turn an entire book, Moby Dick, into an animated 88x31 web button with ImageMagick on a POSIX system: working within the tiny size, picking fonts, fetching and formatting the text, generating the GIF frames, and a Python helper for centred lines. The full result is a 4.2 MB GIF over 19 hours long.
4 min · 919 words
Jim Calabro walks through how bloom filters work, how Bluesky moved from multiple hash functions to double hashing to cut contention, and then explores the one-hash bloom filter from Lu et al., which splits the bit array into partitions with pairwise coprime sizes so a single hash can stand in for k independent ones.
6 min · 1,387 words
Using timers to perform weekly tasks
Marcin Borkowski shows how he runs a weekly Org-mode review with Emacs timers, including sleep-aware scheduling with system-sleep so the review still fires after the machine wakes.
7 min · 1,588 words
ARP! Tell your network to explain itself
Ben Calderon gives a friendly walkthrough of the Address Resolution Protocol: why local networks need both IP and MAC addresses, how arp-scan lists every device with its manufacturer, what an ARP exchange looks like in Wireshark before a ping, and how to inspect the Linux neighbour table.
2 min · 475 words
Parser CombinatorsBetter than regex!
A hands-on TypeScript introduction to parser combinators: starting from a partial parser type, chaining parsers with sequencing and mapping, and building up a hand-rolled combinator library that parses real ping output into structured data, as a cleaner middle ground between regex and tree-sitter.
7 min · 1,661 words
Notes on the complex roots of unity
Eli Bendersky works through the complex roots of unity from first principles: deriving them with polar coordinates, rotations on the unit circle and regular polygons, conjugates, the cyclic group and primitive roots, their sums, and how their powers form an orthogonal basis, the Fourier matrix behind the DFT.
11 min · 2,423 words
Handwired: turn your regular JavaScript code into a neural net
Cheng Lou's Handwired transforms ordinary JavaScript control flow into exact, fully differentiable neural nets that run in the browser without a GPU—including demos like a mini desktop, trainable gallery, and parallel JSON search.
18 min · 4,245 words
An Emulator Writer's HOWTO for Static Binary Translation
Graham Toal's technical HOWTO on static binary translation for emulators: analyzing instruction sets, translating guest code to host code offline, handling self-modifying code and indirect jumps, with pointers to the Orion SBT project and Michael Steil's abstract.
36 min · 8,376 words
Chema Guerra walks through his implementation of procedural tree growth based on Palubicki et al.'s self-organizing tree models: buds competing for light season by season, resource distribution down and up the tree, branch shedding, and how the grown trees are turned into renderable foliage, LODs and baked impostors for forests.
4 min · 946 words
Simple Sudoku Solvers SIII, EII: Assembly
The latest entry in Veit Heller's Simple Sudoku Solvers series writes a backtracking Sudoku solver in AArch64 assembly for macOS, walking through registers, memory layout, system calls and the board-checking loops with no type system to help.
13 min · 3,021 words
Demystifying Spherical Harmonics: An Optimization Approach
Andrew Helmer teaches spherical harmonics for computer graphics by starting from a familiar engineering problem, approximating a spherical lighting function, and solving it with plain least-squares regression in Python. The result turns out equivalent to L1 and L2 SH, and it exposes the bias and ringing pitfalls of naive SH use.
28 min · 6,522 wordsagent-assisted
Welcome Muse Spark Open: open-weight frontier multimodal mixture-of-experts model from Meta
Hugging Face's guide to Meta's Muse Spark Open, an 816B-parameter (42B active) open-weight multimodal mixture-of-experts model with a 1M-token context: architecture, perception and audio encoders, and how to run it with Transformers, llama.cpp, SGLang, vLLM and MLX, deploy it, fine-tune it with TRL, plus demos.
19 min · 4,307 words
You could have invented transformers from memory
Alex Wang builds intuition for linear maps, MLPs and self-attention as different kinds of memory stores, using the interference-to-signal ratio to estimate each one's capacity. With 64-dimensional keys, capacity grows from about 64 memories for a linear layer to about 2,700 for an MLP and over a million for self-attention.
21 min · 4,738 words
Abner Coimbre describes how he writes modern C in late 2026 after C23: naming, headers, types, error handling, and the conventions he kept from older 'How I Write C' guidance while adopting new language features.
4 min · 939 words
JPEG XL vs AVIF for web use-cases
Jake Archibald compares JPEG XL and AVIF for web delivery after JPEG XL landed in major browsers: compression efficiency, decode/encode cost, progressive rendering, animation, HDR, and when each format wins for typical site images.
47 min · 10,731 words
How to be more ambitious: A tutorial for humans with models
Felix Rieseberg, who works on Claude at Anthropic, offers a practical tutorial for being more ambitious with AI models, grouping ambition into speed, altitude, depth and range, with worked examples around a quarterly business review and sample prompts, and closes with research on self-efficacy and why believing hard things are possible helps people achieve them.
9 min · 2,160 words
Types of types: Haskell's Kind system
A practical tour of Haskell’s kind system—values, types, kinds, higher-kinded types and data, and custom kinds—drawn from adding typed configuration to a Redis clone.
15 min · 3,422 words