Skip to main content

Links from my inbox 2026-01-17

· 11 min read

🌈Recreational Programming

2025-11-27 Crafting Interpreters { craftinginterpreters.com }

image-20251126221213720 Crafting Interpreters contains everything you need to implement a full-featured, efficient scripting language. You’ll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. It’s a blast.

Starting from main(), you build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you thoroughly understand because you write each one yourself.

it is also available for free

image-20251126221418572

2025-11-27 My 2 Year Journey of Learning C, in 9 minutes - YouTube { www.youtube.com }

image-20251126221535812


This is a short video about my journey from not understanding C in the least to being able to make a relatively large codebase.

2025-11-27 PixelRifts/c-codebase: A simple base layer, and utilities for my own C development. { github.com }

A lot of the stuff came from https://www.youtube.com/c/Mr4thProgramming, but I have made a few simplifications/modifications

🔫 C || C++

2025-12-27 floooh/sokol: minimal cross-platform standalone C headers { github.com }

image-20251227140116254

Examples and Related Projects

Core libraries

  • sokol_gfx.h: 3D-API wrapper (GL/GLES3/WebGL2 + Metal + D3D11 + WebGPU)
  • sokol_app.h: app framework wrapper (entry + window + 3D-context + input)
  • sokol_time.h: time measurement
  • sokol_audio.h: minimal buffer-streaming audio playback
  • sokol_fetch.h: asynchronous data streaming from HTTP and local filesystem
  • sokol_args.h: unified cmdline/URL arg parser for web and native apps
  • sokol_log.h: provides a standard logging callback for the other sokol headers

Utility libraries

image-20251227140319774

2025-12-27 Sokol WebGL { floooh.github.io }

image-20251227140404736

2025-12-27 floooh/chips: 8-bit chip and system emulators in standalone C headers { github.com }

A toolbox of 8-bit chip-emulators, helper code and complete embeddable system emulators in dependency-free C headers (a subset of C99 that compiles on gcc, clang and cl.exe).

Tests and example code is in a separate repo: https://github.com/floooh/chips-test

The example emulators, compiled to WebAssembly: https://floooh.github.io/tiny8bit/

For schematics, manuals and research material, see: https://github.com/floooh/emu-info

The USP of the chip emulators is that they communicate with the outside world through a 'pin bit mask': A 'tick' function takes an uint64_t as input where the bits represent the chip's in/out pins, the tick function inspects the pin bits, computes one tick, and returns a (potentially modified) pin bit mask.

A complete emulated computer then more or less just wires those chip emulators together just like on a breadboard.

In reality, most emulators are not quite as 'pure' (as this would affect performance too much or complicate the emulation): some chip emulators have a small number of callback functions and the adress decoding in the system emulators often take shortcuts instead of simulating the actual address decoding chips (with one exception: the lc80 emulator).

image-20251227141009312

2025-12-27 Home | rxi { rxi.github.io }

image-20251226232528824

A Simple UI Animation System A minimal tweening system for immediate mode UIs that tracks only active animations in a fixed array, exposes an update/start/get API, and lets your program store only target values while rendering uses animated values.

A Simple Serialization System A self-describing binary serialization format built from tagged values (including arrays and objects), designed for simple implementation, linear reading, easy inspection, and forward/backward compatibility, with an optional string interning extension.

Textbox Behaviour A reference specification for textbox editing behavior that breaks the problem into caret/selection state plus movements, operations, and commands, covering single-line, multi-line, and mouse-driven selection details.

Level Generation Using Markov Chains A method for generating 2D tilemap levels by training a Markov chain on one-dimensional row strings from example maps, then generating new rows and optionally placing entities by scanning for special tiles.

A Simple Undo System An undo/redo approach where code marks memory blocks before they might change and commits at interaction end to diff and record only changed blocks, implemented with undo, redo, and temporary stacks.

lite: An Implementation Overview An implementation tour of the lite text editor, describing its Lua/C split, frame loop, cooperative coroutine-based background work, document management, incremental syntax highlighting, view-based UI layout, and plugin approach.

microui v2: An Implementation Overview An implementation overview of a tiny immediate mode UI library in ANSI C that turns input into draw commands within fixed buffers, explaining windows and controls, hover rules, z-ordering in one command list, and bounded state storage.

Cached Software Rendering A software rendering technique that lets the app redraw as if every frame is full while the renderer redraws only changed regions using a command buffer plus a per-cell hash grid to detect dirty areas.

2025-11-27 A Very Fast 64–Bit Date Algorithm: 30-40% faster { www.benjoffe.com }

In this article I present my final very fast date conversion algorithm. It represents a significant speed gain — being similar in magnitude to the speed gains achieved by the previous fastest algorithm (Neri-Schneider 2021) over its predecessor (C++ Boost). The full algorithm implementation in C++ is released as free open source software (BSL-1.0 License).

The algorithm provides accurate results over a period of ±1.89 Trillion years, making it suitable to process the full UNIX 64–bit time (in seconds).

The entire algorithm has been re-written top-to-bottom, with various micro-optimisations, but three main new ideas:

  • Years are calculated *backwards*, which removes various intermediate steps.
  • The step to calculate day-of-year is *skipped*, instead using a year-modulus-bitshift technique which removes a division.
  • The *"Julian Map"* technique is utilised from my previous article, which speeds up the 100/400 year calculation, removing two more hardware multiplications.

While fast date algorithms have always used 7 or more expensive computations (multiplication, division, or modulus by non-power-of-2 numbers), this algorithm uses only 4 multiplications. The speed-gain can be seen at a glance. image-20251126202337453

💖 Inspiration!

2026-01-17 Compilation: Ask HN: Share Your Personal Website { blog.zharii.com }

Compilation of Ask HN: Share your personal website | Hacker News { news.ycombinator.com }

image-20260117134446397

2026-01-17 DustinBrett/daedalOS: Desktop environment in the browser { github.com }

image-20260117133808968

2026-01-17 Ganbaru Games | Browser-based games, puzzle and otherwise. { ganbaru.games }

image-20260117124453281

2026-01-17 Generative Storytelling - Exploring Storytelling with AI and LLMs { www.generativestorytelling.ai }

image-20260117124327311

2026-01-17 Making Sense of Lambda Calculus 6: Recurring Problems { aartaka.me }

image-20260117123705689

2026-01-17 Michael Ongaro { www.michaelongaro.com }

image-20260117123419729

2026-01-17 Carpe Diem (Aug 24, 2024) - TinyMCE - daedalOS { dustinbrett.com }

image-20260117002226484

2026-01-17 Nick Smith - Senior Software Engineer { nicksmith.software }

image-20260117002518108

2026-01-17 Window management { nabraj.com }

2026-01-17 projects | nabraj.com { nabraj.com }

image-20260117002836931

2026-01-05 ELIZA { anthay.github.io }

anthay.github.io/eliza.html at main · anthay/anthay.github.io

Joseph Weizenbaum’s 1966 ELIZA recreated in C++

anthay/ELIZA: A Simulation in C++ of Joseph Weizenbaum’s 1966 ELIZA

I’ve made in C++ what I think is an accurate simulation of the original ELIZA. It is a console application that takes as input the original format script file, which looks like a series of S-expressions, and then waits for the user to type a line of text before responding with a line of text of its own.

image-20260105151842153

2025-12-25 junegunn/fzf: 🌸 A command-line fuzzy finder { github.com }

image-20251225000101756

image-20251225000151137

It's an interactive filter program for any kind of list; files, command history, processes, hostnames, bookmarks, git commits, etc. It implements a "fuzzy" matching algorithm, so you can quickly type in patterns with omitted characters and still get the results you want.

2025-12-24 antonmedv/textarea: A notes webapp { github.com }

image-20251224144643967

2025-12-11 Patterns.dev { www.patterns.dev }

image-20251210200041075

image-20251210200103086

2025-12-10 A series of tricks and techniques I learned doing tiny GLSL demos { blog.pkh.me }

image-20251209182400139

2025-12-09 fanfa.dev - Animated, interactive And visuals Mermaid Diagrams { fanfa.dev }

image-20251208220817420

2025-12-02 rothgar/awesome-tuis: List of projects that provide terminal user interfaces { github.com }

image-20251201220908642

2025-12-02 joouha/euporie: Jupyter notebooks in the terminal { github.com }

Euporie is a terminal based interactive computing environment for Jupyter.

Euporie's apps allow you to interact with Jupyter kernels, and run Jupyter notebooks - entirely from the terminal.

If you're working with Jupyter notebooks in a terminal only environment, like an SSH server or a container, or just prefer working in the terminal, then euporie is the tool for you!

image-20251201225515432

2025-11-29 Be Like Clippy { be-clippy.com }

image-20251129155807871

2025-11-27 penpot/penpot: Penpot: The open-source design tool for design and code collaboration { github.com }

Penpot is the first open-source design tool for design and code collaboration. Designers can create stunning designs, interactive prototypes, design systems at scale, while developers enjoy ready-to-use code and make their workflow easy and fast. And all of this with no handoff drama.

Available on browser or self-hosted, Penpot works with open standards like SVG, CSS, HTML and JSON, and it’s free!

image-20251127003847879 image-20251127003940066

We have very precise rules on how our git commit messages must be formatted.

The commit message format is:

[type] [subject]

[body]

[footer]

Where type is:

  • 🐛 :bug: a commit that fixes a bug
  • :sparkles: a commit that adds an improvement
  • 🎉 :tada: a commit with a new feature
  • ♻️ :recycle: a commit that introduces a refactor
  • 💄 :lipstick: a commit with cosmetic changes
  • 🚑 :ambulance: a commit that fixes a critical bug
  • 📚 :books: a commit that improves or adds documentation
  • 🚧 :construction: a WIP commit
  • 💥 :boom: a commit with breaking changes
  • 🔧 :wrench: a commit for config updates
  • :zap: a commit with performance improvements
  • 🐳 :whale: a commit for Docker-related stuff
  • 📎 :paperclip: a commit with other non-relevant changes
  • ⬆️ :arrow_up: a commit with dependency updates
  • ⬇️ :arrow_down: a commit with dependency downgrades
  • 🔥 :fire: a commit that removes files or code
  • 🌐 :globe_with_meridians: a commit that adds or updates translations

More info: