CHANGELOG
NOTE: If you've already purchased early access, download the latest release here.
Otherwise, buy an early access pass and you'll be able to download it as soon as you complete your purchase.
New releases will ship weekly until the guidebook is complete.
0.5.0 (Early Access) - 2025.04.11
+ Exercises
0x04 : Form vs. function
0x20 : And we'll all float on anyway
0x42 - Round and round and round and round...
+ Field Notes
0xF201 : Type coercion should be done intentionally or not at all
0xF401 : State transitions can cause unintended infinite loops
+ And also...
Relabeled the 0x20
exercise that was added in v0.2.0 to 0x21
.
Expanded field notes 0xF002
, 0xF003
, and 0xF200
with commentary related to the new exercises.
0.4.2 (Early Access) - 2025.03.30
+ Bug Fixes
Fix broken link in footnote on 0x10.
(Same root issue as links fixed in 0.4.1)
0.4.1 (Early Access) - 2025.03.30
+ Bug Fixes
Fix broken links on The bugs you'll be hunting.
(This issue was a form of Resource Error -- the links were generating
paths that work in development via the mdbook
server, but not in the generated HTML files meant to be viewed standalone)
0.4.0 (Early Access) - 2025.03.29
+ Exercises
0x50 : Location, location, location
0x60 : Did you try turning it off and on again?
0.3.0 (Early Access) - 2025.03.23
+ Exercises
0x30 : Simple, Obvious, and Wrong
0x41 : State Secrets
+ Field Notes
0xF200 : Type mismatches are the most common kind of protocol error
0xF400 : Leaked state is often a defect (whether or not it breaks your program)
+ And also...
Renamed the 0x31
exercise from v0.2.0 to 0x32
.
(I'm restructuring things so that the first two problems in each chapter of the book should be warmup problems, followed by four regular difficulty problems, followed by two challenge problems.)
Revised and simplified [0xF100] based on feedback from beta readers.
Added answers for [0x32] and [0x40].
0.2.0 (Early Access) - 2025.03.14
These exercises + field notes are now available for download for those who preordered:
+ Exercises
-
0x20 : A typo causes a TypeError
-
0x52 : Where did I put that file again?
-
0x61 : The mystery of the missing connection
+ Field Notes
-
0xF100 : Any method that conditionally returns either nil or some other value requires you to consider branching at every call site.
-
0xF600 : Debug connection errors by stripping away layers
-
0xFF00 : Don't read code like prose. Trace execution paths instead.
-
0XFF01 : Memorize how Ruby resolves ambiguous expressions.
+ And also...
Happy Pi Day everybody! Catch you next week.
-greg
(PS: If you've been invited to participate in the private beta... expect to see an email from me or a DM in the next couple days. Getting a fresh batch of material set up for you all and can't wait to dig in! )
0.1.0 (Free Preview) - 2025.03.04
Initial preview release! 🎉
Includes the 10 exercises in the free sample.
Syntax | Null | Protocol | Logic | State | Resource | Environment |
---|---|---|---|---|---|---|
0x00 | 0x10 | - | - | 0x40 | - | - |
0x01 | - | - | 0x31 | - | - | |
0x02 | - | 0x22 | - | - | - | - |
0x03 | 0x13 | - | - | - | - | - |
- | 0x14 | - | - | - | - | |
- | - | - | - | - | - | - |
- | - | - | - | - | - | - |
- | - | - | - | - | - | - |