Oct. 16th, 2013

elfs: (Default)
There was an outbreak on Twitter this morning of quotes around the classic, classic film, Heavy Metal, which is one of my all-time favorite movies. But the outbreak had me thinking about an important issue, which is writing comedy.

Almost all comedy emerges from a disputation of power. In the classic man vs. man or man vs. nature, for example, comedy emerges when a man tries and fails to overcome a problem because of overreach fueled by arrogance and ignorance. A classic example is, to use television, fromSeinfeld when Kramer tried to adapt his bathtub for better waterflow in defiance of his landlord’s requirement to reduce water use; he lacked understanding of the problem and arrogantly assumed he knew how to fix it; the resulting flood of his entire apartment was consequently funny. Other classic sources of comedy come from the Upstairs/Downstairs mould of television, where the powerful are never torn down, but are routinely shown up as incompetent and undeserving of their status by their cleverer underlings. Even The Argument Sketch from Monty Python is all about the two characters attempting to powerplay each other, each cleverly looking for a way to either needle or deflect the other’s jibe, to put the other man “under.”

Which is why there’s a moment in Heavy Metal‘s “Lincoln F. Sternn” segment that once seemed funny, but now dies like a landed fish. The scene is supposed to be comic. Sternn is on trial for being a very bad man, and his list of achievements is impressive. ”Lincoln Sternn, you stand here accused of 12 counts of murder in the first degree, 14 counts of armed theft of Federation property, 22 counts of piracy in high space, 18 counts of fraud, 37 counts of rape, and one moving violation.” The prosecutor pauses after every count to let it sink in. The “camera” (Heavy Metal is animated) looks over the bored judge, the restless jury, the steely-eyed prosecutor. When the prosecutor reads the rape charge, the camera focuses on Sternn… whose smile broadens knowingly.

That used to be considered humor. It’s funy, because, see, we all know that, while, legally, rape is, like, a bad thing, Sternn is such a manly man that, well, he was just putting women in their proper place in the power structure, and it’s not like he killed them or anything, he was just doing what a man does.

The women in that scene aren’t human beings; they’re merely pawns.

Once you live in a world where men and women are equals, it stops being funny. Instead, it comes across as horrifying, and Sternn’s consequential escape from justice (as well as the murder of his henchman) loses all comic impetus. Then again, so does getting away with murder.
elfs: (Default)

Okay, so I’m slow to the party.  Forgive me.  I was reading Reginald Braithewaite’s Javascript Allonge and I understood where he was heading long before he got there, and the lightbulbs were going off in my head, and although his technique for getting there was far more verbose than my own, I finally grokked the big point. It’s a classic programmer’s rule of productivity: If you find yourself doing something more than twice, automate it!


We do this all the time with makefiles and functions, but Braithwaite’s book brought the question down to the micro level: If you have to apply the same transformation to three different arrays, or if you have to apply three transformations to the same array, why are you doing it like this:


somenumbers = [....]
squared = somenumbers.map (x) -> x * x
cubed = _somenumbers.map (x) -> x * x * X
halved = somenumbers.map (x) -> x / 2

When you could do this?


somenumbers
toMap = (a) -> (f) -> a.map(f)
[squared, cubed, halved] = [
    ((x) -> x * x), 
    ((x) -> x * x * x), 
    ((x) -> x / 2)].map(toMap(somenumbers))

By creating a function that already has the array to process, and then processing it multiple times, you prevent the emergence of typos in your code caused by repeatedly typing the variable name. And you accurately put the point of your code in the left-hand column once, which is very attractive to me.


This is good stuff, man. And Coffeescript is so much more expressive than Javascript in the same realm. Imagine writing toMap in JS:


function toMap(a) {
    return function toMap(f) {
        return a.map(f);
    }
}

A lot of clutter to express what Coffeescript expresses so cleanly.

elfs: (Default)

Squeee!!!
I remember when Morinaga Milk's Girl Friends was first coming out; I was in the midst of learning Japanese, and a scanlator was putting these up on a (now defunct, so sadly!) LiveJournal, five pages at a time. I would download the raws just so I could practice my kanji. The author was only putting them a few pages a month, and everyone was breathless with anticipation for the next episode. It took years for the whole series to come out, and the main characters didn't kiss for the first two years.

I'm so happy to see them actually released in a bound omnibus collection. I'm gonna read these shamelessly on public transportation.

Profile

elfs: (Default)
Elf Sternberg

December 2025

S M T W T F S
 12345 6
78910111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 09:52 am
Powered by Dreamwidth Studios