journal.stuffwithstuff.com ↓ about me

Everything I Wrote

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