Cover of 'Unnatural Ends' by Christopher Huang.

While planning this post, I remembered that I had, in fact, written about a Christopher Huang work before. Back in 2013, I was invited to review all the nominees for the previous year’s XYZZY award in the “best implementation category. The list included Huang’s delightful parser adventure Sunday Afternoon, about a bored little boy stuck in his family’s stuffy Victorian mansion, unaware of the grown-up drama unfolding around him.

And now, as I actually set about to write this post, I further recall that he interviewed me about a text adventure game I wrote years before that. What’s more, I pull-quote his own review of that same game on my own webpage about it.

All of which is to say that it didn’t come as a complete surprise to me to receive, as a quite unexpected parcel in the mail, a new and handsome copy of the mystery novel Unnatural Ends by Christopher Huang some weeks back.

Look, okay, I just now dove into my email archive, and I find a forgotten thread from years ago where Chris himself told me that he’d started to write this novel, after which I cheerfully pledged my support through the Inkshares platform. This both confirms my educated guess about how I came to receive this book, and makes me feel slightly embarrassed about writing a public post before sending him a private note. Well, I’ve come this far already, so:

I really loved this book! The blurbs decorating its cover praise it for its adherence to the mode of Agatha Christie, but that’s not really an author or genre I have direct experience with. The nearest touchstones for me include the detective films of Rian Johnson—and Aaron Reed’s Subcutanean, another novel by an IF hobbyist-luminary that shows a particular interest around the exploration of interesting buildings with hidden passageways.

Unnatural Ends presents us with the gruesome but puzzling demise of Lord Linwood, cruel master of a Yorkshire estate and draconian father to three adopted children. Now in their early adulthood after the Great War, the children find themselves drawn back to the place of their shared origin by their father’s bizarre death. But the old mansion has generations-old intrigues marbling its stonework, of course, and it rapidly entangles the three protagonists in a twisted mystery which obsesses them all.

Inevitably, they discover family secrets about themselves, their true parents, and their monstrous adoptive father—secrets far more terrible than the bloody event than summoned them. Ultimately, each must decide whether to bind together to seek justice for past wrongs—or to succumb to their late father’s will, fighting one another for dominance and power.

How exciting! I will now probably spoil which way things go by confiding in you that I found the three principal characters of Unnatural Ends entirely likable and believable, each already gone through enough trials by the novel’s start that they’ve quite thoroughly shaken off their father’s evil influence, even if they begin the story not knowing the half of his depravity. The job lands on them now to bury their father, literally and figuratively—but 400 pages of complications ensue, testing the childrens’ will and humanity at least as much as their intelligence.

I tore through this delicious novel quite quickly. Listen: I read half the book on a plane. I hate reading on planes, right? Or I thought I did! It may be true I get a little better about flying with every trip I take, but sinking so deeply into a novel at 35,000 feet represents a quantum leap against flight-fear that required a truly captivating read, and that’s what I found here.

I recommend this new novel without reservation, and—as I probably always say about novels I adore—I’d love to see it adapted to film or TV, sometime. A period drama with blood and guts and a delightfully diverse main cast! We love those!

How to respond to this post.

Chose Black Narcissus from the Criterion Channel’s “All-time favorites” lineup during my free-trial week with the service, grabbed by its evocative title and its stunning marquee artwork of a nun pulling a bell-rope atop a dizzyingly high cliff. That title ends up sitting quite uncomfortably in a film full of discomforts, both intentional and otherwise.

Two things within the movie’s world are called “Black Narcissus”: a perfume worn proudly by “the Young General”, played by the Indian actor Sabu Dastagir—and that character himself, nicknamed slyly by the British nuns inhabiting the Himalayan cloister that he visits. As such, the Young General’s arrival to the troubled nunnery signals that, the setting established, the plot may now get underway.

So it’s all a bit strange when, midway through the picture, he falls in love with a local girl and simply leaves. This elopement occurs off-camera, and lasts for the remainder of the picture. The best explanation I have is that the hesitant, close-up embrace between the lovers—the last time we see either, but for a brief scene at the end—triggers a switch in the movie’s tone from grounded realism to a vertiginous dreaminess, commencing the nightmarish events which eventually dissolve the cloister. All because of… something in the air, I suppose!

That embrace also carries a strangeness not present in the context of 1947: like countless movies of its era, Black Narcissus sees no issues in casting white actors in other-than-white character roles. A modern viewer feels the friction this produces nowhere more keenly in the romantic pairing of the Young General with an Indian commoner played by the not-even-remotely Indian Jean Simmons. The teenaged Simmons—never speaking, layered in swarthening makeup—gets quite a bit of screen time, and I found her performance both pleasingly memorable and deeply embarrassing. I understand that the science of cinematic casting has learned a lot over the last 75 years, but I still find it strange to imagine that audiences were ever okay with such an objectively obvious mismatch.

I much more appreciated the film’s handling of two other unusual characters. I believe we are meant to understand the hunky and fortyish Mr. Dean, the local ruler’s European liaison, as gay. Nobody else in the movie seems to realize this, despite his penchant for extra-short khakis and brightly feathered caps, or—more significantly—his stoically amused detachment from all the nuns and village women who fawn all over him. While he does form an affectionate bond with protagonist Sister Clodagh, he gently brushes aside any naive probes towards romance that she offers. The final shot of the picture has the monsoon rains swallow up her mule-train as she leads the failed convent out of the mountains—while Mr. Dean only watches, eyelashes fluttering under the downpour. We must write our own background for Mr. Dean, based largely on everything unspoken in that last—admiring? regretful? nostalgic?—gaze.

The film’s depiction of Sister Ruth, meanwhile, struck me almost from the start as a surprisingly accurate and even sympathetic portrait of a person suffering with untreated bipolar disorder, though I don’t expect this to be a term in popular circulation at the time this film was made. The poor nun spends the earlier part of the movie lurching between being too sick to get out of bed, and then declaring that she can single-handedly run the convent’s elementary school and manage its gardens. The other nuns have absolutely zero idea what to do with her, driving her even more heartbreakingly off-balance.

The Young General’s sudden departure transforms Sister Ruth’s illness into a more generic sort of Movie Crazy. She starts ambushing nuns around corners with garish lighting and musical stings, while her motivations sink from the tragically misunderstood to the merely murderous. But, even so: she looks so amazingly ghastly in her final scenes that I would have assumed her appearance punched up with subtle CG in a modern movie, and not carried entirely by expert makeup and the actor’s own facial contortions.

On that note: the very modern work that this movie brought to my mind again and again was Immortality, the 2022 filmic video game directed by Sam Barlow. Players of that game spend hours sorting through a jumble of clips from three supposedly “lost films” of the 20th century, the most complete of which is Ambrosio, a lurid drama set in a Spanish convent. It also possessing a title that evokes heady aromas, enough to make the head swim at high altitudes. Black Narcissus did prove to have dangerously lingering scent, didn’t it?

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

This arrangement by David W. Youd is the best emeddable copy I could find of the game’s lovely theme music. The score notes that the music’s composer, like the book’s author, is uncredited.

Temple of Apshai Trilogy, a computer game published by Epyx in 1985, came with printed documentation so unusual that it had its own title: The Book of Apshai. You can browse a scanned copy online, courtesy of the Museum of Computer Game History.

Because I obtained my own copy of this game and its manual at age 13, the book plays an outsized role in my overall cultural literacy. Shelley’s “Ozymandias” is a meme punchline these days, but my first exposure to it came from the pages of this manual. So did the word “sinew”, knowledge of the Society for Creative Anachronism, and the very term “RPG”.

I don’t think I can speak to the objective quality of the work, due to my deep personal relationship with it. But I did read it again recently, because I wanted to express my fondness for it in public, somehow. I think my best route here is a brief exegesis of its component parts.

Before I begin: I don’t know who wrote The Book of Apshai. It feels like a tiny injustice that its inner front cover contains art credits, but nothing about who produced all the text. My educated guess: Epyx hired out the artistic talent, while its own employees wrote the words, and they simply didn’t deem it necessary to credit the latter. Hey, I don’t get named credit for my day-job technical writing, either…

Cover

It says “Temple of Apshai Trilogy™” in the largest type, then “The Book of Apshai” in smaller but still prominent type below Ken Macklin’s illustration, and then “Instruction manual” in still-smaller type below that.

This arrangement is how I arrive at my assertion that the printed manual acknowledges its role as the instructions for the computer game “Temple of Apshai Trilogy”, and yet stands apart as something beyond that, with a tangential but separate name of its own.

Here’s Ken Macklin’s page in a video game art database, and this might be his online portfolio, if we can believe that he transitioned over the years from painting generic dungeon dudes to perky astro-teens, and why shouldn’t we?

Table of contents

This page identifies the book as “The Temple of Apshai Trilogy”—which, I would point out, is one word longer than the actual title of the game. I maintain my position about the book’s actual title, further evidence for which we shall encounter later.

On that note, the table of contents all by itself teases that this is an unusual instruction manual. Okay, we can expect “Introduction” to lay out some prologue material, and I recognize “The One Minute Adventurer” as “quick-start” material, but the rest of this could be anything.

The critter emerging from its hole here is an “antman”, the signature beastie of the Apshai games. Like all of the book’s interior art, it was drawn by Matt Mott. He may be the Matt Mott of You Drew That Creations, but I suspect he’s instead the person behind the Matt Mott Art facebook page.

Package contents

The first of many of the book’s spot-art illustrations by Mott of a scowling dude with a big sword. It strongly evokes the interior artwork from the Dungeons & Dragons manuals from the 1970s and 1980s—an implied connection that, as we shall see, the publishers of this work felt happy to readers to draw.

The page’s bulleted list includes mention of the book itself: The Book of Apshai, well well. It also steps through the book’s own contents, and I note that this includes, in just a few words, the only explanation of the “Scrolls of Apshai” section that takes up the bulk of the manual’s pages. We’ll get to that.

The Oracle of Apshai

I want you to appreciate that this manual for a D&D-style computer game quotes Ralph Waldo Emerson as its epigraph. I might have heard of Emerson before I first read this book as a junior-high schooler, but I cannot guarantee it.

There’s the word “sinew” in the first sentence.

This opening essay introduces the entire notion of role-playing games, using remarkably oblique language. The first paragraphs acknowledge that the player character is not a person but a collection of attributes and statistics, but still one that can embark on adventures worthy of such florid prose. “The Trilogy of Apshai, like truth and beauty, cannot be told,” it whispers. “You must experience to know.”

This prologue reaches out to Greek myth and Christian allegory to describe the mystery, danger, and allure of the Apshai games we are about to play. It makes no attempt at the more concrete stage-setting you’d find in most any other fantasy RPG manual. Then it excerpts Shelley’s poem to close things out, alongside a lovely piece by Mott of the crumbled ruins it evokes. To this day, I think of this drawing when I encounter any reference to “Ozymandias”.

A modern wag might read these three pages and snort “TFW you need to write the introduction to a game you haven’t played.” I would counter with the truth that this game had no world-building, or at least none worth delaying the player over. The game comprised 12 levels of “dungeon” and a single, text-only “inkeeper” screen for managing your character sheet and spending your money. The author had nothing to express beyond vibes, here, and pulled in threads from real-world culture and literature to put the reader into the right anticipatory mood.

The one-minute adventurer

This section hits me where I live. Friends, this two-page spread is a marvelous example of efficient technical writing, and I have lessons to learn from this today.

The first page contains bullet-lists to get the game booted up on no fewer than three computer systems of the day, with room left over to reprise the Commodore instructions both with and without the use of the Epyx Fast Load cartridge. The second page has a five-step guide to whipping up a (certainly doomed) character and shoving them into the dungeon, just to sate the hungry reader’s immediate appetite for digital mayhem as quickly as possible.

I feel humbled. The “quickstart guides” that I write in my day job look nothing like this. They should look a lot more like this.

I just noticed that the scowling sword dude on page 7 has had his right leg replaced below the knee with a prosthetic of some kind. The hair and spikes on it imply that it is an appropriated antman leg. Holy cow! This detail absolutely escaped until this very moment.

Thirteen steps to staying healthy

The book pulls a little trick here! The “One Minute” guide might have gotten you into the dungeon door, clutching your dagger and ready for action, but it doesn’t, like, tell you how to actually swing that dagger at anyone. Or, indeed, how to move at all. Those secrets are found in this separate two-page list of basic rules for new players.

The previous section used two pages to get players up and running, putting something on their computer screen. Then, they need turn the page only once more in befuddled exasperation to find enough information to at least toddle around the dungeon a bit, clubbing a rat or two before succumbing to a pit trap.

This continues to be very good technical writing, designed around the contours of the product.

While the tone shifts from the allegorical to the practical for these sections of the manual, the tone stays arch, never taking itself too seriously. The monsters exist to “join you for fun and games”; no frame story about saving the world here. We all know what you’re here for, and we’re gonna meet you there.

The rules of Apshai

Without any further segue, we arrive at the most detailed part of the early manual, laying out the RPG nitty-gritty specific to Apshai. This includes how to read your character sheet, how combat works, and how to navigate both the character-management and dungeon-crawling interfaces.

That description would probably match the manual of most any other CRPG published between 1980 and 2010. It competently knocks through everything that a new player needs to feel like they fully grasp all the mechanics that the game exposes to them. If I feel a special fondness for the text here, that’s because it was, in fact, my very first RPG manual.

All that said, a handful of features stand out. Most obviously, one does find several lovely examples of the hand-drawn “screenshots” typical of the era in this section, rendered into frames with bulging edges in order to simulate a convex cathode-ray tube surface.

The first paragraph of page 10 contains the book’s first, completely unshy reference to “published ‘Dungeons and Dragons’ games”, brazenly misspelling D&D’s full name and not even feinting towards a trademark acknowledgment. It rather implies that there is no single game called “Dungeons & Dragons”, but that instead it’s the name of a whole loose genre—which, I suppose, isn’t entirely wrong, but wow! I don’t think the writer was going for cheek here—I truly believe they were trying to use the most clear language available to them. Everyone knew what “a ‘Dungeons and Dragons’ game” was, and “fantasy role-playing game” felt like jargon!

And then on page 11, we come to the section “Characters from past adventures”. This explicitly invites you to go ahead and import your favorite D&D characters into Apshai by straight-up typing in their stats and equipment into the game’s character-creation screen, entirely on the honor system, as an alternative to rolling up a first-level dweeb. It is almost certain I abused this feature to create demigods who rolled through the dungeons easily, having a grand old time, and I have no doubt that most other kids playing this game did exactly the same. As an advocate for player-managed difficulty, I applaud this design decision, even if it was made for entirely different reasons in the mid 1980s, and wish more games published today advertised mutations like this as core features so proudly.

The section heading “The body and soul: on death and dying” is another of those common idioms that strikes me as so remarkably unusual to find in a computer game manual.

The Apshai Scrolls

The book subtitles this thick section “A master reference guide”, and I think this was meant to suggest to the player to treat it something like the Dungeon Master’s Guide in D&D: Not really for players to casually read through, but accepting that most will probably do it anyway.

And in what really seems like a slip, nothing else on the section’s sole introduction page describes what you’re meant to do with the following fifty-odd pages. As such, I remember having to puzzle it out myself, and I still feel every bit as impressed today as I felt enchanted way back then.

The “Scrolls” section is divided into thirds, one for each of the three Apshai dungeons in the collection. Each of these subsections is further subdivided like this:

  • An alphabetical list of the monsters found in that dungeon, each with a short, flavorful paragraph attached for description.
  • Four more subsections, one for each dungeon level, containing:
    • A numbered list of rooms, each with a description attached, anywhere from a couple of brief sentences to half-page-long paragraphs.
    • A list of traps one might encounter in the level, arranged by name, and again each with an evocative description.
    • A list of treasures one can loot from the level, sorted by index numbers.
  • A concluding “Master treasure key” tabulating all the loot one can find in the level, including their sell-value to the innkeeper or their magical properties, if any.

This section isn’t easy to read cover-to-cover, coming across as a jumble of disconnected fragments. Yet, one can still see the care that went into their authorship: none of the room descriptions repeat themselves, even when talking about bare hallways. The author always spinkles in little details, when applicable: “A cleanly picked skeleton reclines against the west wall halfway down the passage”, or “The corridor smells strongly of vanilla.”

The graphics of Temple of Apshai Trilogy are quite sparse: all the rooms on a given level are rectangles of different dimensions, each completely bare except for your character, any monsters, and treasure-chest icons that symbolize things you can take a closer look at.

The game tells you the number of each room as you enter it, and announces the name of each monster as you encounter it, and prints an index number of every trap you trigger or treasure you find. The idea, then, is that while you tool your guy around this extremely basic looking computer-dungeon, you continuously flip around those fifty pages in the middle of the manual, receiving a much richer description of your immediate environment.

The room descriptions, especially, feel in conversation with the map layout. Quite often, those little details in the text become represented on the map with treasure icons, inviting a closer look, leading to a multi-step pointer-chase between book and screen. This leads to some surprises that I still remember and admire to this day.

For example, page 58 includes this sentence: “In the center of the court there is an immense, beautifully carved statue of a bearded man; he is smiling beatifically and appears to be offering you something in his outstretched hand.” In the game, a treasure icon does indeed appear in the middle of the large area, signaling an interesting goodie of some kind. If you move your dude up to it and type G for “get”, the icon vanishes and the game displays T17: EMPTY HAND in the status window. Turning back to the printed treasure table on pages 60 and 61, we find: “T17—An empty hand, that’s what you are offered.”

I also note that, with a couple of exceptions, none of these room descriptions mention the presence of any monsters—a bit strange for dungeon levels crawling with hostile baddies! But that’s the thing, you see: rendering colorful pixel-critters, printing OH NO! ANGRY BEES, and playing uh oh here comes trouble music are all things that the digital portion of Apshai performs passably well. Its partner, the printed manual, describes everything else aside from the fact that a rabid hyena is lunging at your throat, adding a layer of subtlety to what is otherwise a rather blunt experience of hacking through digital cellars.

When read as intended, printed details such as paw-prints in the dust or the faint smell of vanilla in the air serve as tension-setting warnings to the player about encounters they can expect in adjoining rooms. You’d never know it by simply reading through the book, but antmen—the game’s signature monsters—smell like vanilla. Passages mentioning a whiff of vanilla mean that antmen lurk nearby, while ones the describing the air as cloyingly thick with the scent are attached to rooms filled with chitinous enemies to fight or flee from. Nothing in Apshai states this connection explicitly, and making it for oneself feels quite magical, especially for a younger player.

The Legend of Apshai

Two pages of entirely fictional “lore” that any more recent game’s manual would put at the very beginning, not on page 77, tucked behind acres of reference material.

Again, I can only hypothesize as to the intent here: the writers approached The Book of Apshai as a work of technical writing first, and a fantasy game-book second. The chosen introduction only sets a tone with light strokes, rather than weighing the new player down with all this heavy syrup about priests and prophecies and ancient curses. This allows the manual to get the new player where they really want to be—actually playing the damn game—all the faster.

Dunjonquest™: Dragons on a Chip

The manual closes on a ramblingly high-spirited three-page apologia for fantasy role-playing games in general, and the Dunjonquest brand of their digital adaptations in particular.

Confusingly, other than a few passing mentions early on, nothing else in the manual mentions “Dunjonquest”, the underlying system that Epyx used for Apshai and several other games. This feels like it was initially written for some other publication, or perhaps was intended for reuse across several titles’ manuals? Either way, it opens with a rambling litany that once again evokes a wide range of classic literature and ancient epics, turning it into graceful bookend to the manual’s highly unusual introduction, whether or not that was intentional.

Of all the sections in the book, this one feels the most like it was written by the game system’s creator. It speaks so passionately about RPGs—still an obscure and misunderstood cultural novelty at the time—that it sold me on them. Some digging in the Internet Archive reveals a review of Temple of Apshai Trilogy in a 1987 issue of Antic magazine*, one that I recall reading shortly before I bought the game. This means I probably played the game that summer, right before my freshman year of high school, where began two things: an obsession with D&D and its surrounding culture that would last for many years, and a love for expository writing which continues to drive and define me.

It all started here, with this anonymous author doing their best to express and share the joy that both facets of this work gives them.


* I found it in the Archive by keywording on “Mr. Bill”, remembering the reviewer’s snark over the game’s penchant for printing OH NO! every time a monster appeared.

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

For some months, I’ve wanted to write a program that would let me page through the list of my list of Mastodon followers whom I don’t myself follow, showing me their bio and a sampling of their recent posts, and giving me an easy interface for following them back. Hmm, I just expressed my desire in one sentence, and it’s 2023. That means it’s time to ask an AI to code it for me!

An AI did not code it for me. However, one did get me over the hump of simply starting the project, and gave me the confidence to drive it the rest of the way myself.

I could probably have banged something together rapidly with familiar Perl, using a Mastodon library readily available on CPAN. But that library has seen a few years pass since its most recent update, a fact that helped this project feel like the perfect opportunity to get more comfortable with Python, writing my first such program to solve a real-world problem. This made my next action clear—and it also gave it much higher startup costs. And so, I did nothing at all with this idea for a long time.

But my first day back at work after a week off gave me some new perspective, as well as the idea to ask Bard, my employer’s LLM, how it would attack this problem.

It wrote up a script in an eyeblink, of course. The program that Bard showed me would import a library called Mastodon, with a pleasantly simple-looking API. It would proceed to log me into a Mastodon server, grab lists of my followers and the accounts I follow, and create the list of the first minus the second. When I asked Bard how to install this Mastodon library, it pointed me to Mastodon.py by Lorenz Diener—which has a completely different API than the one it demonstrated. Then it gave me the incorrect pip command to install it.

It seems that Bard had, at first, made up a reasonable-seeming Mastodon library, in the way that today’s LLMs are rather famously wont to do. But in this case, that was good enough for me! I was able to treat its bogus script like a template, an initial bit of ground to stand on that gave me a much more solid starting space than a totally empty text editing window would have.

Bard also seemed to have some half-baked notions about how to register my app with my Mastodon instance and then authenticate with it, but here too it succeeded in getting me to look in the right places.

Between Bard’s confidently semi-correct answers and the real Python library’s documentation, I had realized my initial goal within an hour. I doubt that I would have gotten there so quickly had I started from nothing. More to the point, I got started at all. Even if Bard couldn’t give me an instantly accurate cut-and-paste answer, it still gave me a customized and wholly applicable framework for finding my own way to a solution, helping me understand my problem better by breaking it into smaller goals and refining the questions I put to it.

I spent another hour or two improving the program, exploring the actual library’s API and adding the features that would let me see user summaries, and choose whether to follow any back. With more specific questions, like “What are valid values for booleans in Python?” and “How do you strip HTML from text in Python?”, Bard answered with bang-on accuracy. And this was the other half of my discovery about coding with LLMs: I found this kind of interaction far more pleasant than putting basic programming questions to a traditional search engine. As I observed last winter, the top search results for any questions about popular languages like Python are an unreadable mess. Getting results from a tool like Bard feels like a refreshing reset.

I notice that Google’s own marketing around Bard, including the way that the LLM introduces itself, describes it as more of an an assistant or a collaborator than an expert or consultant. This humbler framing of an LLM’s utility seems more correct to me than the highly skeptical and even fearful reactions to LLMs that presently prevail in my slice of social-media culture. I feel cautiously open-minded about this technology, and willing to continue actively experimenting with its use as a talking, knowledgable, but essentially inert rubber ducky.

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

Photo of a shiny new Yale deadbolt keypad installed in a old and somewhat shabby-looking door.
A featureless black lozenge jammed into a century-old door is a very Upper West Side look.

We bought a Yale Assure Lock SL deadbolt a few months ago, replacing the keypad lock that our apartment’s previous owner had installed into its single exit door. The old lock worked fine, but I really wanted something that could tie into HomeKit. The Yale is the only model the Apple Store sold at the time, and the internet seemed to think it was okay, and that was that.

I’m happy to report that it does feel like a solid little upgrade to our tiny urban apartment. Amy and I came to fully appreciate the new lock within hours of installing it, setting a code for a catsitting friend to use, letting us leave on vacation without needing to perform a physical key-trading dance. We’ve used it for this precise purpose with multiple catsitters and housecleaners since, and it works splendidly. It feels wonderful to have one fewer key in my life, and no need to ever duplicate it.

(The old lock had both a keypad and a keyhole, but we never learned its codes. By the time I realized I could reset them, I had already made up my mind to replace the lock entirely.)

Controlling the lock with our phones took us a little getting used to. You can code yourself in, of course, but unlocking via iPhone becomes a breeze once you get the hang of it. Putting the Home app on the first page of your phone’s home screen helps, but setting up a detect-when-I-come-near-my-home-again automation is the real key step. This sends a notification to your phone—and your watch, and your AirPods, if you have those—prompting you to pull out your phone, find the “Run the coming-home automation?” notification, and tap “Run”. It feels a bit stilted at first, but Apple is very interested in not unlocking your home without your highly specific consent.

If you have AirPods in, your phone phrases it as a question for you to verbally answer, but it does not actually listen for a reply—because, again, Apple does not want the responsibility of accidentally unlocking your home after your phone thought you might have said something like “Yup”. You gotta pull the phone out and tap. You get used to it, anyway, and it still feels nice to just march on in.

If you have an Apple Watch, the notification sometimes comes up there as well, letting you unlock with a wrist-tap. Sometimes it does not. As with all undependable Watch notifications, I have no idea what criteria the system uses to decide whether to display it or not, and treat it as a coin-flip in my favor when it does happen.

Since the lock is just another HomeKit accessory, you can add your door to other automations—our “Good night” one now turns off the lights, turns on the white noise machine, and locks the door—and you can ask Siri to lock and unlock the door.

Let this amuse you: I actually have no idea if you can verbally ask Siri to unlock your door when you’re not home. I’m going to run down the block right now and try it. Okay, turns out you can! How about that. If you don’t seem to be home when you ask, Siri follows up with “Just to make sure: You want me to unlock your door?” And for this it listens for your “Yes”, since you’re the one who presumably started the conversation.

Installation was a bit of a bear, but much of that leaned on the particulars of our situation—which is to say, our door. Disassembling the old lock revealed that it had been seated in a very roughly-hewn hole, too small to fit the new lock. I had to hire a locksmith to smooth out and enlarge the bore. To Apple’s backhanded credit, the locksmith was quite familiar with this particular model of Yale lock—it being, again, the only flavor that New York’s many Apple Stores sell—and knew exactly how to fit it into the door snugly.

After that, getting the thing to start talking to HomeKit took some further wrestling. I accomplished this within an afternoon using my laptop and a willingness to try that Google Search trick where you begin your query with the word reddit. Regretfully, I don’t seem to have written down my notes. I can report that I did get the lock onto my HomeKit network after taking its inside plate apart, removing its batteries, and starting over from the top with the correct Reddit thread in hand. It has stayed connected since, with no hiccups. Siri and the Home app take it from there, though I have had to use Yale’s official app to add and remove codes.

An unexpected nit, more amusing than annoying: because its keypad presents itself as a featureless black lozenge until you touch it, people visiting us for the first time often have no idea what this thing is, and experimentally poke at it, wondering whether it’s some kind of chunky doorbell. This triggers its “one-touch lock” feature, intended as an easy way to lock up behind you as you leave. So, a new visitor will announce themselves with a knock, followed immediately by the sound of the door locking. It’s no bother now, but those first few visits were a little confusing to both of us, when it seemed like the person living in the apartment immediately locked the door on the knocking visitor, and then tried unsuccessfully to open the door anyway.

If your home is as awash with HomeKit as ours, and you want this monopolistic magic to extend to your doors, then this is a fine way to get there. Otherwise, if you just want the joy of keyless entry and shared codes without need to tie into an an Apple-based home-device network, then I imagine you’d do just as well with a less expensive solution—such as the Kwikset-branded deadbolt that our predecessor had installed.

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

I read Jordan Ellenberg’s 2003 novel The Grasshopper King and enjoyed it, even though it literally wasn’t the book I thought it was when I first set out with it. In fact, I didn’t even know the author was familiar Ellenberg, who wrote the masterful popular-statistics work How Not to Be Wrong, until I was nearly done. Ebooks can be weird like this.

The Grasshopper King presents a tale of academic follies, framed as a memoir by a retired professor, looking back at his graduate school job of recording a silent and housebound linguist for 16 hours a day. The professors of his university’s department of Gravinics—a preternaturally obscure (and entirely fictional) language known for inspiring self-destructive obsession among its scattering of scholars—hope that their elderly colleague’s obvious catatonia is actually a profoundly deep meditation. They salivate over the surety that he will emerge from it at any moment, burbling with new, invaluable, and deliciously publishable insights. With no other path to a doctorate, the hapless young protagonist relocates his studies onto a card table in the linguist’s basement, swapping out silence-filled tapes as the hours pass, and breaking the monotony with the occasional game of checkers—the sole social stimulus that the immobile scholar responds to. Shenanigans ensue.

I probably started reading this book because one of my ebook apps, knowing that I had read How Not to Be Wrong years ago, suggested it. However, though some mental slip, I thought that I started reading The Grasshopper King after learning about Tithonus, a minor figure of Greek myth cursed to age eternally. In some tellings, the gods take pity on him and transform him into a cicada. I could have sworn that I saw this book listed as a modern retelling of that myth. I mean, grasshoppers are close enough to cicadas, right? With that mistaken impression in mind, the introduction seemed so far afield from ancient legends that I felt sold—wow, how would this charmingly written but entirely mundane setting wind its way into the realm of the fantastic! Well, it didn’t, but I kept reading anyway.

The story is short and swift and engaging, for the small world it moves within, and it plays a very lovely trick. The reader is invited, for much of the story, to side with the absurdly selfish and self-deceptive Gravinics department, treating the possibility of the old linguist’s awakening as a cliffhanger with an inevitable resolution. Gradually, it dawns on the reader that this will never happen, that the linguist’s absent utterance is not merely a macguffin, but entirely irrelevant: something to just let go of entirely. There is no moment when this realization snaps into place, but it grows at-pace with the protagonist’s own growth. I found myself having made this transition from amused anticipation to graceful acceptance slightly before any other characters did, and it felt pretty great.

Of the story’s several themes, the one I like the most: Sometimes, one just has nothing at all left to say.

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

A selection of covers for the Fritz Leiber novel 'The Green Millennium', featuring a cat of varying size and a warrior woman of minimal costume.

I picked up The Green Millennium, a 1953 science fiction novel by Fritz Leiber, on the strength of a paperback cover image that someone on Mastodon shared. It depicted a fantastic sword-maiden dressed in striped furs as she rode astride an enormous green tabby-cat, leaping before a full moon. I immediately shared it with friends, declaring it my personal poster-image for International Women’s Day 2023.

Despite this book from a genre-defining fantasy author being too obscure to rate a Wikipedia entry, my well-versed friends immediately responded with a bevy of covers from other editions. The wonderful variety of art applies varying emphasis and scale to the ever-present green cat, and the degree to which its sometimes-present rider is dressed. Some editions had blurbs teasing an extraterrestrial origin for the feline. You know that at this point I had to read this thing, so I found a reasonably priced edition on Apple Books without too many OCR errors—and yet another cover design, a tastefully minimal one featuring green cat eyes.

I found the story quite fun, in a cartoonish way. In a very 1950s future whose popular music is all about rocket-ships and martian romance, brave but hapless protagonist Phil Gish begins an unusual day when a lime-green housecat pads in through his high-rise apartment window, exuding a sense of pure joy and optimism. In short order, Phil meets a rogue’s gallery of sleazy gangsters, dissolute new-agers, double-defector government agents, and rogue psychoanalysts who all want that furry macguffin for themselves. From there, Phil and his friends board a merry-go-round where, again and again, they deal with one set of antagonists just in time for another to come marching in the door leveling a stun-gun or a nuclear bazooka at them. The whole set gets cycled through at least two times in this way. It is extremely silly.

The text inevitably marinates in outdated gender sensibilities typical of its author and the era in which he wrote, but nothing that modern readers can’t wince their way through. (Just for fun, I checked: “girl” appears 68 times in the text, and “woman” 15 times.) I had a lot of fun reading it. I’d love to see it adapted into a movie, animated or otherwise, with just a touch of attitudinal tuning for the twenty-first century. Juno the blunt but motherly professional wrestler is a fantastic character, as is Sacheverell, the frayed occultist who surrounds himself with flim-flam but never succumbs to cynicism.

The novel contains no ferocious female cat-knights, alas. Lucky, the (non-horse-sized) cat, doesn’t get much as much page-time as we might like, since the poor creature’s double-duty as macguffin ensures that he spends most of the story getting repeatedly stunned and temporarily kidnapped by all the book’s ridiculously villainous factions before all the gears fly off for a cat ex machina ending. Still, Leiber’s particular fondness for feline companions comes through from the start, and I found myself moved by Phil and Lucky’s adventure, however absurd.

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

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 Indieweb.xyz.

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 mastodon.social, 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 jmac@mastodon.social 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 mastodon.social 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.


Previous post: Hemlock