Fanfiction – Infinity Box

It’s been a busy week and I didn’t have time to do my usual “go back and re-read something which stuck with me as good” routine, so here’s something reasonably worthwhile from my fresh reads:

Infinity Box by HMaxMarius

It’s a response to to Zaion’s Ship of the Line challenge and, for those not familiar with it, the challenge has to do with writing Buffy the Vampire Slayer fanfiction in which, rather than just some knowledge of the French language, some kind of sci-fi ship sticks around when everything is over. …such fics are a bit of a guilty pleasure for me.

While I don’t have time to build a recommendation list, Infinity Box is one I happened to read over the weekend which is complete enough and decent enough to serve as a good sampler. (If you want more, the challenge page contains a listing of responses.)

As with all Ship of the Line stories, it begins with the events of Buffy the Vampire Slayer, Season 2, Episode 6 (“Halloween”), in which everyone gets temporarily turned into their costumes by Ethan Rayne’s idea of a prank. In this story, however, the relevant characters decided to dress to a Star Trek: The Next Generation theme instead.

The fic then does two things which aren’t specified in the challenge, but most fics seem to wind up doing:

  • What exists feels like just the first act in a longer story, though, unlike so many, it’s actually complete.
  • It’s a crossover with Stargate: SG-1 in which they ally themselves with the SGC while maintaining political independence.

Notice that I said most fics wind up doing that. If you want something more complete, there are a handful of things that progressed further and you can can choose the “Length (Desc)” sort order on the listing to find them.

The writing in Infinity Box one is generally good as far as Halloween fics go (they have a whole filterable tag to themselves on Twisting the Hellmouth), HMaxMarius is smart enough to do as little rehashing of canon events as possible, and I’d give it a 4 out of 5, which would be equivalent to +1 on a scale from -2 to +2.

In other words, it’s about average for what I’d find on the Fanfiction.net favourites list of someone like me. (Someone who has taste but also isn’t stingy with their faves.)

On a related note, given that this and alternative Mass Effect first contact fics (which don’t waste time following boring human soliders on the ground) are both guilty pleasures of mine, can anyone suggest another class of fic I might enjoy?

Posted in Fanfiction | Leave a comment

Fanfiction – Shirou Emiya: Erogame Protagonist

I hereby declare this Wednesday to be “chuckle Wednesday”.

Shirou Emiya: Erogame Protagonist by gabriel blessing is a semi-serious fic which asks the question “How amusing can you make things if you cast the protagonist of a more decorous visual novel as the protagonist for an erogame and then don’t tell him what’s going on?”

In this case, Shirou as the hero, being too skilled and principled to be shoe-horned into the intended narrative, yet with his own set of skills that substitute humorously well when the setting manages to bend them somewhat.

That’s where the chuckles come in… for all the sweatdrop-worthy reactions Shirou has to the setting around him, he is effectively the straight man AND the joke for the rest of the cast, as he constantly succeeds… but not in the intended ways. (eg. Unintentionally accumulating a harem of female monsters, not through sex, but because he’s just that good a cook.)

While I haven’t played the erogame that he’s been crossed into, the characters are definitely entertaining as the author has portrayed them.

Now, as I said, it is a semi-serious fic. (The balance wavers.) For example, the writing mentions, on more than one occasion, that Shirou’s favourite things are “saving people”, “swords”, and “cooking” (in that order) and it’s just taken for granted that Shirou’s skill at cooking is good enough to improve even the greatest of dishes. That said, I’ve definitely seen worse. Stylistically, it reminds me of the anime Gokudo.)

I also like the running joke of the building misconceptions around what the Shinto religion entails.

The editing on this is generally very good… though one glaring annoyance is how, several times in chapter 2, blessing is too eager to break in with a parenthesized paragraph to explicitly say “I skipped over …” when the formatting disqualifies it from passing as a fourth-wall joke and an author of his skill could easily hand-wave such skipped-over scenes properly.

It does also sometimes have fourth wall jokes, which I’m not overly fond of, but I’m willing to put up with them. Also, when they do start to fly thick and fast in the final chapter, the quality the story would have achieved without them rises to compensate.

All in all, I’d give it a 4 out of 5. Nothing special, but solidly entertaining. A completed 93,099-word fic (even if it isn’t marked as such) and worth a read. If you watched Gokudo and liked it, you’ll probably like this. If you like this, give Gokudo a try.

Posted in Fanfiction | Leave a comment

Fanfiction – The Scaly Raptor

The Scaly Raptor by Harry Leferts

First, let me admit that I’ve only ever seen the first Jurassic Park movie and read the first two books. That said, it certainly seems like Leferts hasn’t cut corners on his Jurassic World crossover… and he’s the one who lured me into the My Little Pony fandom with the work he put into a Harry Potter crossover.

The basic plot to this sequel fic is that Owen inherited an amulet from his grandfather which will supposedly allow him to become a better animal trainer.  Following the events of the movie, Owen decides it certainly couldn’t hurt and wakes up as a Velociraptor, capable of speaking English and understanding Dinosaurs.

(Given that his grandfather wasn’t stuck as the animals he trained, it’s realized fairly quickly that, after a week, he’ll be able to take the amulet off and shapeshift back and forth on his own.)

It’s a delightful character piece, but the real fun comes about when Blue decides to use the amulet to become a human. Once that happens, the story graduates from great to being a joy to read.

Like “The Wizard and the Lonely Princess”, it’s primarily a character piece, so it’s hard to summarize much about the plot beyond “Entertaining and satisfying character interactions set against the drama of the movie’s aftermath”. That said, I’ll share an example of one of the more amusing references used for humour:

Now that got a laugh out of Owen as he shook his head. “Well, it is unexpected you know… but why not? I got time to kill after all.”

That caused him to get blank looks from the raptors before they looked at each other. Then Charlie reached up with one claw and scratched the bottom of her jaw like she had learned to after copying some of the various handlers. “{How does one kill time? Time not have body to kill nor blood to spill?}”

In reply, Blue scoffed. “{Just Alpha being stupid with saying stupid confusing things.}”

As the story continues to unfold, the drama starts to build as various concerns come to light, including cloned species that weren’t put into the record and a potential volcanic eruption but, at the same time, the character elements also unfold, with additions such as the discovery of an injured juvenile Ceratosaur while foiling a poaching attempt.

Near the end of what’s been written, it even starts to move along a subplot with a scope and importance which truly acknowledges the philosophical and societal implications of the breakthroughs in the Jurassic Park series. It’s a shame that progress is stalled just as that is starting to really pick up, but at least we got over 160,000 excellent words first.

All in all, I’d give it a full-blown 5 out of 5 since I know I’ll be re-reading this in a couple of years when my memory of it has started to fade. If you want to read a satisfyingly character-oriented story, you like transformation stories, or you enjoy stories about a lovable character learning what it means to be human, definitely give this a read.

P.S. If you want more in this vein, Pack by mjimeyg is a Harry Potter – Jurassic Park crossover that was probably inspired by it. Note quite as brilliantly written, but a great read in its own right.

Raptor by sakurademonalchemist also has commonalities with both stories, though I don’t want to spoil which ones.. It’s not marked complete but it sure feels complete.

Posted in Fanfiction | Leave a comment

Beautiful Songs About Heartbreak and Regret

A couple of months ago, I ran across the Pentatonix cover of Hallelujah. It’s a beautiful rendition… except for one problem which really got under my skin: The lyrics are clearly about heartbreak, yet, just when the vocal line should be falling in despair at the end, they instead soar in adulation. (And then they put it on their Christmas album, which was what convinced me they didn’t get it.)

That got me thinking about recordings which are beautiful and do handle this sort of “internal sarcasm” motif properly.

Rufus Wainwright’s cover of Hallelujah
You’d be surprised how many singers screw this song up in ways subtle or very obvious, but I’ll get back to that. First, a little lesson on the complicated history of this song.
The initial recorded version by Leonard Cohen is a very different beast from what has entered the popular culture today. Cohen used a significantly different set of lyrics, his overall timing and style are quite unlike the lonely, heartfelt piano and solo vocals people have come to expect, and he would mix the lyrics up during his live performances. (According to Wikipedia, he originally wrote roughly 80 draft verses for the song and Cohen himself felt that”many different hallelujahs exist”.)
The overall effect being a song that feels more like Cohen has decided to wash his hands of emotion altogether and the backup singers are celebrating it, but the lyrics here are so different that I can’t accept this as the origin of the Pentatonix version.
The song as people today recognize it, which aims to concentrate its emotional impact as an expression of solitude and despair, owes most of its origins to John Cale’s version.  The solemn, soulful tone, prominence of piano, and the recognizable set of lyrics we see in covers today all originate here, with the cover Cale recorded after asking Cohen for his notes.
However, while Cale’s version is beautiful, Wainwright’s version has shown that there was still room for improvement. For example, while Cale sings “It’s not the cry that you hear tonight“, reminding you that you are party to a performance, Wainwright sings “It’s not a cry you can hear at night”, a more abstract statement about the nature of the emotions themselves. (Update 2020-08-11: Apparently Cale only does this first part in his live performances, one of which I saw a recording of, not his studio ones, making my complaint with it moot.) On a similar note, while Cale plays a few bars of piano at the end as a final performance, Wainwright allows his voice and the piano to trail off together at the end (leaving you to almost expect him to begin to sob before the recording cuts out). Both of Cale’s choices may be fine for audiences in a live performance, but risk harming the immersiveness of the piece when used in a recording.
Other, more subtle issues in Cale’s version include: First, Cale sings “and love is not a victory march” (compared to Wainwright omitting that first word, allowing the mind to fill in the more appropriate “but”). Second, Cale refers to “the holy dove” when Wainwright’s “the holy dark” feels more fitting with the implied sexuality of the “and remember when I moved in you” that it follows. Third, unless I very much misunderstand his accent, Cale sings “her beauty an’ the moonlight overthrew you” while Wainwright’s lyrics can be easily heard as “her beauty in the moonlight overthrew you”… another minor change that seems more fitting to me. Finally, Cale’s version still carries some of Cohen’s laid-back, loose lyrical timing which Wainwright tightens up, producing a song which has finally fully transitioned to the role it had started to take on.
So, with that done, what did I mean when I said that so many singers screw the song up? Primarily that they make changes to how the song is performed which weaken its impact because they misunderstand it. Most unarguably, the insertion of words which throw off the rhythm of the piece, such as singing “she broke your throne; she cut your hair” as “she broke your throne and she cut your hair” but, also, meddling with the pacing and the insertion of vocal flourishes meant to show off their voices at the expense of the song’s immersion.
To make a long story short, even Cohen himself encouraged the proliferation of many different versions of this song, but there’s a difference between crafting a new interpretation of it and making small tweaks to an existing one… and Pentatonix followed Cale’s version so closely aside from their ending that I can only say “Wainwright did this interpretation best”.
Dunrobin’s Gone by Brave Belt
Now, let’s move on to a more clear example of an “inner sarcasm” regret song.
In this song, by the precursor band to Bachman-Turner Overdrive, the vocalist sings about his difficulties letting go of what he had as “a voice inside my head keeps on screaming” that, judging by how he treated his girlfriend, driving her away must have been his intent and, therefore, he must be happy now.
No big fancy history or analysis this time… just a beautiful song that fits the theme.
Where I Went Wrong by The Poppy Family
Now for something slightly different. In this musical monologue to a fellow passenger on a bus, a cold, lonely, and tired Susan Jacks sings about how “the one that used to talk to me” doesn’t want her, blaming herself for trusting him and wishing for the temporary relief of sleep.
One could almost think that the character in this song was tailor-made to be the girl who “ran” from the character in Dunrobin’s Gone.
Again, nothing fancy… just something beautiful and on-topic.

Well, that’s all that came to mind right now and I don’t have time to go researching, so I’ll probably wind up adding more as I think of them. As-is, I welcome suggestions.

Posted in Music, Web Wandering & Opinion | 2 Comments

Fanfiction – Rosemary, for Remembrance

Continuing with my efforts to keep things high-quality and varied, this week’s choice is a Stargate: Atlantis fic with a frustratingly rare degree of emotional depth:

Rosemary, for Remembrance by Mhalachai

This completed story starts out with a light, amusing “crisis of the episode” feel to it, then develops into a full-blown mystery, finally adding in a thread of romance with a bittersweet undertone to it, and then ends with, quite literally, “Something like a happy ending”… all in only 21,900-words and without allowing the new threads to push out the old ones. I only wish more fanfiction had this kind of ambition.

I forget how many times I’ve said this but, for anyone new to my blog: I’m quite picky. If I give something a high rating, give it a chance before you judge it on its keywords. (Most of the time, I find attempts at romance in fanfiction to be annoying distractions from the stuff that actually works… it works here. Normally, I find slashy stuff to be immersion-breaking masturbation fodder written by teen girls… the “sort of Sheppard/McKay” pairing works here.)

The summary does a pretty good job of explaining the starting situation, so I’ll just quote it.

And then there was the time John Sheppard turned into a girl and no one thought it was strange but Rodney McKay.

It sounds like the intro to so many of the cheaper, junkier entries which are sitting in the “once I implement filtering” queue for my gender-bending fiction index… but introductions can be deceiving. Just as the summary is overly simplistic, so too is McKay’s first impression of the situation.

As you might suspect, the first aspect  introduced is the mystery: “What the heck is going on?”

However, this is another one of those stories where it’s hard to go into detail without spoiling how the mystery unfolds. Aside from what the mystery is, and who the romance is between, all I really feel safe revealing is the theme hinted at by the title itself:

What would you give to bring back a lost loved one?

Apart from the emotional nuance surrounding that, I love the witty interactions between McKay and Sheppard and the way Mhalachai makes good use of time-skips and well-chosen pacing to keep things fast moving without feeling rushed.

Relatively short but no less sweet for it, I’m very surprised to see that this fic never placed in the “non-Buffy fic” category for the Twisting the Hellmouth community awards. It’s a beautiful example of novella-length fanfiction better than some published works I’ve read.

This was my third time re-reading it and I give it a solid 5.0 out of 5. Even if you don’t watch Stargate: Atlantis, I still recommend giving this a read.

Posted in Fanfiction | Leave a comment

Tip: Removing Stickers (And Marker) From A Book

Updated 2019-05-08: Added caution about how using lighter fluid on non-glossy pages will render printing inks prone to smudging until it evaporates.

Here’s a little trick I picked up after watching a store clerk do it.

Step 1: Removing the Label (or Marker)

The secret to removing a label from a book without damaging the book or tearing the label is… lighter fluid.

In a well-ventilated area, put a few drops of lighter fluid on the label and gently spread it around. Don’t worry if a little gets on the book itself. I’ve tried this even with non-glossy covers and being soaked with lighter fluid caused them no permanent harm.

(Though I’ve only tried it with non-glossy books where there was no ink beneath the sticker, like old white-cover Microsoft technical manuals.)

Give it a couple of seconds to soak in, then carefully pick at a corner of the label and slowly peel it up.

The lighter fluid attacks the adhesive without significantly weakening the paper, allowing you to peel up the sticker in one piece, and the discoloration you might see on the book itself will go away completely as the highly volatile lighter fluid evaporates.

(On a non-glossy book, where the entire surface of the “stain” is exposed to the air, it should be gone in under 5 minutes. On a glossy book where some got in through a nick in the gloss or at the edge of the cover, it’ll take significantly longer.)

Also, the label on my can of lighter fluid does mention that it will lift “solvent-based inks” and I recently received a glossy book where the silver permanent marker on the cover wouldn’t lift under the influence of rubbing alcohol.  A couple of drops of lighter fluid and a piece of tissue could buff it right off.

Step 2: Removing the Residue

Now, you’re left with sticker residue on your book and, since it might not be a glossy book or might have nicks in the glossy layer, you don’t want to use a gunk remover which could stain the book.

You can carefully roll most if it up into a ball and then pull it off, but that’s not going to get your book clean in any reasonable amount of time.

For a glossy book, you can gently rub the lighter fluid on the residue until it’s all released.

For a non-glossy book or a label inside a book, I’d be careful about using lighter fluid, because it will act as a solvent on printing ink.

It should be safe as long as you don’t rub at any print while using it to lift residue, but I got sloppy while removing a previous owner’s giant, garish nameplate from the title page of one of my retro-computing books (black text on un-coloured paper) and wound up smudging and fading the tail end of the title with my over-broad.

(However, the text on the opposite side of the page is still perfectly fine. No fading, smudging, or transferring to the index card I put behind it to prevent the lighter fluid from soaking into successive pages in the book. It seems that rubbing really is needed to move printing inks that have been temporarily put back into suspension by the lighter fluid.)

Secret ingredient #2: “Invisible Tape” (ie. Frosted Scotch/Sellotape)

If you’ve ever experimented with the different kinds of clear plastic tape, you might have noticed that the adhesive on the frosted tape meant to blend in on paper is significantly weaker than on the crystal clear “Transparent” stuff.

It’s actually so weak that it’s easy to peel off paper without harming it if you can get a peel started without damaging the edge of the paper and that’s the trick: Contact adhesives love to bond to other contact adhesives.

Wrap a loop of the frosted stuff around your finger and repeatedly press-and-pull on the sticker residue until the tape gets exhausted. Depending on how large the sticker was, you may need to switch to a new piece of tape one or more times to get all of the residue up.

As an alternative, if your book cover is glossy and the coating is unbroken, you can also use one of the “home-made Goo Gone™” recipes floating around the ‘net, made from baking soda (as a gentle abrasive) and vegetable oil (to keep the gunk from re-adhering as it lifts). I haven’t tried it yet, but I’m told that Goo Gone’s active ingredient is one of the components of orange oil, so it may be possible to make the homemade stuff with that to rely less on the “scrub with baking soda” aspect.

Verdict

I’ve tried both approaches to step 2 and was perfectly satisfied with each.

A week or two ago, I used lighter fluid and home-made Goo Gone to remove a strongly-adhered barcode sticker from a copy of Programming Windows 3.1 by Charles Petzold, which has a pure white, glossy cover and it now looks brand new. (I just had to wait longer for the lighter fluid to evaporate after I accidentally let some reach the edge of the gloss and soak in under it.)

Today, I used lighter fluid and invisible tape to remove another barcode sticker from a copy of Microsoft Windows Resource Kit for Operating System Version 3.1, which has a pure white, matte cover that could have been torn by the adhesive if I removed it dry. It also looks brand new despite the lighter fluid initially producing a “big beautiful stain” around the sticker. (Though I did choose to roll up and lift the lion’s share of the adhesive residue with my fingers to reduce the amount of tape I needed to use to lift it all.)

UPDATE: If you’ve got something more stubborn, like a security sticker, and it’s on something more robust, like a glossy-finished video game box, check out the techniques used by Clint from Lazy Game Reviews. (Also includes instructions for building replacement structural support for flimsy game boxes.)

Posted in Geek Stuff | Leave a comment

USB RFID Reader on Linux: Proof of Concept

This morning, I realized that I’d never really done anything with the cheap Chinese USB RFID reader I picked up ages ago, so I decided to whip up a little proof of concept for practice: A mock timeclock for tracking worker presence.

To accomplish this, I’ll need several tweaks to how it functions:

  1. Working around the fact that all of my demonstration RFID tokens have their values printed on them for all to see.
  2. Ignoring incomplete input on the virtual keyboard it exposes
  3. Debouncing input, since the reader isn’t good enough at that
  4. Preventing it from typing junk into arbitrary applications in my GUI
  5. Some way to distingush check-in from check-out

1. Obscuring RFID IDs

In order to make it more difficult for a casual exploiter to just manually enter the ID somewhere, I found that one of the DIP switches on the back of my reader changes the interpretation of the token’s ID into something not visibly related to what was printed on it. Not perfect, but definitely good enough to prevent casual meddling.

(I have no idea what the actual difference is, since I can’t read Chinese.)

2. Guarding Against Incomplete Data

There are two ways in which one of these RFID readers can produce bad data:

The reader can misread the token

This isn’t a huge problem, since I’ve only managed to trigger it as the first scan after I’ve fiddled with the DIP switches while it’s powered… but it’s easy to guard against:

Just check that the received token ID is the expected length.

Something can go wrong between the reader and the software

To guard against this, I fiddled with the DIP switches further and found a mode which inserts a semicolon before the token ID and a question mark after.

This allows me to set up the following mappings for raw keypress events:

  • KEY_SEMICOLON: Clear the buffer
  • KEY_#: Add the typed character to the buffer
  • KEY_SLASH: Process the buffer’s contents and then clear it
  • Everything else: Ignore it

Thus, any incomplete read will be prevented from polluting a future swipe and causing it to fail the length check.

3. Debouncing Input

Anyone who’s played around with an Arduino will be familiar with the need to debounce the signal from a pushbutton, but cheap Chinese RFID readers occasionally suffer from this too.

If you swipe the card in just the wrong way, it’ll register twice in rapid succession.

The simple solution is to store the timestamp of the last registered event for a given ID  and require that a grace period have passed before any new scans will register.

(I chose 3 seconds since that seems like a nice balance between allowing quick testing and preventing the reader from getting confused by any especially sloppy token-waving a novice user might do.)

4. Claiming the Device Exclusively

This was actually the simplest part. All I had to do was add a udev rule to allow unprivileged users to open the evdev node for the reader and then use python-evdev to interface with the device. The InputDevice.grab() method will send EVIOCGRAB to exclusively claim it.

(If you’re familiar with X11 development, think XGrabKeyboard, but for only one device.)

5. Indicator Tones

Given that this is intended to run in the background and be as effortless as possible, tones to distinguish “check in” from “check out” seem the most unobtrusive solution.

I googled up some of the simplest possible example code for generating tones on Linux without additional dependencies and put together a couple of two-tone sequences using the same low-high and high-low patterns everyone is familiar with from the Windows “device inserted” and “device removed” notifications.

Putting It All Together

So, with all that said, let me show you some code.

The following GitHub Gist has been tested under Python 2.7 and 3.4 and requires the evdev package (available as python-evdev or python3-evdev on Debian-family distros).

Posted in Geek Stuff | Leave a comment