13 Apr 2013

How I learned to drive

Earlier tonight I saw the best show I've seen in a long time.

How I learned to drive was billed as "for mature audiences", and they might have added "trigger warning!", because this show is dealing with some seriously dark themes about incest and paedophilia. In fact, even a review like this one that just talks about the show might need a trigger warning. And unlike a lot of those "adult" warnings that get slapped on a show because there's swearing or someone in their underwear, where I roll my eyes and tell people that they can probably bring their teens and tweens and just keep an eye on them, this one is one I'd be careful recommending to anyone younger than college age: a true X-rated show, and without a single instance of swearing, nudity, or physical violence. Just highly disturbing sexual mind games.

This scene is set right from the start: the leads, whose specifics we will learn somewhat later, start the show sitting next to each other, in side-by-side chairs (representing a car), and immediately make the audience uncomfortable, with nothing but their conversation and some gestures that are meant to imply touching (though this is cleverly staged with them both facing forward and "touching" the bare air---letting us dip our toes in the awfulness before we get tossed in the deep end later). Everything about this is carefully arranged. The perceptive audience member will notice that the underage girl (Li'l Bit, played by the talented Adrienne Johnson) is seated on the left, and wonder why she's in what would be the driver's seat---only to discover that she is in the driver's seat because the man (who we will later learn is her uncle Peck, her mom's sister's husband, played by Daniel Ellis) had taught her to drive (per the title) and routinely let her drive his car.

I'm going to take a moment here to gush and swoon over Adrienne Johnson's performance. If Longwood has any sort of annual acting award for its students, they have a very easy decision this year, not because the other actors in this show or the other shows were bad, but because she was singularly fantastic (and with extra points for degree of difficulty, as well). In this show she has scenes spanning some 16 years from age 11 up to age 27 (and up to 35 if you count the narrations at the start and finish); and those scenes are played in a radically nonchronological order, without pause or blackout. She only even leaves the stage once or twice. But just with a change of voice or demeanour she makes it easy to see the shift from college back to middle school or back again. Her moods also necessarily turn on a dime, from worried to scared to hurt to something like happiness, but always with an undercurrent of confusion. It's her vulnerability that seals the deal here, because during all of it you can tell that she's confused about what she wants, about what she should want, and about what's expected of her---and we in the audience are frequently struck by the horrific thought that her life is so awful to her that her moments with the paedophile are actually better, or at least seem so to her. When her uncle has gotten her drunk and she kisses him, the expression on her face packs in so much---drunk, shocked, can't-believe-I-just-did-that, edging into panic---and the knowledge that "the line" has moved yet again.

Not to slight the other actors, of course. There was simply no bad acting in this show; it was a small, tight cast that fit their roles and worked well together. However, the particular nomination for Best Supporting has to go to Sarah Breitenberg, whose enabler monologue was both riveting and literally breathtaking; the moment she veered into victim-blaming, I gasped and then caught myself still holding my breath about a minute and a half later. More than any other single moment in the show, that monologue drives home the understanding that this kind of abuse is not only tragic for its immediate victim, but takes out many casualties in the crossfire as well.

Despite subject matter that would in any show be inherently dark and shocking, this production exhibits some excellent choices by the production staff as well as by the author herself that make it both more watchable and more effective. The exact same story told in chronological order, for instance, would be excruciating to watch and very sad, but wouldn't have nearly the impact. The occasional well-played comic relief, even or especially about topics that shouldn't be funny (e.g. Jillian Thompson's speech about sex being painful, which had me in tears I was laughing so hard) has, I think, the effect of underlining the message rather than undermining it. Merely acting through the photo shoot scene would have made us think about how awful it was, but showing the actual photos on the cyc makes us feel the creepy. So creepy. The decision to simply wrap towels around still-visible other costumes---so that dropping the towel in front of everyone reveals nothing at all---has the counterintuitive effect of being more authentic, more revealing, and more mortifying than any concoction involving making the girls "really" naked behind a screen or something. The rule is "show, don't tell", but the author and staff of this production understand well that sometimes a suggestive charcoal line drawing can "show" more than a photographic snapshot.

If you're in the Farmville area, go see it! You still have time to see it more than once, even, which I'm strongly considering if I can find the time; I'm quite certain that now that I've seen it once and know the chronology, there will be a deeper layer to find in many of the scenes. Just in the process of writing this review, I've had several "Oh! Ooooh." moments as I suddenly understood a scene in a broader context.

"When all is said and told, the "naturalness" with which we use our native tongues boils down to the ease with which we can use them for making statements the nonsense of which is not obvious." --Edsger Dijkstra

Posted by blahedo at 9:37pm | Comments (0)

2 Apr 2013

Java Scanner silent fail

I just made a discovery that will be of no interest to the non-technical folks out there.

If you use Java's builtin Scanner (as I've done hundreds of times) to read in a bunch of text, it turns out that if any of that text is not in the expected encoding, it just silently treats that as unreadable, which means hasNext() is false and it appears for all intents and purposes as if it's an end of file. Here's the catch: this happens as soon as the Scanner reads the bad character into its buffer, *not* when your cursor catches up to the bad character.

The way this manifests is that your data seems to be silently truncated for no apparent reason. If you look at the portion of the file where it stops, there appears to be nothing wrong there---and there isn't. The problem is somewhere in the next few hundred characters.

The workaround to this is, if you know what encoding your input uses (and you're sure there's no noise in it), you can specify it:

  Scanner in = new Scanner (new File (filename), "ISO-8859-1");
(similarly "UTF-8"). If you expect your data might be noisy and you don't have access to your data in advance to clean it up, I'm not sure that you can use a Scanner, although it's possible there's something involving rolling your own BufferedReader that you can do.

That took a stupid amount of time to track down, though. "What do you mean, you're at the end of the file? I can see more data RIGHT THERE."

"When judging the relative merits of programming languages, some still seem to equate "the ease of programming" with the ease of making undetected mistakes." --Edsger Dijkstra

Posted by blahedo at 4:30pm | Comments (0)