2023: A Year of Zines, Git, and Networking
For Julia Evans, 2023 was a year of deep dives into foundational computer science topics, a shift toward more interactive learning tools, and a continued exploration of what makes Git so difficult for developers. Here’s a look at the key projects and research that came out of Wizard Zines this year.
New Zines and Interactive Playgrounds
The year kicked off with the release of How Integers and Floats Work, a zine created in collaboration with Marie Flanagan. Originally intended to cover general in-memory representation, the project quickly focused solely on the numerical building blocks once the content reached a natural length. The final product includes a well-received explanation of how signed integers are stored and a clear breakdown of floating-point representation.
This focus on memory representation also led to the creation of new interactive tools. Frustrated with the complexity of command-line debuggers for teaching, Evans and Flanagan built Memory Spy, a graphical interface that wraps around lldb. It allows users to input any C program and visually inspect variable states at any point during execution.
A second tool, integer.exposed, was created with permission from Bartosz Ciechanowski as a direct counterpart to his popular float.exposed tool. While straightforward to build by adapting an existing design, the project provided useful insights into the CSS techniques used to create such a clear and detailed visualization.
Building a Networking Stack from Scratch
One of the most ambitious ongoing projects is a full educational series designed to guide readers through implementing a "terrible" but working networking stack—including TCP, TLS, DNS, UDP, and HTTP—in roughly 1,400 lines of Python. The goal is for users to download a webpage using only their own code, a concept Evans likens to Nand to Tetris but for computer networking.
While writing the working, albeit imperfect, implementations was relatively quick, crafting clear and followable tutorials proved to be a slow and challenging process. The first installment, Implement DNS in a Weekend, was released in March and saw strong engagement. Users have since created implementations in a wide array of languages, including Go, C#, Rust, Haskell, and OCaml, with contributions in less systems-oriented languages like JavaScript and PHP still being encouraged. The next planned installment in the series is "Implement IPv4 in a Weekend," which will also include bonus guides for ICMP and UDP.
The Deep Dive into Git
A significant portion of the year was dedicated to researching a second zine focused on how Git works internally. This project was particularly difficult because of prior familiarity with the tool; years of daily use had obscured the initial learning curve. The research involved a series of blog posts to better understand and articulate common pain points:
- In a git repository, where do your files live?
- Some miscellaneous git facts
- Confusing git terminology
- git rebase: what can go wrong?
- How git cherry-pick and revert use 3-way merge
- git branches: intuition & reality
- Mounting git commits as folders with NFS
A surprising realization from this research was that simply teaching Git's internal data model may not be the key to unlocking the tool for many developers. As the investigation progressed, it became clearer that the challenges are often more complex and less about the core data structures than initially assumed.
This research also spawned a couple of experimental prototypes. One prototype, git-commit-folders, is a tool that mounts Git commits as read-only folders using FUSE or NFS, letting users browse code changes as if each commit were a separate directory. Another, git-oops, is an experimental prototype for a potential undo system, exploring why implementing a simple git undo command is not a trivial undertaking. Both prototypes were released in an unfinished state as an exercise in sharing work-in-progress ideas without the pressure of perfection.
Talks, Talks, and Community
Evans delivered a well-received keynote at Strange Loop this year titled "Making Hard Things Easy," exploring the underlying reasons why certain technical concepts are difficult to learn and how to make them more approachable. The presentation was a source of significant pride and the topic has become a central theme of the year's work.
In a shift of online presence, the account was migrated to Mastodon. Despite spending ten years cultivating a following on Twitter, the discussions about computer science on Mastodon have become more interesting, a change that has resulted in more time and attention being directed there. Technical writing has also expanded with blog posts about running a single-person Mastodon server.
Reflections on Pace and Projects
Behind the scenes, the year also brought significant operational support with the hiring of an Operations Manager for Wizard Zines. This new role has streamlined many logistical tasks, including running a Black Friday sale, adding a review system to the website, reorganizing the store for clarity, and improving the consistency of the comics newsletter.
The year concluded with a candid acknowledgment that large projects often take far longer than anticipated. Evans, noting a multi-year networking project and a Git zine that are still in progress, emphasized a growing acceptance that moving slowly is okay. The list of open questions for 2024 includes exploring new documentation formats, making research on the Unix command line, and understanding the social mechanics of running a Mastodon community.



