Multi-part blog post series, organized by topic.

AI Tools

  • Part 1: AI Tools #1: XSkill --- A Memory Layer for Multimodal Agents

    584 words • 3 min read • Abstract

  • Part 2: AI Tools #2: AgentRail Mid-Saga --- Insert, Reorder, Reopen, Recover

    1608 words • 9 min read • Abstract

  • Part 3: AI Tools #3: sw-checklist --- Reining In AI Coding Agents With a Code-Metrics Ratchet

    1695 words • 9 min read • Abstract

  • Part 4: AI Tools #4: Pi --- The Minimal Agent That Stays Out of the Way

    1500 words • 8 min read • Abstract

  • Part 5: AI Tools #5: nono --- Sandboxing Pi Without Breaking the Loop

    1699 words • 9 min read • Abstract

  • Part 6: AI Tools #6: Evaluating Local Models in a Plan-Execute-Review Loop

    1612 words • 9 min read • Abstract

  • Part 7: AI Tools #7: A Coding Agent Small Enough to Understand

    3191 words • 16 min read • Abstract

Array Languages

  • Part 1: Array Languages #1: X_eTaL, an Array Language You Can Read

    3748 words • 19 min read • Abstract

  • Part 2: Array Languages #2: X_eTaL-demos, Programs Worth Watching

    1692 words • 9 min read • Abstract

  • Part 3: Array Languages #3: X_eTaL-libraries, Extending the Vocabulary and the Language

    1848 words • 10 min read • Abstract

  • Part 4: Array Languages #4: X_eTaL-extensions, Extending the Machine

    1770 words • 9 min read • Abstract

  • Part 5: Array Languages #5: X_eTaL-ML, Where the Machine Learning Is

    2094 words • 11 min read • Abstract

  • Part 6: Array Languages #6: X_eTaL-games, Rules That Are Arrays

    2273 words • 12 min read • Abstract

  • Part 7: Array Languages #7: X_eTaL-gpu, Array Programs on GPUs Old and New

    4982 words • 25 min read • Abstract

  • Part 8: Array Languages #8: X_eTaL-fpga, Array Programs as Circuits

    3730 words • 19 min read • Abstract

  • Part 9: Array Languages #9: X_eTaL and Blender, Scenes and Animation from Arrays

    3889 words • 20 min read • Abstract

  • Part 10: Array Languages #10: X_eTaL on Metal and CUDA, Through Mojo

    3043 words • 16 min read • Abstract

  • Part 11: Array Languages #11: Math Equations as X_eTaL Macros

    4344 words • 22 min read • Abstract

  • Part 12: Array Languages #12: ML Pipelines as X_eTaL Macros

    2420 words • 13 min read • Abstract

  • Part 13: Array Languages #13: Integrals and Continuous Convolution in X_eTaL

    2888 words • 15 min read • Abstract

  • Part 14: Array Languages #14: Types, Lints and Errors in X_eTaL

    3817 words • 20 min read • Abstract

  • Part 15: Array Languages #15: A Parsing Library for X_eTaL Macro Writers

    2510 words • 13 min read • Abstract

  • Part 16: Array Languages #16: How X_eTaL Evolved, Decision by Decision

    2988 words • 15 min read • Abstract

  • Part 17: Array Languages #17: What Makes a Practical Language, IMHO

    1950 words • 10 min read • Abstract

Bucket List

  • Part 1: Bucket List #1: Things I've Always Wanted to Build

    1003 words • 6 min read • Abstract

  • Part 2: Bucket List #2: A Landing Page for Software Tools

    1101 words • 6 min read • Abstract

  • Part 3: Bucket List #3: 3D Source Code, Five New Languages, and Visible Compilers

    2876 words • 15 min read • Abstract

  • Part 4: Bucket List #4: Three Operating Systems and an ML Hardware Emulator

    2093 words • 11 min read • Abstract

Deepseek Papers

  • Part 1: Deepseek Papers (1/3): mHC - Training Stability at Any Depth

    765 words • 4 min read • Abstract

  • Part 2: Deepseek Papers (2/3): Engram - Conditional Memory for Transformers

    710 words • 4 min read • Abstract

  • Part 3: Deepseek Papers (3/3): Engram Revisited - From Emulation to Implementation

    1038 words • 6 min read • Abstract

Dogfooding

  • Part 1: Dogfooding #1: YAGNI Until You Do --- A Pascal P-Code Bump Allocator Grows a Free List

    1527 words • 8 min read • Abstract

Down the Rabbit-Hole

  • Part 1: Rabbit-hole #1: Poor Man's Rust-to-Unsupported-ISA Translator

    2797 words • 14 min read • Abstract

  • Part 2: Rabbit-hole #2: FORTH --- FIND and the Cost of a Name

    2227 words • 12 min read • Abstract

  • Part 3: Rabbit-hole #3: FORTH --- Life After Hashing

    1951 words • 10 min read • Abstract

  • Part 4: Rabbit-hole #4: FORTH --- Dictionary Compaction and Specialized Images

    2066 words • 11 min read • Abstract

  • Part 5: Rabbit-hole #5: FORTH --- Retargetable Codegen and the Forward-Reference Problem

    1278 words • 7 min read • Abstract

  • Part 6: Rabbit-hole #6: The Sage Bird --- Y Combinators in an Eager Array Language

    1395 words • 7 min read • Abstract

  • Part 7: Rabbit-hole #7: The Phoenix Combinator, and Why X_eTaL Brackets Its Forks

    1820 words • 10 min read • Abstract

  • Part 8: Rabbit-hole #8: From X_eTaL to the Metal, One Kernel Down Every GPU Toolchain

    2538 words • 13 min read • Abstract

  • Part 9: Rabbit-hole #9: X_eTaL and Mojo on a Qualcomm Adreno 702

    3138 words • 16 min read • Abstract

Embedded

  • Part 1: Embedded #1: BMP280 Driver --- From Prototype to Patent Proof-of-Concept

    1192 words • 6 min read • Abstract

  • Part 2: Embedded #2: COR24-RS --- Learn Assembly in Your Browser

    1943 words • 10 min read • Abstract

  • Part 3: Embedded #3: How Much of Forth Can Be Forth? A Kernel Self-Hosting Spectrum

    6918 words • 35 min read • Abstract

Five ML Concepts

  • Part 1: Five ML Concepts - #1

    416 words • 3 min read • Abstract

  • Part 2: Five ML Concepts - #2

    451 words • 3 min read • Abstract

  • Part 3: Five ML Concepts - #3

    529 words • 3 min read • Abstract

  • Part 4: Five ML Concepts - #4

    458 words • 3 min read • Abstract

  • Part 5: Five ML Concepts - #5

    498 words • 3 min read • Abstract

  • Part 6: Five ML Concepts - #6

    496 words • 3 min read • Abstract

  • Part 7: Five ML Concepts - #7

    474 words • 3 min read • Abstract

  • Part 8: Five ML Concepts - #8

    482 words • 3 min read • Abstract

  • Part 9: Five ML Concepts - #9

    475 words • 3 min read • Abstract

  • Part 10: Five ML Concepts - #10

    504 words • 3 min read • Abstract

  • Part 11: Five ML Concepts - #11

    508 words • 3 min read • Abstract

  • Part 12: Five ML Concepts - #12

    493 words • 3 min read • Abstract

  • Part 13: Five ML Concepts - #13

    453 words • 3 min read • Abstract

  • Part 14: Five ML Concepts - #14

    453 words • 3 min read • Abstract

  • Part 15: Five ML Concepts - #15

    475 words • 3 min read • Abstract

  • Part 16: Five ML Concepts - #16

    473 words • 3 min read • Abstract

  • Part 17: Five ML Concepts - #17

    477 words • 3 min read • Abstract

  • Part 18: Five ML Concepts - #18

    449 words • 3 min read • Abstract

  • Part 19: Five ML Concepts - #19

    456 words • 3 min read • Abstract

  • Part 20: Five ML Concepts - #20

    461 words • 3 min read • Abstract

  • Part 21: Five ML Concepts - #21

    452 words • 3 min read • Abstract

  • Part 22: Five ML Concepts - #22

    477 words • 3 min read • Abstract

  • Part 23: Five ML Concepts - #23

    445 words • 3 min read • Abstract

  • Part 24: Five ML Concepts - #24

    431 words • 3 min read • Abstract

  • Part 25: Five ML Concepts - #25

    411 words • 3 min read • Abstract

  • Part 26: Five ML Concepts - #26

    429 words • 3 min read • Abstract

  • Part 27: Five ML Concepts - #27

    424 words • 3 min read • Abstract

  • Part 28: Five ML Concepts - #28

    448 words • 3 min read • Abstract

  • Part 29: Five ML Concepts - #29

    462 words • 3 min read • Abstract

  • Part 30: Five ML Concepts - #30: The Journey So Far

    3559 words • 18 min read • Abstract

General Technology

  • Part 1: MCP: Teaching Claude to Play (and Trash Talk)

    666 words • 4 min read • Abstract

  • Part 2: JSON et al: A Deep Dive into Data Serialization Formats

    2244 words • 12 min read • Abstract

  • Part 3: Lucy 20%: Upgrading My Home AI Cluster

    905 words • 5 min read • Abstract

  • Part 4: 256 Bytes to 640 Gigabytes: Fifty Years of Memory, in Constant Dollars

    5754 words • 29 min read • Abstract

  • Part 5: Eigencube: Solving a Rubik's Cube with Linear Algebra, in APLSV and X_eTaL

    2040 words • 11 min read • Abstract

  • Part 6: Voxels in an Array Language: A 3D World in Dyalog APL and X_eTaL

    2447 words • 13 min read • Abstract

How AI Learns

  • Part 1: How AI Learns Part 1: The Many Meanings of Learning

    597 words • 3 min read • Abstract

  • Part 2: How AI Learns Part 2: Catastrophic Forgetting vs Context Rot

    646 words • 4 min read • Abstract

  • Part 3: How AI Learns Part 3: Weight-Based Learning

    654 words • 4 min read • Abstract

  • Part 4: How AI Learns Part 4: Memory-Based Learning

    632 words • 4 min read • Abstract

  • Part 5: How AI Learns Part 5: Context Engineering & Recursive Reasoning

    636 words • 4 min read • Abstract

  • Part 6: How AI Learns Part 6: Toward Continuous Learning

    696 words • 4 min read • Abstract

  • Part 7: How AI Learns Part 7: Designing a Continuous Learning Agent

    899 words • 5 min read • Abstract

Machine Learning

  • Part 1: Solving Sparse Rewards with Many Eyes

    1478 words • 8 min read • Abstract

  • Part 2: DyTopo: Dynamic Topology for Multi-Agent AI

    786 words • 4 min read • Abstract

  • Part 3: RLM: Recursive Language Models for Massive Context

    1000 words • 5 min read • Abstract

  • Part 4: Neural-Net-RS: An Educational Neural Network Platform

    1053 words • 6 min read • Abstract

  • Part 5: In-Context Learning Revisited: From Mystery to Engineering

    648 words • 4 min read • Abstract

  • Part 6: Many-Eyes Learning: Intrinsic Rewards and Diversity

    1398 words • 7 min read • Abstract

  • Part 7: Large-Language-Monkeys: Scaling Inference, Not Models

    2009 words • 11 min read • Abstract

  • Part 8: Energy-Based Learning: From Hopfield Networks to JEPA

    1136 words • 6 min read • Abstract

  • Part 9: Machine Learning #9: Teaching an Array Language to Say CNN

    1813 words • 10 min read • Abstract

Machine Learning Frontier

  • Part 1: ML Frontier #01: Neural Collapse

    736 words • 4 min read • Abstract

  • Part 2: ML Frontier #02: In-Context Reinforcement Learning

    823 words • 5 min read • Abstract

  • Part 3: ML Frontier #03: Structure Beats Scale --- Knowledge Graphs and Domain-Specific Superintelligence

    707 words • 4 min read • Abstract

  • Part 4: ML Frontier #04: Is Chain of Thought Real?

    1201 words • 7 min read • Abstract

  • Part 5: ML Frontier #05: Grokking --- Delayed Generalization

    835 words • 5 min read • Abstract

Made Visible

  • Part 1: Made Visible #1: A Microkernel's Storage, Drawn

    1742 words • 9 min read • Abstract

  • Part 2: Made Visible #2: MesaOS, the Conventional One

    572 words • 3 min read • Abstract

  • Part 3: Made Visible #3: MLOS, Where Memory Means Something Else

    407 words • 3 min read • Abstract

  • Part 4: Made Visible #4: Rosetta M, a Stone with Four Faces

    2869 words • 15 min read • Abstract

Multi-Hop Reasoning

  • Part 1: Multi-Hop Reasoning (1/2): Training Wheels for Small LLMs

    697 words • 4 min read • Abstract

  • Part 2: Multi-Hop Reasoning (2/2): The Distribution Trap

    801 words • 5 min read • Abstract

Personal Software

  • Part 1: Cat Finder: Personal Software via Vibe Coding

    919 words • 5 min read • Abstract

  • Part 2: midi-cli-rs: Music Generation for AI Coding Agents

    1043 words • 6 min read • Abstract

  • Part 3: midi-cli-rs: Extending with Custom Mood Packs

    1337 words • 7 min read • Abstract

  • Part 4: music-pipe-rs: Unix Pipelines for MIDI Composition

    1155 words • 6 min read • Abstract

  • Part 5: music-pipe-rs: Web Demo and Multi-Instrument Arrangements

    685 words • 4 min read • Abstract

  • Part 6: rank-wav: Ranking Audio Files by Acoustic Quality

    996 words • 5 min read • Abstract

  • Part 7: pjmai-rs: Navigation History and Fuzzy Completion

    594 words • 3 min read • Abstract

  • Part 8: Personal Software #8: One Ring to Rule Them All --- sw-launcher's Memory Profiles, Heap Budgets, and a Working Scenario A

    4405 words • 23 min read • Abstract

  • Part 9: Personal Software #9: Vibe-Maintenance --- When AI Agents Don't Just Write Code, They Fix Bugs

    2523 words • 13 min read • Abstract

  • Part 10: Personal Software #10: A Sudoku That Teaches You the Strategies

    1186 words • 6 min read • Abstract

  • Part 11: Personal Software #11: A Campus for the Public Work

    1174 words • 6 min read • Abstract

Sharpen the Saw Sundays

  • Part 1: Saw #1: pjmai-rs, Rig, and langchain-rust

    2775 words • 14 min read • Abstract

  • Part 2: Saw #2: reg-rs, avoid-compaction, and agentrail-rs

    1876 words • 10 min read • Abstract

  • Part 3: Saw #3: agentrail-rs --- From Walking Skeleton to Dual Memory

    1357 words • 7 min read • Abstract

  • Part 4: Saw #4: All Together Now --- Emacs Meets the Multi-Agent Orchestra

    1237 words • 7 min read • Abstract

  • Part 5: Saw #5: Sagas, Languages, and Compiler Chains

    1233 words • 7 min read • Abstract

  • Part 6: Saw #6: Agent Coordination, Fuzzing Tests, Vendoring, and Emacs Graphics

    1331 words • 7 min read • Abstract

  • Part 7: Saw #7: Prolog, Many-Agent Isolation, Self-Hosting Assembler, and MLPL

    1899 words • 10 min read • Abstract

  • Part 8: Saw #8: Tuplet, Smalltalk-on-BASIC, proto-forth-wasm, sw-MLPL Split, and I2C on COR24

    2546 words • 13 min read • Abstract

  • Part 9: Saw #9: Espanso, Kate, ShareX, and Pluggable I2C Devices on COR24

    3518 words • 18 min read • Abstract

  • Part 10: Saw #10: sw-MLPL General-Purpose Features, Libraries, Extensions, Graphics, and Networking

    1731 words • 9 min read • Abstract

  • Part 11: Saw #11: Building a Tiny Mixture of Experts Microscope

    2906 words • 15 min read • Abstract

  • Part 12: Saw #12: A Model That Decides, and an Index That Knows

    2711 words • 14 min read • Abstract

  • Part 13: Saw #13: A Second Host in the Cloud, a Word Cloud, and Three Benches to Set Up

    2841 words • 15 min read • Abstract

  • Part 14: Saw #14: Guards, Lints, Macros as a Test Bench, and Blender

    1013 words • 6 min read • Abstract

  • Part 15: Saw #15: agentrail, Correcting the Record

    3129 words • 16 min read • Abstract

Small Models, Big Brains

  • Part 1: Small Models (1/6): 976 Parameters Beat Billions

    708 words • 4 min read • Abstract

  • Part 2: Small Models (2/6): AI in Your Pocket

    770 words • 4 min read • Abstract

  • Part 3: Small Models (3/6): Planner + Doer = Genius

    794 words • 4 min read • Abstract

  • Part 4: Small Models (4/6): This AI Has a Visible Brain

    851 words • 5 min read • Abstract

  • Part 5: Small Models (5/6): Max AI Per Watt

    844 words • 5 min read • Abstract

  • Part 6: Small Models (6/6): Which Small AI Fits YOUR Laptop?

    979 words • 5 min read • Abstract

Throwback Thursday

  • Part 1: TBT #1: My First Program Was a Horse Race

    1131 words • 6 min read • Abstract

  • Part 2: TBT #2: Pipelines on OS/390

    1784 words • 9 min read • Abstract

  • Part 3: TBT #3: Vector Graphics Games

    1638 words • 9 min read • Abstract

  • Part 4: TBT #4: ToonTalk - Teaching Robots to Program

    1074 words • 6 min read • Abstract

  • Part 5: TBT #5: IBM 1130 System Emulator - Experience 1960s Computing

    1236 words • 7 min read • Abstract

  • Part 6: TBT #6: PJMAI-RS - A Shell That Knows Your Projects

    1918 words • 10 min read • Abstract

  • Part 7: TBT #7: reg-rs - Regression Testing from C++ to Java to Rust

    2047 words • 11 min read • Abstract

  • Part 8: TBT #8: wiki-rs --- Six Wikis, One Engine, Thirty Years of History

    1479 words • 8 min read • Abstract

  • Part 9: TBT #9: UNIVAC Startrek, TRS-80 Adventures, and COR24 BASIC

    1467 words • 8 min read • Abstract

  • Part 10: TBT #10: Mass Compile and PL/EDIT --- 1980s Productivity Tools, Reborn on COR24 PL/SW

    2353 words • 12 min read • Abstract

  • Part 11: TBT #11: APL\360 Revisited

    4726 words • 24 min read • Abstract

  • Part 12: TBT #12: The IBM 5100's APLSV --- (B) '75, Birds by Execute, and a Machine That Learns Tic-Tac-Toe

    1548 words • 8 min read • Abstract

  • Part 13: TBT #13: Many Decades of Learning the Next Thing --- Timelines of the Tools

    2942 words • 15 min read • Abstract

Towards Continuous LLM Learning

  • Part 1: Towards Continuous LLM Learning (1): Sleepy Coder - When Fine-Tuning Fails

    1216 words • 7 min read • Abstract

  • Part 2: Towards Continuous LLM Learning (2): Routing Prevents Forgetting

    780 words • 4 min read • Abstract