A visual-novel screenshot showing two anime-style characters, a young man and a young woman, standing in a walk-in freezer. The man is hugging himself against the cold. The woman looks pensive. A text box under them, labeled 'June', says: 'Have you heard the story about the crystallization of glycerin?'
Oh, you haven’t? Well, clear your schedule for the next half-hour, coz things are gonna get crystallized.

Nine Hours, Nine Persons, Nine Doors began life as a Nintendo DS cartridge in the late aughts, but I played it only a couple of months ago on Playstation 4 as part of the downloadable collection titled The Nonary Games. If I understand correctly, this more recent edition adds full voice acting (in both Japanese and English) and several player-friendly interface improvements, responding to critiques on the original version. In both editions, Nine Hours presents a Japanese-style visual novel in the puzzle-horror sub-genre epitomized by movies like Cube. Notably, it mixes in frequent room-escape sequences, at a pace and style reminiscent of how song breaks appear in staged musicals. The braided puzzle-and-narrative paths, in sum, tell a completely bonkers fantasy-horror story drawing heavily from early-to-mid 20th century pseudoscience topics pulled straight from Mysteries of the Unknown. I loved it.

I found the writing such a refreshing surprise, along several axes. The characters, while a rather trope-heavy anime menagerie on the surface, are so delightfully written and voice-acted — particularly the player-character, Junpei, with English-language speech provided by Evan Smith. I liked the funny and lightly self-deprecating Junpei even before the prologue had ended, when he has nobody to talk to other than himself, and he remains likable once he does meet and start interacting with the eight other characters. Junpei seems like exactly the sort of chap you’d want by your side while picking through a mad supervillain’s death-maze, and I felt lucky to get paired up with him. (And I know I am not alone in this, finding a Junpei Twitter bot as soon as I thought to look.)

Once the game got going, the interpersonal chemistry of whole, messy ensemble really worked for me. I did have initial reservations when one character dies gorily only minutes after the prologue, as a demonstration of the dramatic stakes. But as the sole irredeemably selfish jerk in the group, once he definitively removes himself the remaining characters bind together to compose a perfectly charming story within its otherwise unsettling genre. On the best-ending track, not only do none of Junpei’s companions die, but everyone’s developed a genuine friendship with one another — even the inevitable traitor(s) — by the time that they literally ride together into the sunset. The subtly humor-driven group dynamics in the face of horrifying circumstances reminded me of Joss Whedon’s best work.

A couple of the characters do take a little more effort to enjoy, particularly the painfully unsubtle virgin/whore dichotomy offered by the women named June and Lotus, respectively. June, the love interest, adheres to an anime-style naive-little-girl-in-an-adult-body archetype. If Junpei’s everpresent likability prevents conversations with her from sounding outright creepy, they still elicit more than a little eyerolling. (This includes the game’s most wince-inducing scene: a long, long conversation where June describes a waterlogged elevator in such a roundabout way that whoops ha ha it sounds a bit naughty! And it might have been at least kinda funny were it contained in merely four lines, rather than forty-four.) The far more mature Lotus, meanwhile, provides the inevitable fan service, spending the whole game nearly naked from the hips up — but she is so well written and acted, including just the right amount of lampshading in her dialogue about how she has the right to dress however she damn well pleases, that I feel a little self-conscious about calling her out about it!

The room-escape sequences managed to surprise me repeatedly, not so much with the quality of their (all rather arbitrary) puzzles but with their very smooth flow, assisted by the shifting sub-groups of characters that accompany Junpei as he explores the deadly ship. In particular, if you examine some object repeatedly, Junpei’s companions will start piping up with their own observations. If the object at hand plays a role in a puzzle, then these will serve as hints, initially oblique (“Huh, those holes are weird”), but growing more explicit if you keep hitting the “examine” button (“Hey, Junpei, I bet you could fit those pegs you picked up earlier into it!”). If the object lacks puzzle-nature, then you’ll instead receive dialogue that either brings a little extra character development, or at the very least acknowledges your flailing with some amusing banter. In all cases, this felt great, building the illusion that this varying group of characters really did work together to solve the puzzles, even though Junpei and I remained the only ones actually hitting the buttons.

I know enough about making adventure-game sausage to realize how much creative effort this must have involved, both by the game’s original designers and its later localization team, and I marvel at the payoff. I never once felt stuck, nor did I feel like I was “buying hints”, or switching to a separate easy-mode, or anything like that. For an overblown visual novel, Nine Hours manages to quietly demonstrate a master-class in adaptive game difficulty that feels completely natural.

(My thinking back on the puzzles also reminds me of the game’s glorious and completely unexpected nod to a specific scene from the original Crowther and Woods Adventure, as a way of signaling — whether or not you catch the specific reference — your approach towards the endgame. Gosh, that was good.)

The game’s love for moon-eyed twentieth-century legends of “unexplained phenomena”, epitomized to my American generation by the Mysteries of the Unknown book series (and its ubiquitous TV ads), will forever seal its story in my memory. At least as often as the click-to-advance visual novel flips into room-escape mode, one character or another will set aside their being trapped on a sinking and hazard-laden cruise liner to engage with Junpei in a deep and learnéd dialogue about some unusual scientific experiment. All these stories, as far as I can tell, come from real life — I remembered at least a couple of them, from my hungry teenaged reading — and exist among the accounts that proponents of supernatural phenomena hold up as proof of telepathy, or crystal intelligence, or what have you. Every character in Nine Hours is totally into this stuff, to the point that the game occasionally illustrates their pseudoscientific discourses with original, animated illustration.

These deep dives — and the different characters’ obsession with the topic — do manage to connect to the plot, as much as they seem like madcap non-sequitur at first. So, unexpectedly, the Nonary Games edition of Nine Hours presented me with an utterly delightful and excellently voice-acted filmstrip series that invited me to re-visit the pseudoscientific weird tales I luxuriated in as a kid. I experienced a welcome echo of these stories’ fun and seemingly depthless intrigue, even as my weary grown-up eyes force me to see the logical fissures that shoot through them, separating them from real science. Of course, that latter quality is just a side-effect of my age and experience; the world of Nine Hours accepts all these stories with an eager 12-year-old’s credulousness, and its wholly charming presentation allowed me to play along with its celebratory embrace through every last narrative branch.

Because it came in the same Nonary Games collection, I started playing the followup game called Virtue’s Last Reward. So far, alas, I have found it disappointingly bland. It seems devoid of Nine Hours’ myriad little rewards for thorough exploration, and all the characters — including the player-character — feel rather flat. (At least one character makes frequent real-world popular-culture references, quoting Captain Planet and such, which makes me think sourly of how one of the Katamari Damacy sequels would reference Seinfeld; in both cases, divorcing themselves a bit from their original games’ world-unto-themselves charm.) But never mind that; I enjoyed Nine Hours so much that I would generally recommend it, however one might find it packaged.

1 reactionShare or reply to this post on Twitter!

Just after sunset on a beach. Several uncertain rectangular shapes loom in the near distance.
“Sunset” by victimiser13 (CC-BY-SA 2.0)

Years ago I wrote about my personal practices for Twitter hygiene. While I still agree with all the principles I advanced there, I admit that the list predates the well’s poisoning by the current American president, and all the distraction and despair carried in his wake. As such, I strive to add to that list a new principle of limiting my consumption of Twitter, which despite its tragically increased toxicity remains a crucial source of information and personal connection. After a year and a half of failed self-control strategies, I feel hopeful that I’ve found one that works for me.

This past Sunday, July 1, marks the first full day that I successfully applied this new rule: I allow myself to browse Twitter only between sunset and sunrise. I also allow myself write-only access to Twitter no matter the time, using tools like Wren or my own Alisio in order to make announcement-style posts (or, yes, the occasional non-sequitur). I have remained on this path over the subsequent two days, and feel bullish about staying on it for the rest of the month.

Twitter has provided an unwelcome source of anxiety since the 2016 election, but this awareness alone has done little to temper my use of it. In May of this year, for example — according to my Timing app — I spent just under 35 hours actively using Tweetbot on my Mac. A conservative estimate has me doubling that figure to account for all the time I spent swiping through Twitter on my phone, whether in hour-log couch sessions or little bites in the grocery store line. One finds it tempting to decry how this represents two full-time work-weeks of making myself miserable marbled all through everything else I did that month. But I know that the marbling itself has layers: I keep sipping the poison because it has so much good medicine mixed in, still. Even though I read newspapers more today than I did two years ago, Twitter remains a primary source of contact for countless friends, acquaintances, and other voices I respect.

And sometimes, yes, I just need to check that I’m not the only person seeing this shit.

All this has value to me. There’s too much baby in that bathwater to simply throw out. Sometimes, since the election, I would delete Tweetbot or locally block twitter.com’s website on a whim, and that’d feel good and cathartic for a little while. But the pressure to reconnect would inevitably build up so swiftly that I’d have to reset everything within hours, and I’d only end up feeling like a chump.

Modest goals, then. The deal I drew with myself on Sunday states that so long as the Sun cannot see my sin, then I can bathe my red-rimmed eyes in Twitter all I like. Come daybreak, though, I close Twitter on all my devices, and when I notice my fingers summoning it back I command them to go pull up the Washington Post or something instead. And unlike every other time in the last 18 months I’ve tried the cold-turkey Twitter, my fingers obey this redirection. The short period of my self-denial, and the knowledge that my own rules will let me cannonball back into that siren cesspit within a few hours, make this rule far easier to follow than all my previous attempts to stop marinating in Twitter all day long.

Furthermore, AND-gating my desire to check Twitter to the caveman-basic boolean of Is the sun up? somehow makes this a far more straightforward exercise than my past attempts, suggested by my therapist, to limit my access to specific clock-time windows. My need to connect, I suppose, remains so strong that it overwhelms even the simple higher-brain puzzle of determining whether or not the big hand and the little hand say that I can have another cookie. My brain’s design spec keeps the single-bit sun-up-or-not variable automatically updated throughout the day, letting me NOPE right out of Twitter with near-reflex speed the very moment my traitor fingertips once again try to slide it into my visual field.

This plan, of course, takes inspiration from various world religious and cultural traditions of diurnal dietary fasting during certain times of the year. So I lazily appropriate the vocabulary for this exercise as well, and I will also borrow these ancient observances’ calendar-bounding rule: rather than declare my daytime Twitter attachment as forever past, I state that my Twitter fast shall last the rest of July. Maybe I’ll make it all the way there and want to keep going, but I’ll leave that as an option to pursue at that time.

My hypothesis, my hope, is that I can extract the same volume of good stuff from Twitter in abbreviated daily visits as I would by sitting up to my waist in it all day long, but without the terrible cost of absorbing every piece of like-as-not awful news as it appears. This ever-unfolding disaster lulls me to just stare at my timeline, my finger sometimes making a scab-picking gesture on my phone screen while I beg for the next poisoned crumb. Let me instead consume the whole howling mix in a single, sour shot before bed, and let me rise into the next day refreshed and willing to help change the world, rather than battered over the hours into ineffective weariness by the ceaseless insults and assaults by the world’s worst elements.

11 reactionsShare or reply to this post on Twitter!

An aerial photograph of snow-capped Mount Hood near Portland, Oregon.
“Mt. Hood” by Peter Roome (CC BY-NC 2.0)

Against all good sense, I planned practically back-to-back trips for this month to London, England and then Portland, Oregon. The latter location — my first visit to a Pacific city since the early Obama administration — saw me attend the 2018 IndieWeb Summit, the core annual gathering for the eponymous movement striving to return the long-lost ideal of individually owned and deeply interconnected personal websites to the modern internet.

Spread over two calendar days, this eighth Summit presented its fifty or so attendees with a one-day conference/unconference hybrid followed by a hackathon. On that second day, I spent a little while kicking some of my own code around, chasing down a known bug. But I ended up too distracted by the day’s news to dive in too deeply. I instead used the last hours of the hackathon to gather my notes and thoughts about the first day, and that work became this blog post.

That first morning included keynotes from two of IndieWeb’s founding members, the operator and community manager of the commercial Micro.blog service, and the author of a science fiction novel that features a protagonist fighting global corruption and conspiracy using IndieWeb standards. There then followed a spate of lightning-talk presentations where attendees could share their own recent IndieWeb-based sites and contributions, and I ran through my own work.

In one keynote, Aaron Parecki declared 2018 as IndieWeb’s year of the reader, as he and Jonathan LaCour listed and demonstrated several projects seeking to reimagine and reinvigorate the idea of the news-reader app using web standards and IndieWeb concepts. I was especially struck by the notion of an interactive reader that invites and enables public inline responses to articles, using Micropub to post them to one’s own website and then Microsub to share them with other readers. I hadn’t before this presentation really understood the purpose of Micro[ps]ub, and this potential and powerful use of it struck me like a thunderbolt. I intend to have a look at Aaron’s own realization of these concepts, the now-in-beta Aperture, presently.

From there, I gave myself further homework to once again try grokking Micro.blog. I still don’t really get it, even though I have an account there which dutifully rebroadcasts all my Fogknife posts (and kindly passes replies back to Fogknife as webmentions that it can syndicate locally). My heart forever broken by social-media silos, I’m not really interested in using Micro.blog as yet another “Okay, I’m over here now” social network. I get the impression that it has potential for much deeper use than that, if I can only get my head around it.

On Tuesday afternoon I attended these unconference sessions:

Library implementations for IndieWeb. Jacky Alciné led an effort to check what open-source libraries (and free services with public APIs) exist that already implement various IndieWeb building blocks. You can see the resulting outline and whiteboard grid on the talk’s permanent wiki page.

I loved starting out the afternoon feeling like I’d helped build something useful — not at all my usual feeling when wrapping up an unconference session! Cheers to Jacky for setting up a simple group-task goal that a roomful of hackers could all fill in together.

Improving diversity of the IndieWeb. The demographic mix of IWS was not especially better than typical for an American tech conference, which is to say that more than half the attendees were like me: mid-career white guys with professional technology backgrounds. And so this inescapable round-table topic appeared, and I took a seat at it probably as much out of a sense of personal penance as a desire to help change anything.

Surprisingly, it felt like a productive meeting, and I (along with everyone else who showed up) left with at least one actionable item, as proposed by session organizer Jean MacDonald: this being to challenge myself to bring someone dwelling within a different demographic slot than myself to the next tech thing I attend.

The excellent and thorough notes on the meeting’s wiki page include my recommendation of VM Brasseur’s recent keynote to the 2018 Perl Conference, “The Importance of an Ecosystem”. This presentation uses an ecological metaphor to describe how a technological project’s community cannot just computer away all its problems: it must involve the focused and entirely human-driven work of community management.

At risk of jumping ahead a bit, I should note here that after the IWS sessions ended for the day, I continued on to Donut.js’s monthly meeting just a couple of blocks away. There I found a big, rowdy crowd of technically apt folks with an obviously younger average age than that found at IWS, with lots of women and people of color in attendance.

I don’t necessarily read this as evidence that IndieWeb is doing something wrong that Donut.js does better; I reckon that a lot of the difference comes down to topic. Younger hackers, I expect, tend not to share the same pangs for the re-Berners-Lee-ification of the web as a typical IndieWeb convert. They didn’t live the dream of the 90’s in the same way as one already an adult when the web first appeared, so they have less reason to hear IndieWeb’s call to remix the good parts of the early web back into the modern one by way of contemporary and standardized technologies.

As I would also expect that a younger tech-savvy audience would almost necessarily show more diversity along various axes than a middle-aged one, it does make me think about how much potential community growth exists by making more direct appeals to the younger cohort in one’s field, and how easily a roomful of graybeards can overlook that fact.

A Nonprofit for IndieWeb?! I pitched this session with something like an AMA in mind, where I’d bring in my experience co-founding IFTF and make my argument why I think that IndieWeb could benefit from a dedicated non-profit corporation. I babbled on this topic for a while before Aaron politely and astutely interrupted to suggest that we go around the room for introductions instead. This revealed that everyone present knew more about this topic than me, and I faded into the back row to let everyone else drive. The session ended up going in a direction rather different than the one I’d imagined, but also far from the argument for status-quo that I received in May from my blog post on this topic.

A pleasantly oblique success, really!

IndieWeb for Comics. Jamey Sharp, who co-created the webcomics reader/aggregator service Comic Rocket, wished to think out loud about creating a webcomics reader built entirely on web standards (including but not limited to good old RSS). I took notes for the wiki. And that was pretty much it!

Today I have set aside to explore Portland, and tomorrow I fly home clutching my laptop whose Omnifocus inbox overflows with lists of technologies to read more about. With luck and clear skies, I can make a dent in those while hunched in seat 19A, and I look forward to it.


One final note: as I continue to get more involved with IndieWeb, I really need to hash out my domain situation! IndieWeb encourages its memership to claim a single domain and use it as their personal stamp for everything they do on the internet. I, though, have two domains: my long-held personal catch-all domain of jmac.org, and fogknife.com, which I use exclusively for blogging. My use of both predates my involvement with IndieWeb.

I have noticed that, while I identified myself with jmac.org from the get-go, various other voices within IndieWeb have named my personal domain as fogknife.com when citing my work. And why wouldn’t they? It’s the domain I invite everyone to come look at and subscribe to, after all — the jmac.org website is mostly a static link-brochure and personal archive.

None of this matters a great deal; both domains clearly belong to me, with no confusion, should you land at either one. But I have never intended to present a split persona to the online world, so I should put some thought and muscle in the near future into resolving this.

This was also posted to IndieNews.

10 reactionsShare or reply to this post on Twitter!

A child looks up and weeps as her mother is patted down by an immigration officer.
Photograph by John Moore for Getty Images

When I lived in Maine in the 1990s and early 2000s, I felt proud of its senators Susan Collins and Olympia Snowe, two Republican women who epitomized the state’s independent streak in the national arena. They gained a reputation as bulwarks of moderate and considered conservatism against the encroaching tide of polarized and reactionary politics that had risen steadily since the Reagan administration. But they could not hold the waters back alone, and none of their colleagues stood with them, and so they fell.

According to her Wikipedia entry, Snowe cited hyperpartisanship for her decision to not seek re-election in 2012. (She is replaced by Angus King, an independent who usually caucuses with Democrats.) Her colleague Collins chose to stay, and last year she flared briefly in the national attention as one of only three Republican senators blocking any of the Trump agenda’s focus of wrecking all societal progress built under Obama, receiving more than one spontaneous hero’s welcome after voting against repealing the ACA. But then she voted in favor of the Trump tax bill, openly hurtful for all but the mega-wealthy it benefits. This week she has voiced her support for the Trump administration’s policy of tearing screaming children away from their refugee parents at the border, herding them by the hundreds into concentration camps, condemning them to lifelong psychological trauma in the name of American security.

The airport-hallway applause for Sen. Collins, I dare say, has stopped.

Snowe’s departure from the senate came after Maine elected the Republican Paul LePage as governor, whose political agenda centers on a policy of vetoing, unread, literally every bill that hits his desk — a nihilistic practice he promises to maintain until the legislature recognizes his own absurd demands. As a Maine resident, I would often hear the adage “As Maine goes, so goes the nation”, and it proved true here as well: LePage rode into office on a wave of statewide fear and hatred of immigrants several years before Trump did the same on a national scale. In both cases, Republican lawmakers and voters have shown a willingness to let both men wreck society all they want so long as they continue to pursue the anti-immigrant agenda that so many voters seem to support. LePage remains in the governor’s mansion today.

I don’t know how much further the Republican party can fall, but I do know that it has undeniably crossed a line from even nominal conservatism to the support of outright evil. At both party and individual levels, Republicans will reliably pay any price at all to maintain power in the short term, and they feel free to weaken or destroy any societal norms standing in their way without shame or apology in broad daylight. I therefore can see only two reasons why an American citizen in the summer of 2018 would continue to identify with the Republican party:

  • You have reason to believe that Republican affiliation will raise the fortunes of yourself and your immediate family in the present, and you don’t give a damn about anyone else. (Where “anyone else” includes the entirety of the future, including your own future-residing children.)

  • You delight in seeing punishment visited upon people different from yourself and your immediate family, regardless of whether you believe this abuse will help you personally.

I see the motivators here as a mix of broad better them than me satisfied cruelty with the more subtly poisonous zero-sum philosophy I allude to in the position statement that I have begun to my own public work. Every family torn apart at the border, every classroom massacred, every newsroom shuttered, every working-poor family going hungrier as new tariffs boost prices faster than wages, and — in the distance — the low roar of territorial and sectarian skirmishes around the world getting louder as climate change slowly turns soil into dust. To those subscribing to the zero-sum worldview, each of these elicits only a shrug, and perhaps even a feeling of triumph: More for us, then! As if we’re all just playing a game that must have a loser for every winner, rather than trying to build an ongoing story of human civilization while we all live on this rock flying through outer space together.

If you are an American citizen who identifies as Republican, all I can do is urge you to reflect upon your place in the global community you were born into — starting with the acceptance that you and yours do belong to the world, at least as much as to a nation — and realign your philosophy appropriately. Your political party is not your family, or where you live, or what you do for a living, or who you pray to. Blessed to live in a democracy, you can shift your political alignment with a word — if you speak that word with conviction, and then let that word resound and carry you through your future actions in the voting booth and beyond.

If, having thought it through, you still consider membership in the Republican party to best represent your beliefs, then you choose to stand in opposition to mankind’s survival beyond your own generation. And I say: to hell with you, and to anyone else taking up the après moi banner of ultimate selfishness. I will continue to do all I can to make sure that all your regressive, destructive work against the continuation of the human story is repaired and rebuilt. Your cruel and cavitary philosophies filled in and forgotten, except as an object lesson for the very future generations whose existence you today work to prevent.

The door remains open. Let go of your received wisdom, read a book, read a newspaper. Take a nice vacation and visit a faraway city, perhaps. Consider everything actually happening all around you, both nearby and at a distance, with as clear sight as you can manage. You can renounce the Republican name any time, and rejoin those working to build the future rather than tear it all down. But if you cannot, then I want to see all your efforts die in futility.

5 reactionsShare or reply to this post on Twitter!

Lately, some of my most positively received posts to Twitter have involved thoughts on work-communication etiquette I have learned or refined in recent memory. I shared three last month, so I shall reprise them here.

In phone conferences, use Jeopardy! timing rules. Like the guests on the well-regarded American quiz show, when someone asks a question to which you know the answer, wait until the asker finishes before buzzing in with your response.

Yes, even if you know exactly how the rest of the question’s gonna go based on the first few familiar words. Perhaps you feel you do everyone a favor with your efficiency. I am here to tell you that from the point of view of everyone else on the call, you are just interrupting people repeatedly, and you sound like an ass. (Further, when a man pulls this on a woman, he sounds like a sexist ass, to boot.)

This behavior also runs the counter-intuitive risk of making the meeting longer — or even delaying the whole project! By shutting down the question after hearing five words and assuming you know how the subsequent thirty-seven will go, any nuance, secondary queries, or other unforeseen parts of the question will likely remain unasked. The asker will get back to work with the answer you shoved at them, and it might end up leading them down a wholly wrong path because the question they were going to ask was two degrees different than the assumed one you answered. But they didn’t know that, and you didn’t have the patience to find out, and so here you all are again on another conference call about why the project’s late.

So, yeah. Please show a little patience, on those long calls!

Favor Thank you for your patience over Sorry I’m late. The former phrasing is no less true or polite than the latter, and it shines positive reflection onto both parties at the start of the conversation, rather than negative. An overt “You display virtuous patience, and I feel grateful” versus an implied “You radiate impatience, and I regret my involvement.”

Hanon Ondricek replied to my tweet on this topic with this cartoon by Yao Xiao which compellingly argues that this principle extends generally to all sorts of social situations where a display of gratitude can prove far more buoyant than a downer apology.

Avoid Why aren’t you using [X]?. Too often I see this formulation when a sincere newcomer asks a community why their code doesn’t work, and provides the non-working code for examination.

Yes, the use of a certain facet of the language in question — let’s call it X, here — might indeed represent the best solution, and we might do the newbie a favor to educate them. But packaging your advice as “Why aren’t you using X?” basically says “I know you haven’t learned about X yet, and I want to hear you admit your ignorance.” Or, worse: “Please explain to me why your code is bad and you are dumb?” In either case, it insults the learner for having the gall to ask questions, and can discourage them from seeking any further advice (or, indeed, continuing to use the technology).

Please consider couching your advice in more positive language, instead. For example, “Have you considered using X?” encourages a hopeful reply of “No, what’s that?” rather than a helpless “I don’t know what that is!” (with an unspoken “I guess I should have already known about X before coming here, and now I feel pretty stupid”).

Note that you don’t have to type out a reply in full, especially when helping with common newbie mistakes; there’s no sin in pasting an appropriate FAQ URL at the petitioner, when available. (And if no FAQ exists to link to, well… that’s on you to fix, perhaps?)

Share or reply to this post on Twitter!

We find ourselves already one week into a travel-and-conference-and-meetup-packed month, unfolding thus:

I shall attend the next Oxford and London Interactive Fiction Group meetup at 2 PM on Saturday, June 9. Yes, only some thirteen hours after I publish this post, so I acknowledge that I won’t see you unless either you’re already planning to go, or you’re in London right now and feeling spontaneous. If you do find yourself at loose ends after the queen’s birthday parade or whatnot, come on by to see Graham Nelson and Emily Short presenting abouting upcoming Inform 7 features.

Eventually I shall return to New England, because the cats get hungry. But I will grow restless for more interactive fiction meetups and so board the northbound purple line to attend The People’s Republic of Interactive Fiction’s June 20 meetup at MIT. “We might look at the XYZZY award winner,” says the announcement, “or we might do something else!” If you like doing either of these things, do join me.

The cats can only eat so much, though, and therefore shall I continue my interrupted east-to-west flight all the way to Portland, Oregon to attend the 2018 IndieWeb Submmit on June 26 and 27. I have written about my growing obsession with the IndieWeb already, and genuinely look forward to meeting both its principal founders and my fellow obsessives in person for this two-day conference.

Smackdab in the middle of IndieWeb Summit I will take a break from all this internet talk for some good old-fashioned internet talk at Donut.js, a monthly technology and donut seminar elsewhere in Portland. I found out about this accidental place-and-time confluence only today, but having heard only good things about Donut.js in the past I can’t help but try rolling it into my schedule as well.

Finally, I should mention Providence Geeks, a decade-old, open-to-all group I have only recently discovered. I finally made it out to one of its own meetups, two months after moving to ol’ PVD myself, and can report feeling very at-home among the pleasantly diverse crowd there. I absolutely expect to attend its future events with steady frequency for however long I remain a Providence resident.

1 reactionShare or reply to this post on Twitter!

Starting with the most recent release of my Webmention library for Perl 5, I have begun adding a quiet political position statement to my open-source software projects. This comes in followup to my previous post about mixing politics with business — or, rather, the wisdom of not masking the politics already inherent in running a business. I consider my open-source work an extension of my own professional identity, and as such, I felt called to make plain the ways that it intersects with my politics.

I bring attention to this here in the spirit of transparency. In practice I attach the message at the very end of the software’s embedded documentation, after all the contributor-credits and license information, and certainly after all the programmer-useful reference text, because I don’t want it to leap up into the way of anyone trying to use my software. But as I also don’t wish to treat the message as an insidious hidden payload, I want shine a light on it with this post.

The current draft of the message runs thus:

My ability to share and maintain free, open-source software like this depends upon my living in a society that allows me the free time and personal liberty to create work benefiting people other than just myself or my immediate family. I recognize that I got a head start on this due to an accident of birth, and I strive to convert some of my unclaimed time and attention into work that, I hope, gives back to society in some small way.

Worryingly, I find myself today living in a country experiencing a profound and unwelcome political upheaval, with its already flawed democracy under grave threat from powerful authoritarian elements. These powers wish to undermine this society, remolding it according to their deeply cynical and strictly zero-sum philosophies, where nobody can gain without someone else losing.

Free and open-source software has no place in such a world. As such, these autocrats' further ascension would have a deleterious effect on my ability to continue working for the public good.

Therefore, if you would like to financially support my work, I would ask you to consider a donation to one of the following causes. It would mean a lot to me if you did. (You can tell me about it if you'd like to, but you don't have to.)

I don’t say so in the text of the message, but I chose those three charities because, as a group, they possess pretty good time-scale coverage: today, tomorrow, and long-tomorrow, respectively. This falls in line with my own overall charitable giving strategy.

As for the message’s content, I obviously decided to make it about me, armoring the larger truth I wanted to share with the unassailability of expressing it through a personal lens. As much as I enjoy talking about myself, I found this a challenging exercise: acknowledging that I count among the least vulnerable groups within my society, but then resisting the too-easy conclusion that I therefore have little to lose from the threat of that same society’s decay.

Just as I wrote, the three closest human members of my legally recognized family all find themselves with less certain personal stability because of the current American government. My wife is a civil servant, a class of citizen under current and recent threat by a populist government whose supporters delight in such displays of self-diminishment. Her career advancement has already been blocked more than once since the start of 2017, always due to impulsive decisions made by highest-level officeholders that affect whole agencies. Meanwhile, both of my older brothers, now in late middle age, have cognitive disabilities that preclude full-time employment. As such, they benefit from the meager but extant health-care programs the United States provides for its needier citizens — programs that the controlling party has already undercut, and continues to assault.

Should any of these employment or support structures fail, then I would expect much of the free time and attention I currently have to work for the public good — whether on open-source software, or for the non-profit company that I help lead — to disappear. I would instead have to turn that attention to keeping myself and my family afloat. I could do it, and I’ve done it before, but I hope I don’t need to commit permanently to it. I do in fact believe that this outcome would fall into the worldview of the bastards in power, who believe that all is in its place only when each person looks out for number one, and to hell with everyone else.

And I want to resist that, as much as I can, anywhere that I can.

5 reactionsShare or reply to this post on Twitter!

A photograph of the waters of Provincetown at sunset. Boats silhouetted against a blazing orange sky.

One of my freelance consulting business’s main clients runs a seasonal passenger ferry between Boston and Provincetown, Massachusetts. Very early in our professional relationship — perhaps before anyone signed any paperwork, some five years ago — the company’s head invited me to its offices, located right on the city’s waterfront. He toured me through one of his docked ferries, and then — this being a summer day — we also came upon a small crowd of his own customers, passing the time before the boarding call.

He smiled with a particular sort of satisfied warmth at the sight, the expression of a small business owner seeing their customers both as familiar individuals worthy of affection, and as a living score-tally proving that the revenue-generating machine they built continues to operate well. Gesturing at the crowd, the owner said to me: “A lot of lesbian couples today! That’s always a good sign. They’re some of our core clientele!” The unexpected directness of the observation struck me bluntly, and I don’t recall how I immediately responded.

Of course he spoke only the practical truth: Provincetown (“P-town” to the locals) is a decades-old wellspring of LGBT culture in the United States, and has long served as a welcoming tourist destination for queer couples. I received a little education about it that day, starting with my client’s admiring if unvarnished description of his own customer base.

Five years later, writing in a rather murkier atmosphere that encourages the drawing of bright lines, I have lately wondered how deeply I should let politics affect decisions or declarations that I make in my own small business. This includes pondering policies I might wish to overtly set about the political positions I expect from anyone who I support with my work. Planning ways to start addressing this, I wondered whether my current clientele might pass qualifications I may lay down. Happily, a little reflection shows how they don’t conflict with my personal politics: one client gets a pass for not basing its headquarters in the United States, and thinking about the other client quickly brought the story of that Boston afternoon to mind.

And then it struck me: my soon-to-be client had tested me, that day. That blunt observation about his valuable tourists on the dock wasn’t merely showing off his blasé horse-sense regarding the particular skew of his service’s demographics. Through his truthful but surprisingly direct utterance, he gave me a little shove, and watched to see whether or not I’d fall down.

The purpose of my visit, after all, involved establishing a business relationship that he knew he’d have to invest not just money but a great deal of trust into. He, rightly, had no desire to walk into that investment with anyone who had some kind of problem regarding certain attributes his customer base possessed. So, at our first face-to-face meeting, he hit me over the head with it. However I may have reacted to the push, I must have comported myself well enough, because we did soon thereafter ink agreements that have brought our respective companies years of mutual benefit.

All this ends up a lot less sad or angry than the post I had in mind when I sat down this evening, with this beam of light from the achingly recent past shining in to warm my battered heart. I find myself feeling freshly unafraid to allow my projects to express my politics, especially when my business benefits directly from the world I want to help create through those politics. Why yes, I do want a more progressive society that gives me and my loved ones healthier and less stressful lives, and thus allows me more time and attention for my various professional and creative endeavors. (And if that means more security and economic freedom for everyone else in the country too as a necessary side effect, oh well.)

I plan to feel less shy about making this more clear, across all my published work. And I will in so doing invite anyone who takes issue with this stance to keep on walking.

1 reactionShare or reply to this post on Twitter!

My IndieWeb call to action from a few days ago drew down a stronger and wider response than this blog’s articles typically receive, and I acknowledge this generous feedback with humility and gratitude.* As I wrote then, I’ve been aware of the IndieWeb movement for only three months, so I now shift my stance towards listening to and reporting this response, rather than pressing my initial point any further.

Other than general words of appreciation (which I appreciate!), the response in both written replies and followup IRC discussion† largely centers around two complementary counterpoints:

  1. While the IndieWeb group began its work many years ago, its resultant technologies remain very young — Webmention’s W3C certification dates to early 2017 — and they’re still only taking root in the form of varied and tested implementations. Its exposure to the public grows no faster than strictly necessary. Why rush the process, and risk spoiling things?

  2. The core IndieWeb community focuses on development, not public outreach. It falls to second-order groups to organize around these developed principles and technologies, implementing their own project-specific goals. This will carry the welcome side-effect of testing and proving these technologies — and bringing comfortably gradual exposure to them as the basis for successful applications, rather than mere standards and theories.

    The world already starts to see this with commercial efforts like Micro.Blog, and the wide-open land invites the invention of more services like it. (I might include non-commercial but stable services like Bridgy and Webmention.io into this class, as well.)

I feel it not my present place to vociferously agree or disagree with these points, which do not necessarily conflict with the observations I voiced in my previous article. I will say how impressed I feel that the core community clearly possesses such a strong sense of cohesion, despite a lack of formal organization, to produce these consensus-based counterarguments so efficiently.

And I must admit that they have already inspired me start dreaming up new ways that I might contribute further to IndieWeb on its own apparent terms.

This was also posted to IndieNews.


* It also exercised my hand-rolled backfeed software to a great degree, with webmentions rolling in from a number of non-Bridgy sources for the first time — not surprising, I suppose, for a post about the IndieWeb itself! — and breaking my young and fragile libraries this way and that. I wrote many patches very quickly, and for this opportunity, too, I feel humbly grateful.

† Of all the Freenode IRC channels with populations of more than 100 that I’ve spent any time on, the people of #indieweb have proven among the most friendly and welcoming, always quick to answer newcomers’ questions with no trace of mockery, feigned surprise, or bad taste. This has helped a great deal with my own ever-deepening interest in and respect for IndieWeb’s principles and goals.

5 reactionsShare or reply to this post on Twitter!

A photograph of a lake with a small island in it, fluffy low clouds hovering above.

When Twitter announced its plans to start asphyxiating all extant third-party clients this summer, I decided I would never again let my heart get broken by a web-identity service that invites me to invest so much of myself without offering matching levels of ownership and control. I have grown utterly weary of the every-few-years trudge of picking whatever service seems most agreeable at the moment, building up my network once again, and then enjoying things for a time while waiting for the rot to set in after management shifts and shareholders start grumbling.

By coincidence, at the very same time Twitter announced its euthanasia plans, I stumbled upon a promising way out: a chance to reclaim my own online identity without simply retreating to my own website as a digital hermitage, or otherwise turning my back on the ever-dimming but still-glowing promise of the interconnected web. This route exists through the long, quiet labor of technically savvy, politically realistic hobbyists who really do seem to be onto something, though they also seem hesitant to grasp the full potential of it. Driven by my usual selfishness, I want to help them change the world, because that will help me too.

I’ve mentioned IndieWeb here recently, introducing this blog’s new experiments in a “backfeed” that pulls in and reprints reactions to local content from across the web. Backfeed represents only one of IndieWeb’s core building blocks of technologies and protocols that this small, globally scattered team has spent the past several years developing and refining, to the point where it today boasts multiple W3C recommendations to its name. I find Webmention the most engaging of these, the admirably simple protocol for mediated inter-website communication that makes backfeed possible.

IndieWeb’s mission envisions a web that uses standards like Webmention to marry the powerful technologies and diverse cultures of the modern internet with the original promise of what we once called the world-wide web. In this democratic vision, everyone self-publishes to their own websites — each with its own domain name — and IndieWeb tech enables not just connectivity but active intercommunication among them, bringing about a sort of federated social media where everyone communications freely and yet still owns every bit of original content they share.

For all this driving idealism, IndieWeb impresses me with its practice of modern-internet realpolitik. While it turns its nose up at “silos” like Twitter and Facebook, IndieWeb philosophy eschews any great rallying call to throw off the yokes of these undeserving owners of your content. Instead, IndieWeb accepts silos’ present ubiquity as a reality to work with, admirably resisting the pure-nerd stance that would see them as damage to rout around. This working compromise is epitomized by Bridgy, a service that uses various silos’ own APIs (plus, I reckon, a wee bit of screen-scraping) to convert tweets, Facebook updates, and other silo-stored content into nice, platform-neutral webmentions. Via Bridgy, websites like mine can work with sites like Twitter as a peer — even though the latter has no interest in learning what a “webmention” is, much less bother sending one to me.

At the start of 2018, the IndieWeb community calculated that websites had, since the protocol’s inception, sent around one million webmentions. And that’s great! But: fully 95 percent of them came from Bridgy alone. This signals that, so far, the userbase of this core IndieWeb technology comprises only people like me: enthusiasts. Getting ourselves into a Berners-Lee headspace, we knit up our own hobby-horse solutions for consuming webmentions, and we might even dutifully send them out as well. (Ideally, Webmention-aware blog software will offer a fresh webmention to each and every URL that a new post links to.) But for now, it all feels like pantomime. Any website not run by one of the world’s very few IndieWeb-obsessed people will have no facility for receiving webmentions. (There also lurks the problematic nature of Bridgy, itself an unpaid hobby-project, becoming a monolithic service within a supposedly federated vision.)

Webmention, like most every IndieWeb technology, hides its light under a bushel of deep obscurity. I discovered IndieWeb three months ago by happenstance, and since then exactly zero of my fellow web-working professionals with whom I’ve brought up the subject had heard of it before that moment. On the one hand, I find this truly fascinating: here is a geographically diverse group of deeply caring technologists who have not just invented but, over most of a decade, refined and iterated tools for a truly democratized web. They have developed them to a point where the web’s core standards body has recognized their merit, and — more to the point — where a jaded lifelong web-engineer like me can so much as glance at them and immediately feel amazed by their coiled-spring potential, suddenly hungry to start working with them myself.

And this leads to my second reaction, which is the deepest impatience and frustration with IndieWeb itself for having developed tools to very literally revolutionize the web, but then continuing to not strive for a level of public visibility beyond that of model-train enthusiasts, perhaps, or ham-radio clubs. Smart, motivated people gathering regularly in the shared pleasure of their craft, with these quiet gatherings having negligible effect on the world at large.

An acceptable stance during the long incubatory period for new technologies, certainly! But through Webmention and other W3C-certified techs, IndieWeb has proven itself ready for a far more public debut. If it truly wants to help make real the federated web that it envisions, it now needs to show a little more initiative in getting its message out, rather than staying content with having nerds like me accidentally stumbling across it from time to time. IndieWeb has done the work to prove its message, and now it must somehow push it out upon the modern, cynical, commercially exploited web, showing it a path — a real path, well-defined and ready to explore! — to a better, less broken, more democratic web.

That will require quite a lot of coordinated amplification. So: I call upon IndieWeb to get organized. I want to see at least one real non-profit organization formed out of it. I fully believe that IndieWeb already has, through its years of published hard work, the ability to attract and build a diverse board of highly influential directors who care about the web’s future. From there, it could bring the attention and material resources that IndieWeb not only requires but has long deserved in order to start really reshaping the web at large, letting its ideas at last reach outside the rinky-dink hobby-sphere that currently confines it.

I recognize IndieWeb’s status as a truly global movement, as well as the fact of my own mere three months of involvement with it, so I decline to dictate any specific next actions here. But I can describe my experience in co-founding a non-profit corporation over less objectively important matters. Through that organization, various loose and hobbyist-led services that I have cared about for decades now have elements of basic organizational grounding, such as a bank account, legal representation, and presence on various charitable-organization lists. This corporation has central and easily-discoverable points for public communication and social media, and it can accept tax-deductible donations and sell branded merchandise. Most importantly, it can organize programs, raising funds to fuel them and attracting talent to staff them, all under a unified, recognizable, and trustworthy identity.

IndieWeb deserves at least as much as all this, and I daresay that it must have them in order to start truly effecting change on the world. Whether it intended to or not, IndieWeb has forged a set of tools that — with next-level leadership, attention, and funding — has a real chance to start making its vision real on a large scale, pulling the web’s power away from a handful of mile-high profit-seeking centers, and redistributing it to individual voices. While this isn’t my charge to lead, I pledge to help however I can, and I begin with this note of encouragement borne on equal parts hope, personal excitement, and benevolent impatience.

This was also posted to IndieNews.

27 reactionsShare or reply to this post on Twitter!


Previous post: I am playing This is the Police