m. c. de marco: To invent new life and new civilizations...

Pasted and Patreonized

I set up a Patreon account sometime last week, because I was resurrecting Paste from the dead and some Paste fans who also use Patreon have encouraged me to sign up more than once. Of course I’m not so patreonized that I would give my Patreon site a real launch or do any of the things suggested in the many emails I’ve gotten from Patreon over the course of the week since I signed up, but I did finally get around to making a post this weekend about the rebirth of Paste. It said more or less the following:

Paste was a client-side pasteboard app I wrote for App.net back in the day. When App.net went down a couple of weeks back, all my App.net apps went down with it. (The latter was how I found out App.net was being shut down and you’d better get your data out before…oops.)

Fortunately, I’d gotten onto pnut.io, a similar social network, back before the rush of App.net refugees, and the API had matured enough since then that I could get Paste running again with just a few tweaks. The new Paste is up at paste.mcdemarco.net.

In honor of the near occasion of internet privacy last week, I made sure Paste also works at the secure version of the URL: https://paste.mcdemarco.net.

Note that the new Paste requires an invitation-only pnut.io account in order to save pastes.

I have ideas for some more Patreonizable projects: perhaps finishing the hypertext novel I started in November, and definitely finishing the custom playing card generator I’ve been working on more recently.

Rogue 504

Last weekend at Arisia I got to teach some 504 (the modular board game by Friedemann Friese, the creator of Power Grid). Although I was prepared to teach any of the 504 different games, or “worlds”, I ended up teaching the introductory world, 123, three times instead. On the upside, everyone seemed to enjoy 123, and not once did we get anything wrong—a perpetual problem with 504.

As part of my preparations (setup is one of the most time-consuming parts of 504, especially once rules-scrying has been eliminated by 504rules), I did a bit of pimping of my copy of 504. Here it is with a deck box made out of an old chocolate box, 5 dollar-store screw organizers for player pieces, and one bead organizer for the remaining bits:

504, organized

Also this week, Peter decided he wanted to see Rogue One. (Minor spoilers ahead!) I went in with the dim impression that the movie was going to provide some back story for Rey—the butt-kicking, Force-overclocked Mary Sue character from the last movie (“Star Wars: The Force Awakens,” for those no longer keeping track). So I spent much of the movie uncertain about which Death Star it was this time, and which original Star Wars character was going to pop out of the woodwork next.

In particular, I knew nothing about the Grand Moff Tarkin controversy going in, and in fact spent some time on our way out next to an original Star Wars poster trying to figure out whether Peter Cushing had played Governor Tarkin or one of the other characters, and trying to convince Peter that it wasn’t possible for the same actor to have played both Governor Tarkins, regardless of how young (and, in Peter’s theory, made up to look old) he might have been 40 years ago. Needless to say, we were completely taken in by the CGI.

In the end, I thought Rogue One was a good movie, marred mainly by the unsuccessful attempt to make the Rebellion seem morally questionable. I don’t think you can do that with one throwaway line from Cassian about how his crowd of friends have all done dark stuff like he has, though maybe the otherwise irrational thread in which no one could possibly believe Jyn without the holographic evidence she didn’t think to save was a good start. It was still too jarring for an immediate prequel to the original set of movies in which rebels didn’t fall to the moral level of the enemy because war.

Jyn, while also unnecessarily dark, was a much more believable and sympathetic character than Rey, but I think I’m not alone in liking Chirrut the best of them all. As for the ending, I didn’t find it nearly as jarring as the attempts at moral ambiguity.

NaNoWriMo 2016

Another year, another NaNo: this was my thirteenth National Novel Writing Month, and my thirteenth victory. (I took a two-year vacation a couple of years ago.)

nano 2016 winner

The NaNoWriMo forums continue to suffer from strict regulation of threads. The entire month of Scrivener discussion was once again crammed into one infinitely long and not particularly informative thread. I used Scrivener again this year, in combination with my new project template for it, Scree.

I wrote earlier about my decision to write a hyperfiction story for NaNoWriMo this year using Scree, Scrivener, and Twine. It started out easier than a linear novel, but about halfway in the overhead in complexity began to cut into my word count gains: I was constantly trying to untangle and reunite, or just remember, the threads of my plots. The expected zombies never showed up, making my working title at the NaNoWriMo site even more inapt than usual. On the bright side, I got to pick a Kenny out of my cast of characters and kill him in lots of different and fun ways—and in general, sudden and tragic endings are an entertaining way to tie up those ever-multiplying loose threads.

For cat-vacuuming distraction, I made a few Twine story formats, over and above the ones for import into Scree. At some point Twine progressed from version 1 to version 2, and in the process left the popular “scrolling” story format Jonah behind. I didn’t port Jonah to Twine 2, but I made an adequate replacement for my purposes, called Paloma. Paloma is based on the Twine 2 story format Snowman, which uses a combination of plain JavaScript and Underscore templating for scripting. Paloma tracks history on a per-passage basis, foregoing the checkpoint method found in the real Snowman. And, of course, it scrolls passages.

I also made a “proofing format” for displaying a Twine story as a dot graph, called, simply, DotGraph, which produces graphs in the style of this Chimney Rock map. (For more graph styles, check out this history of the art.) Of course a Twine story doesn’t have page numbers, so the default numbers are actually passage IDs. You can also change the settings or just hover to see the passage title instead. I started out coloring for length, but later added coloration for tags in order to use them to make some visual sense of the structure of my story.

I’ve also been reading the Twine forum during my 50,000 words, where I heard about few betas of the next sub-version of Twine 2; I tried them out, built from scratch, and reported a few bugs. I also read a few linked stories there.

On the literary side of hyperfiction, I found a few interesting blogs about the subject, especially those by Emily Short and Sam Kabo Ashwell, and a magazine, Sub-Q. I also watched the flood of Twine stories on the free Twine hosting service philome.la via their twitter feed, and read a few. I discovered the incomparable Girth Loinhammer that way, but in general I recommend finding a more moderated forum to satisfy your hyperfictional needs.

Philome.la did impress me with the sheer numbers of Twine 1 users still out there (you can guess pretty well from the visual appearance of a story which Twine version was used, or view the source), and I decided to make a Twine 1 version of DotGraph. I should probably backport Paloma as well, but I haven’t yet. I also have several more ideas for tweaking DotGraph.

Let's Encrypt!

While updating Scree, the Scrivener template for writing gamebooks that we met last time, to version 1.0.1, I wrote a Twine 2 proofing format just for importing stories to Scree. Due to the Twinery’s HTTPS enthusiasm, I needed an encrypted version of the story format that could be loaded into the online version of Twine 2. This meant securing the entire site, but fortunately Dreamhost does HTTPS with just a click (and a little waiting, and some quibbles about htaccess files that didn’t affect me although I’d expected them to). So, if you’re the paranoid sort, you can hide your traffic from spying eyes by visiting https://mcdemarco.net/

For the 1.0.1 version of Scree, which adds some accidentally missing Scrivener for Windows support, the Scrivener documentation and forums continued to be unsearchable and otherwise unhelpful. I went on about my troubles in the Twine forum, so I won’t repeat them here; suffice it to say that the nagging question of why there would be completely separate Scrivener for Mac and Scrivener for Windows fora at the Literature and Latte site has been somewhat elucidated.


NaNoWriMo is coming! In preparation, I’ve created a Scrivener template called Scree for writing hyperfiction and gamebooks. (For the many definitions of interactive fiction, see my previous blog post.)

As usual, Scrivener discussion in the NaNoWriMo forums will be crammed into one infinitely long thread, which will then be deleted next October, when the whole shebang starts again. This is especially unfortunate because it’s already so hard to get useful information about Scrivener online. Back when Scrivener was more obscure I thought the obscurity explained it, but during my searches for help writing my template I discovered the real reason: the Scrivener forums are not indexed by Google. If I were in NaNoWriMo mode, I could go on for 1666 ⅔ words about people who make their websites and/or software harder to use with inexplicable decisions like blocking Google’s spiders.

Instead, I’ll just tell you a bit about Scrivener and the template.

Scrivener is a powerful content-generation tool for writers that allows you to concentrate on composing and structuring long and difficult documents. While it gives you complete control of the formatting, its focus is on helping you get to the end of that awkward first draft.

Most notably for hyperfiction, Scrivener allows you to structure your draft hierarchically into a tree of parts branching into chapters branching into scenes (or whatever other structure you like), while still outputting a linear document. (In most genres, the reader is expecting that linear story, but in hypertext the reader is navigating one of many paths in that tree.) Scrivener also assigns titles to each branch and leaf of your tree; these titles are often omitted from linear stories, but are useful for navigating gamebooks.

Since I was already familiar with the Markdown-style text format twee for Twine 1, my goal was to use my Scrivener template to turn a bunch of linked gamebook scenes into a twee file for use with Twine 1 or 2. To this end I Googled unsuccessfully for the answers to many simple questions about making Scrivener templates, and eventually read the manual to figure most things out.

The next step in this process was Twee2, a Ruby gem that takes a twee file and turns it into an HTML gamebook. The only trouble there is the scary command line factor; it would be nice if Twee2 were more integrated with Twine 2 so that someone unfamiliar with the command line could just import the twee file to Twine and be safe in a GUI again. Maybe I’ll try to set that up at some point.

There’s also a somewhat scary import process for those who want to move a pre-existing Twine or twee story into Scrivener for editing. So for the moment, the process is either scary or clunky, depending on your persuasion, but it works. I expect I’ll even make some improvements over the course of NaNoWriMo.


I forgot to mention that Scrivener is having its annual free trial for NaNoWriMo until December 7th or so. NaNo winners get a discount.

Update #2

The download link on the Scree page is now fixed.