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.

4 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.

Share 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.

4 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.

26 reactionsShare or reply to this post on Twitter!

Photograph of a protester holding a sign that  reads 'Demilitarize the police'.I picked up This is the Police in a Playstation Store sale a few weeks ago. I had never heard of it before, but I liked its trailer. Now that I think of it, I notice its similar style to Night in the Woods’ trailer, which still gives me chills. (And, of course, I loved that game.) Both trailers flash rapidly through such a heterogenous variety of scenes, leaving me mystified and intrigued about the game and the experience of playing it, rather than taking a trailer’s more typical tack of checking the boxes on survey of genre, style, and content expectations. All right: I suppose I must appreciate that!

Many hours in — at least a dozen, perhaps twenty or more by now — I can say that Police is all but destined for my 2018 game-of-the-year list, even though I doubt I could generally recommend it. The game feels far too long, inconsistently signals its narrative shifts with an often opaque UI, and its core game loop rubs constantly against its ongoing frame-story with rubber-squeaking friction. Most galling, the Austrian-developed game blunders into sensitive topics about American policing, race relations, and gender politics with stunning clumsiness, again and again. And yet: not since I played Zeno Clash eight years ago has a console game that I began playing on a whim, with zero prior knowledge, hooked me so thoroughly and returned so richly on my invested time.

In short, this game is amazing — literally, in that it amazes me. I feel pretty sure it’s also bad in that everyone I know would probably hate it, and would seriously question my judgement for praising it. Believe me, I’m right there with them.

At the center of Police lay a perfectly decent police-dispatch simulator. Calls come in; judge their veracity and urgency based on the circumstances, and choose how many officers to send, with sub-choices about deploying support units (like a SWAT team or a police van) and whether to send experienced personnel or greener ones. Cops will resolve most situations on their own, but some calls challenge you with a little two- to three-page mini-quiz about handling the situation. (These are not hard, with generally one “act like an aggressive but level-headed law enforcer” choice against two silly or otherwise weaker choices.)

Do well at this day after day, and the mayor will reward you with budget or salary increases; embarrass him, and face browbeating and staff cuts. You also need to maintain stasis with local organized crime syndicate, looking the other way from time to time (despite the mayor’s distaste for this) to keep that pot from boiling over. Finally, you must consider your officers’ mood: treat them well and they’ll execute their duties efficiently, but work them too hard and they’ll screw up, slack off, or just quit. So far, all this sounds like a pleasantly competent variant on any Hamurabi-style management sim, something that one might have played on a pure-text terminal or on a BBS 35 years ago.

But This is the Police layers surprises and disruptions on this comfortable loop. In a delicious turn, it wastes no time at hinting at its own depths: before you begin your first day, the game prompts you to choose a song. Huh? It gives you a unique, single-task UI — one of many that the game will trot out, over its course — for thumbing through your character’s collection of jazz and classical LPs, picking which to to pop on his turntable. Otherworldly abstract art decorates the album sleeves, but the music is real. Once the chosen string quartet or clarinet band-leader begins to play, only then does the view amble over to the core police-dispatch UI (which exists in-world as a literal scale model of the city that the chief keeps in his office, contemplating like a scheming Game of Thrones character while he works). This wholly unexpected flavor instantly gives a bland management sim a somehow electrically ironic and fraught air, a feeling like anything could happen.

I loved this initial Minority Report-style hook very much. It immediately established a bond of trust between me and the game that it held far more than it first appeared, and would reward my spending time with it while it unfolded. And that is why I continued playing when the game flung itself off the rails on only the first or second pass through the dispatch-loop when the mayor called with a special request: an increase in racially motivated violence across the city had made him worried about cops being targeted, and therefore I had to fire all my black officers and replace them with whiter ones before the weekend. Uhhhh. I ignored that directive entirely, and thus started off on very poor footing with City Hall, which retaliated with the first of many capricious budget cuts. But by this point several in-game days had past, and I had kinda fallen in love with everything else about it. I kept going.

It became clear, over time, that this bizarre event was a card pulled from one of many “event decks” the game will draw from in order to keep the player from ever feeling too balanced and comfortable. In one deck, the mayor’s office calls with simon-says requests to arbitrarily rearrange your force somehow. The game presents these calls with wry cynicism, depicting a mayor far more concerned with appearance than practicality, but they mostly have positive aspect: Hire more women in order to mollify an increasingly feminist constituency, or make sure to have at least three Asian-Americans on duty the day a foreign delegation visits, or send a bunch of cops off to training (whether they need it or not) to combat public perception of the mayor’s own incompetence.

I assume that they developers made a matrix of all the varieties of staff-reshuffling the cowardly mayor could demand, wrote some appropriately eye-rolling excuses for each, and dropped that whole event-deck in. That’s fine in concept, but boy, what a note to start on, in my playthrough. All those other mayor-calls I have fielded, while cartoonish, at least have a foot in plausibility. “Replace all your black cops with white ones immediately” is just not a thing that could ever happen so casually in any American city, not even in fiction, not even in parody. It’s the kind of nuclear–bomb event that would make sense only if the entire story focused on it and its aftermath. I can’t shake the feeling that its presence as just another random event comes from an inside-out misunderstanding, by a European developer, of the very real and very painful tensions and mistrust between the police and black American communities; most any American developer would laugh sourly at the thought, and simply elide that particular card.

This sort of causal political clumsiness happens over and over, involving not just African-Americans but oversimplified “feminists”, upset “LGB” crowds (to use the game’s term), and so on. TV-tropey rape and murder rolls in for lazy dramatic stakes-raising. I cringe, and then I keep playing because the game as a whole is so strange and so good, and I’d lie to say that its half-baked politics don’t end up accentuating all the strangeness I find so compelling. Further, the game’s convinced me its heart is in the right place, even if it expresses itself clumsily sometimes. A small counterexample: you’ll often receive calls during the normal game mode that boil down to “I saw a black guy! Help!” and you learn that the most efficient way to deal with these involves politely ignoring them. Maybe that shouldn’t feel good, but given current headlines, it kind of does anyway.

And here I’ve written 1,500 words so far about a game I’m supposedly halfway through, which leads me to the last I-love-this-horrible-thing point I’ll cover in this post: This game is long. Probably too long, possibly way, way too long. It offers no manual save-files, instead using a system like The Last Express where you can rewind time in week-long chunks and try for better outcomes (with, mercifully, the same random seed applied*). Since bad outcomes can leave you sufficiently resource-poor to make gameplay more frustrating than fun, you’ll likely rewind rather often, adding even more length to the game as you call repeated do-overs on particularly rough weeks, the resolution of which can take up yet another real-world hour or so.

The frame story names goals that sound outrageous at the start: the player character has six months to retirement, and wants to amass $500,000 before then, so as to settle a dangerous debt. At first, seems impossible that the game literally means that you’ll go through the dispatch-loop 180 times, and will need to somehow net an average of $500,000 ÷ 180 = $2,777.78 per day. Not when you start with a $1,000-per-week salary, and the music-selection screen actively encourages you to spend hundreds of in-game dollars on new music (flipping through a lovely paper catalog, in just another the game’s so-lovely, so-bizarre one-off specialized interfaces). Not with so many other purchasable perks for keeping your bosses and subordinates happy. Surely, surely the player’s cash is for discretionary spending, and let’s just see where the story takes us.

I hit my 90th in-game day last night. After a slow start, I’ve a better idea of which money-making side-schemes I can dip into without upsetting the cart too much. My character’s bank account lies just south of $200,000. I… I think it means it. This is absurd. I can’t possibly be expected to see this whole flaming mess to the end.

I love it.


* I assume that every player experiences the same prewritten overall set of story arcs, but that the “encounter decks” the player works through are uniquely shuffled for every freshly started game. I’d be curious to know if other players began their games with the same alarmingly bizarre request that mine had.

1 reactionShare or reply to this post on Twitter!

Close-up photograph of an onion slice.

I’m pleased to announce two new open-source code libraries for the Perl 5 programming language, my first contributions to the CPAN in well over a decade. They represent a significant milestone in a side-project I’ve quietly but obsessively pursued for the last couple of months, some effects of which have become immediately visible on this blog.

Getting the nitty-gritty out of the way: Web::Microformats2 can parse, query, and serialize HTML documents marked up with Microformats2 metadata. Web::Mention provides a Perl object representation of Webmention-adherent HTTP requests, with methods to verify, determine authorship, and extract content from valid mentions. Both modules are free and open-source, released under the MIT license.

The modules bring to Perl two of the many “building block” concepts espoused by IndieWeb, a relatively small but worldwide community promoting technologies and policies that encourage people to self-host their web-based content. I have a lot of thoughts about the surprisingly impressive and frustratingly obscure IndieWeb movement that I plan to explore in a future post. For now, allow me to describe my specific attractor to it, and how I’ve implemented it for the sake of my own blog.

After I saw it in action on Watts Martin’s blog in February, the particular IndieWeb concept of backfeeds struck me as a killer app, and I knew immediately I wanted it for Fogknife. A website with a backfeed pulls reactions to its content from across the web, sorting them all together and representing them meaningfully on its own pages. This felt like an obvious next direction to move in after my brief experiment with Disqus and my subsequent and somewhat more successful use of posts aware of their own Twitter-links.

Starting a couple of days ago, Fogknife began running on an experimental and unreleased branch of Plerd. It uses both of my new Perl modules to make backfeeds possible, and you can see a live early example underneath this post about my recent read-through of a new Odyssey translation. All the facepiles and comments come from Twitter reactions to that article. (The bridging step between the suddenly IndieWeb-enabled Fogknife and Twitter, a silo that doesn’t give a hoot about any of this stuff, is the aptly named Bridgy service run by Ryan Barrett and Kyle Mahan.)

I consider these modules unstable and fragile, and use Fogknife as their live-fire proving grounds — via the Bridgy-fed backfeeds as well as the manual webmention-suggestion form that currently appears under every post. I expect therefore Fogknife’s support for webmentions and backfeeds to start out rather wobbly, but I do plan to continue improving it by increments, with all such improvements carrying over into new releases of the public Perl modules as appropriate.

When everything seems reasonably stable, I’ll follow up with an official Plerd release so that other bloggers may squeeze similar magic from my humble little publishing platform. Until then, I hope that the rather nerdier Perl modules will prove interesting to my fellow web-worried programmers.

13 reactionsShare or reply to this post on Twitter!

The lid of a silver MacBook Pro, covered with all the stickers described in this article.

Ashrind the MacBook, subject of last week’s post, has returned to my hands from its likely final visit to an Apple Store with a healthy new battery, a good-as-new keyboard, and — I hope — a few more years of viable use. Before I left it at Providence Place, I took the attached picture of the stickers it has accrued on its lid. How about I share the stories behind them, in celebration of Ashrind’s continued resistance of digital dotage?

Even though this laptop has served as an inseparable companion since 2012, I didn’t start decorating it before early 2016, and the bulk of its glued-on accoutrements date to only the last calendar year. Never really one to sticker up a laptop or a car or the backs of street signs near my house or anything, I didn’t become a laptop-decorator until the role was thrust upon me, as I shall now relate.

Duck Duck Go: In early 2016 a community manager at Duck Duck Go noticed that my bespoke blog software makes DDG its default search utility, and mailed me a stack of these stickers in recognition.

It took this unexpected act of pleasantly personal corporate outreach to get me to consider pasting any stickers at all to my heretofore unblemished MacBook lid. It seemed more like a badge, though, an emblem with a tiny true story that would make me smile a bit every time I saw it, far more than a typical glue-backed company logo from a conference goodie-bag or whatnot. So I stuck it on.

Black Lives Matter: A whole year after receiving the DDG stickers, I purchased and affixed this one as a reaction to Jeff Sessions becoming U.S. attorney general. I wrote a Fogknife article about all this, at the time. Certainly, I feel today about the slogan and the movement to which it refers exactly as I did then.

Since this represented the first time I sought out and obtained a sticker with the express intent of laptop decoration, it had the unavoidable side effect of opening the door to all the stickers that would follow.

National Park Service: First of all, I should note that this sticker looks just awful after more than a year of rubbing against the ribbly little villi that line my bag’s laptop-sleeve.

Vinyl stickers resist these destructive effects of my bag’s protective nubbins, I have learned, while paper stickers are all too happy to give up their ink to any such persistent source of friction. By continuing to display this sticker I realize that I mark my laptop as the gallery of a first-timer stickerer, and really I ought to show a modicum of corrective dignity and just peel this one off.

As to why this huge arrowhead claims this corner in the first place: in late January 2017, four days after Trump’s inauguration, the Twitter account of the Badlands National Park posted a bunch of climate change facts. Observers tended to interpret this as a doomed but meteor-bright act of defiance against the incoming anti-scientific administration, which had wasted no time in ordering federal agencies to stop educating the public about global warming.

The tweets, of course, vanished within hours, even though their publication had made news headlines around the world. I felt very moved by this bravely futile candle held against the flood of New American Ignorance, and I wondered if the likely self-sacrificing act of this anonymous federal employee would turn the logo of the National Park Sevice into a sign of resistance. I gambled a sizable sticker-spot on it.

The Apple Store employee who checked my laptop in last week asked me if I worked for the Park Service, and I said “no”, feeling unmotivated to offer any further detail. So, no, I don’t think it ever really caught on, not even with me.

Perl 5: Even though I use the language every day, I’m not entirely sure how or when the velociraptor got adopted as a co-mascot for Perl 5 alongside the hairy old O’Reilly camel (and not to be confused with Perl 6’s butterfly, or the stylized onion that represents both languages and neighboring territories). But, I do like it: it embraces Perl’s reality as a dinosaur among practical programming languages, but one that can shred through work quite efficiently when necessary. (And which can also make a frightfully bloody mess, if deployed carelessly…)

Anyway, by the time I put my third sticker on Ashrind I could tell where things were headed, and I wanted to rep my beloved and favorite general-purpose proglang.

“Praise Love”: This candy-colored and vaguely chthonic goaty friend comes from the hand of Gloombones, an artist whose ouvre of gooey happy-necromancy cartoons I discovered early last year. Embodies no meaning to me other than its own self-evident grinfulness.

Last week at a coffee shop a little girl ran right up to this sticker, practically planting her face on it, agog and delighted. Unsure how to react to this I kinda just waved hello, and then her mom ushered her away and out the door wordlessly.

Empire Tea & Coffee: My standby coffee shop in Newport, Rhode Island, the sleepy seaside city I lived in for over three years, and where I continue to rent an office. Nothing much to add here!

Interactive Fiction Technology Foundation: Recalling my positive feelings at Duck Duck Go showering me in vinyl stickers, I supported my nonprofit buying a sticker-stack with our own logo, and naturally I affixed mine the moment we received them.

We’ve sent a few others around, but not in any habitual fashion, let alone an organized one. We really gotta remember that we have these! People love stickers, I hear.

CRU Cafe: During a recent visit to this classy corner establishment in Newport, a barista approached my table and handed me this sticker while complimenting the others. I am an easy sell.

And that filled up the last space, so those are all of Ashrind’s sticker-stories. (Unless I peel that National Park Service one off, anyway…)


Previous post: The two best computers I’ve ever owned