In early 2022, I started reading new translations of ancient Stoic philosophy, beginning with a collection of open letters from Seneca. I found the topic immediately engaging and relevant. I have explored several books about Stoicism from sources ancient and modern since then.

These seem to be the important bits

I’m not sure if I call myself “a Stoic” yet, but I can share a three-point boil-down of the philosophy as I currently understand it.

Recognize the things you can change as separate from the things you cannot. Respond appropriately. Honestly, this is just the serenity prayer. As far as I can tell, its practice sits at the heart of Stoicism. Once you learn to stop seeing it as cross-stitched pabulum, it becomes a surprisingly engaging lens to view the world through.

One first-order effect of this practice involves acceptance of things that fall into cannot-change category, and resisting the animal desire to rail against them, like an angry dog straining at a leash. That sort of behavior accomplishes nothing except self-injury, the ancients admonish. And this is where Stoicism acquires its reputation for coldness in the face of tragedy, or stillness against rousing calls to action. Well, it’s deserved, to a degree! But the full philosophy is much richer than this one facet.

Find what “virtue” means to you, and make its practice your mission. You know, I think I’m shakiest on this point, and have the least to say about it right now. I call it out anyway, because it seems clearly central to the philosophy. Ancient Stoics saw rationality as a godly attribute, a heavenly gift bestowed to every human, leaving it up to each of us how best to use it. Virtue means applying your rationality to improve yourself (which you can always do) or improve the world around you (as tempered by the previous tenet).

I’m still working this one out for myself. I believe in having personal mission statements, or so I wrote some years ago. some time ago. Perhaps it’s time to revisit my own.

As long as you have capacity to practice virtue, keep yourself alive. Yes, you see me acknowledging and trying to stay buoyant around the Stoic preoccupation around mortality—including the conditions for making a voluntary exit. Seneca especially (and, given his fate, somewhat ironically) liked to write about the circumstances of virtuous suicide. But all his examples were about people in the most extreme situations, whose opportunity to demonstrate goodness had clearly run out. (He sings the highest praises for the anonymous prisoner who excused himself before a surely-fatal gladiator fight to visit the loo and promptly choke himself on a toilet-sponge.)

I have turned to this last point several times, over the past year. I think about the fact that I almost certainly have plenty of future opportunity to wring goodness out of myself, even during those times when the present seems very dark. It makes me feel stronger; it helps me get through it.

The ancient Stoics were also very interested in the idea of one’s body as a possession more than an identity, a point that touches on all three of these tenets. Possessions are useful so long as they help with one’s practice of virtue, they wrote. But starting to think of one’s possessions as embodying that practice is a trap—even if it’s literally your body!

I held this in mind when mentally preparing for my first colonoscopy, earlier this year. Around that time, I read a parable by Seneca that seemed immediately relevant: a green recruit fears the camp doctor’s knife more than the enemy’s sword, but a veteran sees the virtue in turning over their body to the doctor’s care when it’s time. I resolved to act like Seneca’s veteran, placidly submitting my carcass to the hospital with all the drama of dropping off a coat at the dry cleaner. And this helped me get through that.

According to whom, exactly

So, here’s my list of what I’ve read so far, in the order I read it.

Addressing the elephant: These books are all by dudes. In the case of the ancient sources, one can mitigate this by choosing recent editions by more diverse translators applying a modern social framing. In my philosophical reading to come, I will continue to aim for a wider spectrum.

  • Fifty Letters of a Roman Stoic, by Seneca. Translated by Margaret Graver and A. A. Long. I love this book, which feels so alive and current. Seneca spends much of his retirement nominally writing to his friend Lucilius but (according to the book’s modern introduction) absolutely intended these as open letters, for the world to read, and for posterity too. I felt personally addressed, time and again. This collection alone led me to all my subsequent reading on the topic.

  • How to be a Stoic, by Massimo Pigliucci, a philosophy professor in New York. I guess I wanted to touch base with the present before diving back into the past, and this one was on the shelf at Barnes & Noble, so I read it. A very light-hearted and breezy introduction to the historical origins of Stoicism and its applications to modern life. Pigliucci sees Epictetus as a personal friend, walking beside him and advising him as he goes about his days. I’m not sure that will ever be my approach to any of this. Still, I found the book a fine entry-level backgrounder.

  • The Stoic Path: The Golden Sayings of Epictetus, translated by Hastings Crossley. Purchased this attractive, pocket-sized 2022 edition because it was the only Epictetus that the B&N had in stock that day. Sadly, the content comes from a 1903 translation, and smells so musty and distant. An interesting counterexample that only strengthened my insistence on new translations. Didn’t get far.

  • Meditations, by Marcus Aurelius, translated by Gregory Hays. Only partially read, as both print and audiobook. I get the impression that this is the single most well-known ancient Stoic work that has survived to our day. But it’s literally just the dude’s personal notes, which he almost certainly never intended for publication. (Meditations was a title assigned to it centuries later; Pigliucci quips that Memoranda would have suited it better.) An interesting artifact, arguably worth studying as an example of a Stoic straining every day to habitualize and re-center his practice of virtue—and how it never stopped challenging him, despite his being one of the most powerful individuals of the western world at the time. I don’t find it a very engaging read, for all that.

  • On the Shortness of Life, by Seneca, translated by C.D.N. Costa. Back to what I knew I liked, after the previous two misses. This 1997 translation isn’t quite as lively as Graver and Long’s 2021 work, but I still found it quite enjoyable and meaningful. The parable of the veteran came from here.

  • Discourses and Selected Writings, by Epictetus, translated by Robert Dobbin. Okay, this is the stuff. Still working my way through the Discourses, a series of lectures by Epictetus, originally captured in writing by his student Arrian. The text feels so alive that I can imagine the ancient teacher pacing around and gesturing, and the places in the text where he changes his voice to take on different characters while acting out dialogues, or pausing for laughter after a little bon mot. It’s good.

This article was also posted to the “books” section of

Share or reply to this post on Twitter, or elsewhere.

A Maine license plate, reading 'SAMPLE'. It is decorated with a background of pine trees, and a chickadee perched on a pine cone.

Four years ago, I wrote of the strange place I found myself with Perl. Among other observations, I lamented the enormous effort required to re-achieve my complete mastery of Perl in any other language—Python or otherwise.

Two years after that—in a move that my 2018 self never saw coming!—I reset everything, hopping career tracks. As a tech writer, mastery of any programming language no longer seems crucial to me, while familiarity with several languages has become a desirable trait. This has opened the door to better understand Johnicholas’s suggestion of “learning to hold languages loosely”.

It’s time. I started learning Python at the start of the month. I’ve used it before, mind you—Barbetween was written in 2014 using a Python-derived scripting dialect—but this marks my first efforts at learning how to write general-purpose programs in this language.

A few week-one observations:

Perl is my hometown, and Python is the big city. I’ll always be from Perl, in the same way that I’m from Maine. I lived with Perl for so long that it has irrevocably shaped me, personally and professionally. For the rest of my life, I will always view every coding task or challenge as a Perl programmer.

I learn Python not to “leave Perl”, but to grow into the new opportunities for connection and learning only available through Python’s ecosystem, where so many of my friends already live and thrive.

In October Amy and I flew to Bangor to check in on my brother, who alone remains there after all the rest of my immediate family has passed on. On an early-morning walk through the beautiful and rugged city forest, we came across two chickadees romping around in the brush by the path, not minding us a bit. “State bird!” I whispered ecstatically, grasping Amy’s arm. “It’s on our license plate,” I continued. You see, in my joy, I had momentarily forgotten that this statement had not been true for me in well over 20 years. In that moment, I was a Mainer once more.

I expect that I will return to Perl now and again and this is what it will feel like.

Oh my god web results for popular programming questions are terrible. The top hits for every search phrase with python in it lead to pages that technically contain the information I seek, but which clog up the browser window with animated ads, subscription pop-ups, and sliding survey pitches. Squinting to see past them, I machete my way through whole screen-lengths of meandering opening paragraphs to grab the single line of example code I want and flee. It’s been a long time since I’ve had to use the web this way, and I don’t remember it being this bad!

There is the Hints from Heloise-style tip I learned this year of adding reddit as the last word of your search phrase, no matter what it is—and that works okay here. Since DuckDuckGo is my default search engine, I can also prepend any search with !so or !python to restrict my results to Stack Overflow and the official Python documentation, respectively. That helps! I just… ugh. It makes me feel bad knowing how awful the “untreated” search experience must be, for most people.

Learning with friends via Advent of Code is great. That I began this trek on the first of December is no coincidence. For the first time, I am participating in Advent of Code: a collection of 50 programming puzzles, with one pair released every day through Christmas.

Six days in, I’ve found the puzzles so far small and pleasant. Each day presents a relatively simple data-processing problem, with a large input file and two whimsically worded scenarios describing a way to process that file into a single number or short text string. The website has an answer-checker, but doesn’t prescribe how you arrive at your answer, and doesn’t particularly care how long you take to get there. (There is a time-based “leaderboard”, which I ignore.) Reading about a chapter a day of the official Python tutorial in parallel, I find this an ideal setting to meaningfully learn a new language at a comfortable pace.

I started an Advent of Code channel in a freebie Slack instance that I inhabit with friends. A half-dozen of us have been playing along since the start, sharing and discussing our solutions with each other. I admire my experienced Pythonista friends’ elegant and educational techniques, and I have a great time horrifying them by starting every script with import re and solving every problem by shredding it beyond recognition with regular expressions, in the proud tradition of my people.

I will always be a Perler.

Share or reply to this post on Twitter, or elsewhere.

Five years ago I created an account on, riding some wave of Trump-era Twitter dissatisfaction whose particular triggers I no longer recall. I never really understood the system, and wandered off after just a few days, dismissing it as just another well-meaning but uncompelling Twitter clone.

I returned to Mastodon last week, still at my old account. Unlike 2017’s little lunchtime walk-out, this feels like a permanent shift in my online attention. I have put the effort into understanding what makes Mastodon different from Twitter—radically different, in fact—and it fills me with mingled curiosity and hope.

A lot of friends have joined me—and I hear tell that the makers of Tweetbot, my favorite twitter client, are making a Mastodon app. While I plan to continue lurking on Twitter for the time being, I have put more active creative energy into Mastodon’s fediverse.

What I am not doing: getting an account on Hive, or Substack, or Cohost, or any other monolithic, siloed service. Mastodon might fall short of a pure IndieWeb solution—you’re still posting content using someone else’s computer—but it does avoid the death-trap that was always in the cards for Twitter, and which so painfully tore into it last month. I expect a similar fate to meet every single-owner, profit-seeking Twitter-like, sooner or later: if not purchase and privatization by a ridiculous revanchist, then continuous redefinition into increasingly user-hostile directions as it scrounges for novel revenue streams. Mastodon, run by countless independent operators and literally impossible to commercialize, escapes this doom.

Not to say that I expect Mastodon to simply breeze through this long moment! It has quite a lot of growing up to do, and it will feel chaotic and even painful while its rapidly inflating userbase shifts its center of gravity—no, centers of gravity around, tumbling and colliding. I feel quite optimistic that it will end up someplace good, with room for everyone: an inclusive space, but not at all a symmetrical one. I have few predictions about this, but I do expect that it will become a huge, weird, wonderful blob of gnarled-path neighborhoods, unevenly bridged. Boston, not Manhattan.

While all this is going on, I intend to adapt some old, good habits. I hope to keep by my old Twitter rules for a diverse but uncluttered personal timeline, following with care and muting liberally. I will also continue to practice Peter Sagal’s rules about limiting posts to what interests, amuses, or delights me—and excluding what merely angers or disgusts.

I plan to not worry too much about inter-instance politics. I get the impression that is seen as a refugee camp, at best, among experienced Mastodon users, too swollen and anarchic to treat in good faith. At least one close friend’s preferred instance has recently “defederated” it, making our posts essentially invisible to one another. I do intend to relocate to a smaller and homier instance in the near future, one run by an organization that I trust with long-term technical stability and community care.

But once I do that, I hope to settle in, and not stay on the alert about who is defederating whom. That seems like a recipe for constant anxiety to me! If so many instances cut ties with my own that my experience of meaningfully using Mastodon starts to degrade, I suppose, then that would become a cause for concern. But it doesn’t seem particularly likely, and worst comes to worst, well… one can always migrate again.

I don’t know what’ll happen with any of this, let alone my part in it. I’m just feeling my way forward, because that seems like the right direction. This really does feel like a profound second chance for all of us to get this right, and not just by naively walking down the same path.

Further reading: I Was Wrong About Mastodon, by Marcus Hutchins, goes into much more technical detail about the very interesting potential of a federated social network—from the perspective of another former Mastodon skeptic.

How to respond to this post.

A detail from the painting 'The Death of Socrates', showing the cup passing from one hand to another.

“I am approaching my fiftieth birthday, Mr. Trout,” I said. “I am cleansing and renewing myself for the very different sorts of years to come.”

Later this month, I will submit to my first routine colonoscopy. (“It’s time,” the doctor had informed me, gently.) Some hours prior to that, I will drink a tall glass of what we shyly call prep solution, formulated to drive the gut into a self-cleaning paroxysm so that the surveyors might, flashlights in hand, enjoy an unobstructed view of the property.

Bringing the heavy bottle home from my local CVS, it occurred to me that this voluntary action will mark, objectively and inarguably, the end of youth. More than my retirement from software engineering over the past few years; more than my primary-care doctor saying “You’re not a kid anymore” last year; more than my fiftieth birthday, still more than a year away. It feels right to choose a moment completely under my own control, and not a gradual shift, external pronouncement, or arbitrary calendar date.

So I will drink, bear the brief unpleasantness that must accompany any professional poisoning, and then sleep, feeling nothing at all while specialists practice their unpretty but necessary art on my lifeless body. And then, if Providence allows, I’ll awaken into the next part of my life—what Kurt Vonnegut called “the very different sorts of years to come” in Breakfast of Champions.

I am ready to cross this threshold. My life, in so many ways, has never been richer. I don’t assume that my peak of personal or professional quality lies behind me, even if the longer part of my lifespan might. Barely a year into my second career as a technical writer within a huge organization, I still have so much to learn, and I know that I can, and I want to do it.

I feel exceedingly well provisioned for the road ahead, even as I know that the pavement will start cracking, and the incline begin to steepen, as the milestones pass. Preparing to meet the challenges to come, I continue to exercise briefly but intensely every day, and maintain my modestly careful diet. And it still works: another doctor last month pronounced my arteries clean and my heart eager to give me as much as I ask of it, for the present.

I will continue to accept the gift, for as long as I find it offered to me.

Share or reply to this post on Twitter, or elsewhere.

I regret racing straight to Pale Fire’s Wikipedia page the minute I finished it, too impatient to even attempt taking in its index. Nabokov, I quickly learned, did not scruple to speak openly about all the tricks and traps he laid throughout this proto-hypertext, in interviews contemporary with the book’s 1962 publication. At least I can feel relieved that, with dozens of critical studies about it flowering over the subsequent decades, the literary world wisely chose to read the author’s own explicit answer-key as just another interpretation.

Specifically, Nabokov cheerfully pointed out clues he hid around the text showing that “Kinbote” was a pen name for an eccentric professor, “Zembla” this person’s complete fabrication, and “Gradus” merely a disturbed local citizen. But the Wikipedia article goes on to describe real-world competing schools of “Kinbotists” and “Shadists” who disagree about the story’s “true” authorship, as well as a splinter group who credit Shade’s tragically departed daughter with literally ghost-writing the whole thing.

I am okay with all of this. I just wish I had allowed myself to sit with original text it a bit, first. Maybe the very nature of its kinetic, jumping-around nature inevitably encouraged me to just keep leaping past the final page and into the most obvious meta-text immediately available to me, sixty years later.

I feel driven to defend poor Kinbote this way: the text gives us permission to believe in Zembla, that distant northern land, since it transparently sets itself in world half a degree separate from our own. Shade’s home and university exist in a comfortably fictional college town, but then the text drives it a step further by placing New Wye in “Appalachia”. Kinbote, meanwhile, writes out his distracted exegesis in the western state of “Utana”. In context, we have no reason to think these are Kinbote’s fancy nicknames for (say) Pennsylvania and Montana; they are literally the names of two American states, in his world. We must either conclude that Kinbote’s grip on reality is utterly shattered—dissolving the whole text to meaningless, impotent raving—or accept that if his United States is so rearranged, then Europe might just have room for his beloved Zembla, as well.

But then, I have to tell you why I feel fairly certain that, even absent Wikipedia, I’d have arrived at an interpretation similar to Nabokov’s. The cadence of Kinbote’s storytelling, and especially his love for sprinkling “Zemblan” vocabulary lessons throughout his digressions, remind me so strongly of the stories my own own fabulist mother would tell of her childhood, raised (she would tell us) by a Norwegian community in downeast Maine. I wouldn’t understand until adulthood that she made up all these stories on the spot as needed, deploying “Norwegian” liberally to lend them credence. Reader, I have just now turned to the internet again to finally prove to myself that—yes—the Norwegian words for “cat” and “dog” are not, in fact, kisa and dusa.

I will tell you the real mystery that Pale Fire leaves me with, one looming larger to me than even its weird talk of poltergeists, or the hauntingly grave note that Kinbote ends on. Is Shade’s poem titled “Pale Fire” supposed to be good? I just don’t have the experience with poetry to confidently pass any kind of judgment on it, though I do have my suspicions that Nabokov intended us to read it as satire of a particular kind of poetic self-indulgence. The book primes us to expect comedy, after all, presenting the poem after a “preface” where Kinbote’s boasts about his sportscars and student-body catamites get suddenly interrupted by peevish complaints about all the noise outside his motel room. But that poem undeniably contains a multitude of transcendent peaks over its 999 lines even so, just as Kinbote’s notes manage to repeatedly harmonize with it despite their overt self-obsession.

I don’t know! It’s a good book, you should read it.

Share or reply to this post on Twitter, or elsewhere.

A simple collage combining a photograph of the Moon with an old woodcut drawing of a mysterious hooded figure, captioned with 'Hadean Lands: an interactive fiction by Andrew Plotkin'.
My own fan-art cover for this game.

This is a spoiler-free post. Executive summary of the links: An excellent hint book. A fascinating plot discussion.

I have completed my stream of Hadean Lands. It stretches across fourteen weekly episodes which average two hours apiece. To the best of my knowledge, this represents the world’s sole public recording of an end-to-end playthrough of this game. I extend warm gratitude to everyone who accompanied me by kibitzing in each week’s attached chat, and doubly to Andrew Plotkin, who acted as call-in guest for several episodes—and who, of course, wrote the game.

This post collects a few notes and observations about my experiences with the game, as well as links to important related media within the IF ecosystem. (I do have additional thoughts specific to the challenges and rewards of streaming interactive fiction, and shall save them for a future post.)

While not the author’s most accessible work, Hadean Lands stands among the most important digital experiments of the current century. Ritualistically binding itself to the strictures of the text adventure’s ancient format, the game cast itself into bold new territory, both mechanically and stylistically, when Zarf published it in 2014. Anyone interested in the study of interactive narrative would benefit from at least a few hours exploring this game’s strange world. (I suspect that a typical playthrough by an attentive player not trying to put on a show would take significantly less time than my own 28-hour performance.)

Hadean Lands demonstrates so much potential for how a game of information-keyed puzzles can work that I suspect it has already influenced more recent commercial work in the adventure-game space—including, but not limited to, the trend of time-loopy adventures that has appeared in its wake. (I would bet a four-eyed space frog that Outer Wilds is one, even though I wish it could have gone further in copying Hadean’s principle of avoiding player repetition.)

The work also stretches the boundaries of how subtle a video game’s story can afford to get, especially when it doesn’t center the player’s own labors. I stayed up late after wrapping the stream’s final episode reading this long discussion of the game’s plot, and felt abashed to find how many threads of Hadean’s plot I failed to even grasp, let alone unravel, even though I “won”. To some extent, I can pin the blame on the peculiar context of live-streaming, which tends to encourage a bright focus on mechanical action and solution, rather than the more quiet and contemplative play one would need in order to cognitively connect all the game’s disparate clues into a sensible narrative.

I never took the time to consider how the player character’s unusual qualities—their eidetic memory, their affinity for performing rote tasks again and again—might serve not just as a gameplay gimmick but as a narratively significant element of a greater story. Worse, I expressed impatience during the stream whenever I discovered information that didn’t have any clear bearing towards mechanical puzzle solving. “Ugh, more lore,” I’d groan, shutting myself (and my audience) out of half of the game’s pleasure. Truly “winning” Hadean Lands means not just arriving at the end, but having at least some notion of how it all came to pass. Laser-focus on bashing through the puzzles won’t get you there.

In particular, I see the influence of John M. Ford’s treacherously slippery storytelling style in this game. Two years ago I enjoyed both Ford’s The Dragon Waiting and Zarf’s exhaustive concordance of it; I find it unavoidable, in retrospect, to read Hadean Lands as an intentional extension of this tradition.

Not to suggest that the puzzle-solving side of this game is easy, either! On that front I’m happy to report that Dan Fabulich’s brilliant hint book, posted to the web several years after Hadean Lands’s release, makes finishing this game a much more tenable proposition today. I discovered this carefully paced walkthrough in the middle of one of my stream’s episodes, and I feel certain I would have given up on this project without it. Dan wrote this guide in the style of Infocom’s famously gentle and patient “Invisiclues” books, and it fits this game perfectly. Everyone starting out on their own Hadean Lands journey should bookmark Dan’s post.

When written properly, an Invisiclues-style guide gives players plenty of chances to still feel like they solved every puzzle they needed hinting for. It offers nudges and observations and suggestions, not just hand-grasping walkthroughs. I turned to Dan’s guide every time I simply had no idea where to look next, especially after I’d uncovered most of the map. In many cases, a hint of “Have you visited such-and-such lately? Make sure you carefully examine everything there” was enough to unjam my attention and allow me and the chat participants to solve the subsequent thirty-seven steps of the current conundrum ourselves.

Finally: I still don’t know how to pronounce Ensign Sydney Ctesc’s name. During the stream I fumblingly went with [See-tesk], obviously incorrect by any measure. My usual go-to website for pronouncing diverse coworkers’ names offered no help, nor did Wikipedia, so I presume it’s a made-up amalgamation of other names. A near-analogue I did find suggests I could have hit the mark closer with something like [Tzesk]. Sydney, my man, you kind of suck, and I hope you got what’s coming to you, but you didn’t deserve me mangling your name so badly over the aither.

Share or reply to this post on Twitter, or elsewhere.

Before February ends, I’d like to acknowledge that Fogknife wants to take a break. While I’ll keep the blog (and its RSS feed) online and ready for my next post, I shall also allow myself to not anticipate when that might occur. This is a change from the four-posts-a-month(-more-or-less) schedule I’ve kept since I started writing here in 2014.

I know only that I wish to give my public writing voice a rest, for a spell.

As I wrote last month, I have come to realize that my old life has ended. The jmac who for so many years defined himself as a jolly freelance hacker who did some writing on the side has passed away. The work of accepting this change represents an ongoing project. Lately, I come to more clearly see how need I need to put away more habits and aspects of my old life, clearing the work-space to let new and vital focuses and transformations have their full effect.

While I have no plans to retire Fogknife, I must let go of the expectations I’d set for it long ago. I know my core self well enough to know I can’t stay away indefinitely! One day I’ll return with new rules for how I’ll use this blog, ones that make sense for my new life. Until then, I need to step away and make more room to work on myself.

I will be well, and I hope you will be well too.

How to respond to this post.

My pole-star song for 2022 is David Byrne’s Here, the opening number to American Utopia. I saw it performed live by the show’s Byrne-led ensemble last week, after Amy scored front-and-center seats through a Broadway ticket lottery; “close enough to see the sweat”, as she described it to friends afterwards. I don’t think it’s too early to describe the experience as life-changing.

Here establishes the show’s framing metaphor of the human brain. The curtain rises on Byrne holding a neuro-anatomical model, and he proceeds to indicate various parts with his hands, addressing the audience like a lecturer. “Here is a region of abundant detail,” he sings, touching one part, and then another. “Here is an area of great confusion.”

Having seen it performed, several moments in the song make me shudder on re-listen. One is the moment when the first of the ensemble’s two dancers first joins Byrne on the stage, harmonizing with the chorus, and beginning the very gradual build-up of performers that fills the stage over the course of the initial numbers. Another happens at the close of Here’s second verse, when Byrne runs a finger along the fissure between the brain’s two hemispheres. “And here’s the connection,” he sings, “to the opposite side.”

That moment defines the show. Having lyrically activated the corpus callosum, the remainder of the song celebrates the brain’s cohesion into something greater than the sum of its parts; how the presence of that connection pulls all those sections together into a miraculous organ that can listen, comprehend, and dream. The rest of American Utopia frames itself around the idea of the brain as microcosm for human society, as a model for many discrete regions connecting to make something beautiful and amazing. Byrne monologues briefly between all the songs—a mix of original numbers and venerable Talking Heads favorites—to set them all in this context, and to share his motivations for creating a staged concert whose musicians are entirely mobile, playing only portable, wireless instruments.

Ultimately, the show dreams of Americans, specifically, finding connection—for all their vast differences, and for all that has gone wrong. (Among the numbers is Janelle Monáe’s Hell You Talmbout, protesting racial injustice.) And performed today, American Utopia quite intentionally challenges the listener to put aside cynical thoughts of futility and hopelessness, and to consider other paths.

Hopelessness feel easier to come by today than ever before, but that doesn’t make it any healthier to swaddle your heart in. I needed to hear the suggestion of an alternative direction, and a reminder that even when things seem very bleak, one can gather personal energy and optimism by imagining a better future, and moving oneself in that direction.

On the topic of connection, the show catalyzed something I had experienced earlier that week. Apple’s Fitness+ channel, which I have been enjoying for the past year, recently added meditation guided-programming. In one recent episode, the instructor Christian Howard leads the audience through an unexpected and difficult emotional exercise. Think of a person you dislike, and then imagine the child deep inside them that just wants love and safety. And then imagine embracing and comforting that child. Just holding it for a few minutes.

The point, of course, is to see yourself in others, to see a common, shining, most-essential core shared by all individuals, and to acknowledge a similarity even when surface differences seem unbridgeable. It’s a bit of mental reality-folding I’ve heard from gurus in the recent past, most especially in the writings of Alan Watts, adapting Hindu cosmology for western audiences. It’s all very easy to forget! With music—with the experience of sitting just feet away from those performers, a memory I can revisit at any time by listening to the cast album—I hope it has seared itself more permanently into my own brain.

I have found ways to apply Byrne and Howard’s accidental amalgamation of sympathetic optimism into my life, starting with my day job that sees me working with lots of other people carrying their own desires and directions. It has already felt like a breakthrough. Time will tell whether this lasts beyond the intrinsic novelty of a new year, but I feel hopeful. (About feeling hopeful.)

None of this is easy. Byrne’s show is a wish to apply this on a national level, perhaps a global one. That’s a tall order! But that isn’t for me—one little neuron—to accomplish alone. I’ll take the lessons and that fortune saw fit to provide me with in the first days of this year, and do my best to light up the space around me, and I’ll see what might shine back as a result.

Share or reply to this post on Twitter, or elsewhere.

My 2021 was less about accomplishment than revision. Most of it was good, and none of it was easy.


My relationship with the Perl programming language came to an uneven crescendo last year.

In January, I saw the language’s new documentation style guide published—a point of terrific personal and professional pride, and the largest direct contribution I’d made to this technology that I’d built my whole career upon. I applied the energy from that win into volunteering to propose and lead a new documentation team, an idea the Perl project’s steering council approved of enthusiastically.

And then, as an initial action, I applied on behalf of Perl to Google’s Season of Docs program, seeking funds that would let us hire an expert to audit Perl’s documentation. It worked! And just before the year ended, we published that audit’s results.

In between these wins, however, I had to dramatically curtail my own ongoing involvement with Perl. By late summer, I found myself with a leadership position at my new full-time job, which—when adding in my ongoing IFTF presidency—left me holding three leadership roles. Wisdom will tell you that priorities are like arms, and so I now had one too many. I made the difficult and painful decision to step away from leading Perl’s documentation efforts, just a few months after hyping myself up into it.

I realized only towards the end of the year that part of switching careers means that your earlier career has ended. Perhaps I’ll always think of myself as a hacker, but I do not call myself a programmer any more. I have barely written a line of code in any language since beginning my current job, six months ago.

I think I’ll find some balance here, in time. I did write a little Perl one-off script a couple of weeks ago in order to divvy up some reading assignments to my work-team. It felt very good! But the intense, decades-long relationship I’ve enjoyed with Perl—and with programming in general—has come to an end.

Part of my motivation for writing this post was funerary: I wanted to publicly acknowledge this ending, and reflect on it. I can let myself feel a little sad that this once-central part of my personal and professional identity, one which I’d always assumed would last my whole life, has instead come to its coda. I hope I can look back on this time of my life with gratitude, and allow that feeling to suffuse my new and ongoing occupations.


In January, a startup hired me into my first full-time technical writing job. It laid me off in May, at which point I was already seeking a position elsewhere. I found it a month later at Google, where I have remained since, and where I expect I shall continue to reside for some time.

Joining Google involved another painful decision, even apart from the ensuing need to step back from Perl documentation. Choosing Google meant declining another opportunity, offered by a good friend, to work as a contracted technical writer for a nonprofit whose work is very important to me. For reasons too complex for this post—and more than a mere difference in salary figures—accepting Google’s offer was my only rational option. I do not regret my choice, but I can still feel the hurt from it.

This career shift has contained layered disruptions: not only does this work represent my first truly full-time job since 2005, but I discovered only in August—two months after joining the company—that Google had hired me into a senior role, and expected me to organize and lead a team of writers. I like to think I rose to the call, which involved weeks of especially intense professional development, communication, and improvisation.

I greet the new year wobbling like a just-born calf: standing, looking ahead, determined to roll through all the tumbles to come. The tumbling takes place mostly in spreadsheets and internal task-management tools, but I have managed to author a paragraph here and there within the product’s public documentation. I hope I can accomplish significantly more technical writing in 2022.

Interactive fiction

At the end of the year, I discovered the joy of streaming interactive fiction, with an emphasis on reading aloud. The happiness this has brought me has only intensified since I wrote that post. I have put more time into customizing my YouTube gaming channel, and have announced an intention to stream games—mostly text games—at least once a week for the foreseeable future.

Back in the early summer, IFTF welcomed several new board members, the culmination of a long effort by the board to reorganize the nonprofit into a longer-term mode that requires less intense attention from a more diverse band of core volunteers. It’s worked out quite well!

This year challenges me to address the organization’s long-dangling succession question. I now have a deadline to find my replacement as president: due to new term limits we established, I cannot retain my board seat past March of 2023. I’ll have been president for seven years by then, which is probably around two years too many.

Setting a positive precedent of succession is a crucial hurdle for any nonprofit that intends to outlast its founders’ initial involvement. I feel like I have the resources to do this right; it’s on me to actually apply them.


Amy and I bought an apartment. A first for either of us, let alone both of us.


I deleted 40,000 old tweets, and declared that I’d stop posting freely to Twitter. Against my own expectations at the time, I have actually stuck to this. With rare exceptions, all my tweets in 2021 were replies, retweets, sharing media, or starting conversations with non-rhetorical questions. No more unfiltered top-of-mind babbling of whatever seems funny at the time (and which I might regret for the rest of my life, five years later).

I try to stick to Peter Sagal’s rules of Twitter: share and amplify that which informs or delights, and nothing else. This may work against Twitter’s core design of making people as “engaged” as possible by upsetting and infuriating them, but it’s the only way I intend to use social media from now on.

Did I mention how happy the streaming has made me? Yes? OK. Well, thank you for reading. I’m glad you’re here, and I hope the coming year has good things for us both.

Share or reply to this post on Twitter, or elsewhere.

For much of 2020 and 2021, both of my home’s game consoles suffered from a mysterious and irritating problem: their wireless controllers had terrible lag. Switch or PlayStation games that required precision input had become essentially unplayable: I could press a button and quickly lift up my thumb again before the on-screen character reacted.

I’d occasionally research this issue online, but seldom found useful advice. (Even today, the first hit for a search I just tried begins by advising that you play with a wired connection, instead.) We moved house in the late summer of 2021, giving me the opportunity to approach the problem fresh, and I’m happy to report that I do think I’ve overcome it.

The two steps I took, in the order that I tried them:

  1. I moved our apartment’s wifi router away from our game-console stack. One of the few useful suggestions I did find online blamed signal interference, and suggested putting distance between one’s consoles and radio devices like routers. Setting up our new apartment from scratch made this option more feasible than usual.

    In our last place, we had very literally stacked our consoles right on top of the wifi router! So, we stopped doing that.

  2. I turned on my TV’s “game mode” for the HDMI inputs that each console used. As my TV’s explanatory text put it, this trades off high-as-possible video quality in favor of maximizing display responsiveness, pushing out images to the screen as fast as it can.

    We’ve owned this TV for a while, and I don’t know if this option appeared with a recent OS upgrade, or if I’d simply never looked for it before.

In retrospect, I suspect that the latter step helped more than the former; I well remember how satisfied I felt when I tried my newly configured TV inputs, and saw the screen respond to the controller with neither delay nor any detectable picture degradation. But physically separating the router did seem to alleviate the problem to some degree before that, so I include it here for the sake of completeness.

So that’s my very short how-to for this rather modern gaming problem, and I hope it helps some future person searching the web for answers. I shall now pick up Hollow Knight where I’d last left it off, some 20 months ago.

Share or reply to this post on Twitter, or elsewhere.

Previous post: A new audit of Perl’s documentation