journal.stuffwithstuff.com ↓ about me

Everything I Wrote

date title tags
2025 Jul 13 Setting Up an SDL3 Mac App in XCode 16 code game-dev macos
     May 30 Consider Knitting art knitting
     May 26 Access Control Syntax code language vgs
2023 Oct 19 Does Go Have Subtyping? code go language vgs
     Aug 04 Representing Heterogeneous Data code language vgs
     Jan 03 Type Checking If Expressions code language vgs
2022 Feb 13 Stupid Dog personal
2021 Jul 29 640 Pages in 15 Months book design language personal
2020 Apr 05 Crafting “Crafting Interpreters” book design language personal
2018 May 19 40 Songs music personal
2016 Jun 16 Long Names Are Long code dart
2015 Sep 08 The Hardest Program I’ve Ever Written code dart
     Sep 07 What the Hero Sees: Field-of-View for Roguelikes code game roguelike
     Feb 01 What Color is Your Function? code dart go javascript language lua
2014 Dec 21 Rooms and Mazes: A Procedural Dungeon Generator code dart game-dev roguelike
     Nov 20 How My Book Launch Went book design game-dev game-patterns
     Nov 03 Zero to 353 Pages: Bringing My Web Book to Print and E-book book design game-dev game-patterns
     Jul 15 A Turn-Based Game Loop code dart game-dev roguelike
     Jul 05 Dropping Loot code dart game-dev roguelike
     Apr 22 Zero to 95,688: How I wrote Game Programming Patterns book game-dev game-patterns
     Mar 02 Nostalgia Rathole ai music personal
2013 Dec 08 Baby’s First Garbage Collector c code language
     Aug 26 What is “Open Recursion”? code dart language
     Jul 18 JavaScript Isn’t Scheme code js language scheme
     Apr 23 Playing with Generics in TypeScript 0.9.0 code dart language typescript
     Apr 17 Well Done: A Sentinel Value code go language magpie
     Feb 24 Iteration Inside and Out, Part 2 code dart go language lua magpie python ruby
     Jan 13 Iteration Inside and Out code dart language magpie ruby
2012 Dec 19 The Impoliteness of Overriding Methods beta code language oop
     Jun 12 Multimethods, Global Scope, and Monkey-Patching code language magpie
     Jan 24 Higher Order Macros in C++ c code cpp
2011 Oct 29 A Proposal for Null-Safety in Dart code dart language
     Oct 21 Wrapping My Head Around Optional Typing code dart language
     Oct 12 Semicolons are a Shibboleth code dart
     Sep 17 Time for a New Blog blog
     Jun 06 Magpie Wants You! code language magpie oscon
     Apr 21 Multimethods, Multiple Inheritance, Multiawesome! code cpp java js language magpie
     Mar 19 Pratt Parsers: Expression Parsing Made Easy code java js language magpie parsing
     Feb 21 Multiple Inheritance in JavaScript code javascript language
     Feb 13 Extending Syntax from Within a Language code java language magpie parsing
     Jan 16 Pattern Matching in a Dynamic OOP Language c code js language magpie
2010 Dec 31 Rethinking User-Defined Operators code cpp go java language magpie parsing
     Dec 14 The Trouble with Constructors code language magpie
     Nov 26 The Biology of Sloppy Code code
     Nov 08 Refining Exceptions and Error Codes code language magpie
     Oct 29 Bootstrapping a Type System code java language magpie
     Oct 21 The Language I Wish Go Was code go language
     Oct 01 Solving the Expression Problem code java language magpie
     Sep 28 Ruby Blocks, Python’s “with”, and Magpie’s Test Suite code language magpie python ruby
     Sep 18 Future-Proofing, Uniform Access, and Masquerades c-sharp code java language magpie
     Sep 01 A Type Checking Conundrum! code language magpie
     Aug 31 Type Checking a Dynamic Language code java language magpie python
     Aug 23 “void”, “null”, “Maybe” and “nothing” code java language magpie
     Aug 01 Class in the Front, Proto in the Back code java language magpie
     Jul 24 Killing Primitive Loops and Conditionals code finch language
     Jul 23 What I Learned at the Emerging Languages Camp code language parsing
     Jul 18 Jasic: A Complete Interpreter in One Java File code jasic language parsing
     Jul 13 Fibers: Coroutines in Finch code cpp finch game-dev language
     Jul 07 Meltwater: A Color Theme for XCode code design
     Jul 02 New Syntax for Binding Methods in Finch code
     Jun 25 Methods on the Ether: Or Creating Your Own Control Structures for Fun and Profit code finch language
     Jun 11 Amaranth, an Open Source Roguelike in C# c-sharp code game-dev roguelike
     Feb 17 New Chapter Up: Component code cpp game-dev game-patterns
     Jan 25 New Game Programming Patterns Chapters Up! code cpp game-patterns
2009 Dec 26 Conditional Binding with “let” in Magpie code language magpie
     Oct 12 The Book code cpp game-dev game-patterns
     Jul 02 Closures and the Command Pattern c-sharp code design
     Jun 05 Naming Things in Code code language
     May 15 Loops in Magpie c-sharp code language magpie
     May 13 ML-Style Pattern Matching in C# c-sharp code f-sharp language
     May 05 One and Only One code language magpie
     Apr 26 Stupid Magpie Tricks (Or: Yes, I’m Making a Programming Language Like Everyone Else) code language magpie
     Jan 03 Debunking C# vs C++ Performance c-sharp code cpp optimization
2008 Dec 28 Fixing Ambiguities in Grammars code f-sharp language parsing
     Nov 28 Outsourced Blog Comments blog
     Nov 23 “Constrained Compound” Design Pattern c-sharp code design
     Nov 17 Using an Iterator as a Game Loop c-sharp code game-dev roguelike
     May 12 Visualizing the Democratic Primary politics visualization
     Apr 24 Incremental Development for Games (Is Hard) code game-dev
     Apr 10 A C# Feature Request: Extension Classes c-sharp code
     Apr 08 What’s the Opposite of “Nullable”? c-sharp code
     Mar 05 Checking Flags in C# Enums c-sharp code
     Feb 26 Avoiding Overload Hell in C# c-sharp code
     Feb 09 C# Extension Methods: Not Just for Breakfast c-sharp code