ASSUMING DIRECT CONTROL

Attention conservation notice: extended bitching about certain video games, which will mean nothing if you haven’t played them.

Six or seven hours in to Mass Effect 3 and pretty disappointed so far. The biggest innovation in the original Mass Effect was the dialogue, but in ME3 they’ve apparently decided that so long as a conversation doesn’t alter the course of the plot (or at least give you Paragon/Renegade points) they might as well just railroad you through it with no dialogue tree. The result is that the Commander Shepard I’m watching on the screen feels like Bioware’s Shepard, not the one I’ve been playing for two games.

And it does feel like I’m watching, not playing. I hope it’ll improve — maybe they blew the budget on acts two and three? (The cut scene where the Asari councillor tells you the Asari won’t be showing up for the summit, for instance, wedged into the end of the Turian chapter for no good reason, just screams budget cuts.) But right now it’s awfully railroad, and compressed in a way that makes it feel disjointed too. The beginning of ME2 was railroad, but it opened up quickly, and in the railroad segments, when you met your old ME1 party members it was a revelation and it meant something. Here it just feels like filler.

If I was in the mood just to shoot things and watch cut scenes, I’d be playing Halo or Gears of War, not Mass Effect. As it is, if I wasn’t a completist and hadn’t paid full price I’d probably put it down and go back to Old Republic.

地帯兵器コロンビーン

As seen on Twitter: Guess it’s safe to announce my story “Chitai Heiki Koronbīn” will be in The Future is Japanese, edited by Nick Mamatas, due out this May from Haikasoru.

For those of you keeping score at home, “CHK” is a sort of follow-on to a flash piece called “What We Talk About When We Talk About Giant Robots,” which I wrote for the 40th anniversary issue of Daruma, the student-run literary magazine of the American School in Japan. It’s flash, it’s short; you can read it here. I’m not sure just where Maddy Flores is going, but I don’t think the journey’s over yet.

Subclassing with Bloch’s Builder pattern

Update: There’s a newer version of the code in this post; the newer version allows you to call the arguments in any order.


A co-worker of mine recently ran across this post by Eamonn McManus, “Using the builder pattern with subclasses,” and after due consideration, settled on what McManus calls “a shorter, smellier variant.”

Shorter because:

  1. it has only one Builder class per class

Smellier because:

  1. it uses raw types
  2. the builder’s self() method requires an unchecked cast

Frankly, I don’t find the shortness here a compelling argument for the smell, but I also think there’s more shortness to be found in McManus’ design while remaining fragrant. Thus:

class Shape
{
    private final double opacity;

    public double getOpacity()
    {
        return opacity;
    }

    public static abstract class Builder<T extends Shape> {

        private double opacity;

        public Builder<T> opacity(double opacity) {
            this.opacity = opacity;
            return this;
        }

        public abstract T build();
    }

    public static Builder<?> builder() {
        return new Builder<Shape>()
        {
            @Override
            public Shape build()
            {
                return new Shape(this);
            }
        };
    }

    protected Shape(Builder<?> builder) {
        this.opacity = builder.opacity;
    }
}

class Rectangle extends Shape {

    private final double height;
    private final double width;

    public double getHeight()
    {
        return height;
    }

    public double getWidth()
    {
        return width;
    }

    public static abstract class Builder<T extends Rectangle> extends Shape.Builder<T> {
        private double height;
        private double width;

        public Builder<T> height(double height) {
            this.height = height;
            return this;
        }

        public Builder<T> width(double width) {
            this.width = width;
            return this;
        }
    }

    public static Builder<?> builder() {
        return new Builder<Rectangle>()
        {
            @Override
            public Rectangle build()
            {
                return new Rectangle(this);
            }
        };
    }

    protected Rectangle(Builder<?> builder) {
        super(builder);
        this.height = builder.height;
        this.width = builder.width;
    }
}

class RotatedRectangle extends Rectangle {
    private final double theta;

    public double getTheta()
    {
        return theta;
    }

    public static abstract class Builder<T extends RotatedRectangle> extends Rectangle.Builder<T> {
        private double theta;

        public Builder<T> theta(double theta) {
            this.theta = theta;
            return this;
        }
    }

    public static Builder<?> builder() {
        return new Builder<RotatedRectangle>()
        {
            @Override
            public RotatedRectangle build()
            {
                return new RotatedRectangle(this);
            }
        };
    }

    protected RotatedRectangle(Builder<?> builder) {
        super(builder);
        this.theta = builder.theta;
    }
}

class BuilderTest {
    public static void main(String[] args) {
        RotatedRectangle rotatedRectangle = RotatedRectangle.builder()
                .theta(Math.PI / 2)
                .width(640)
                .height(400)
                .opacity(0.5d)
                .build();
        System.out.println(rotatedRectangle.getTheta());
        System.out.println(rotatedRectangle.getWidth());
        System.out.println(rotatedRectangle.getHeight());
        System.out.println(rotatedRectangle.getOpacity());
    }
}

Now, some notes:

  1. Where McManus’ generics are of the self-referential, Builder<T extends Builder<T>> variety (cf. Enum), in mine a Builder<T> builds Ts. Personally I think this will give fewer developers headaches.
  2. My Builders don’t require a self() method; they simply return this.
  3. Like McManus’ preferred design, this one requires two Builders per class, one abstract and one concrete. However, the concrete one is an anonymous inner class, so it’s less obtrusive, and there’s only one “boilerplate” method per class. A little longer than the “smelly” version in that respect, but in my opinion livable.

“But the sabres of Jeb Stuart’s cavalry and the bayonets of Pickett’s division had, on the slopes of Gettysburg, embodied him forever in a revivified Tory party.”

Reading ‘If Lee had not won the battle of Gettysburg’, Winston Churchill’s entry in the if-the-South-had-one-the-Civil-War genre. (Requires JSTOR access, sorry.) Stuart Kelly in the Guardian (where I found the link; via Niall) thinks it’s a work of genius and all by itself justified Churchill’s literature Nobel. I think…

…well, I don’t think Mr. Kelly’s opinion speaks well of him, let’s put it that way.

Here’s Churchill:

It was Lee’s declaration abolishing slavery which by a single master stroke gained the Confederacy and all-powerful ally, and spread a moral paralysis far and wide through the ranks of their enemies. … Lincoln no longer rejected the Southern appeal for independence. “If,” he declared … “our brothers in the south are willing faithfully to cleanse the continent of Negro slavery … it would not be right to prolong the slaughter on the question of sovereignty alone.”

And what does the continent look like, “cleansed of slavery”? A lot like British Kenya, Malaya, or Bengal, apparently.

There is practically no doubt at this stage that the basic principle upon which the color question in the Southern States of America has been so happily settled owed its origin mainly to Gladstonian ingenuity and to the long statecraft of Britain in dealing with alien and more primitive populations. There was not only the need to declare the new fundamental relationship between master and servant, but the creation for the liberated slaves of institutions suited to their own cultural development and capable of affording them a different yet honourable status in a commonwealth, destined eventually to become almost world wide.

Let us only think what would have happened supposing the liberation of the slaves had been followed by some idiotic assertion of racial equality, and even by attempts to graft white democratic institutions upon the simple docile, gifted African race belonging to a much earlier chapter in human history. We might have seen the whole of the Southern States invaded by gangs of carpetbagging politicians … We might have seen the sorry force of black legislators attempting to govern their former masters. Upon the rebound from this there must inevitably have been a strong reassertion of local white supremacy. By one device upon another the franchises accorded to the negroes would have been taken from them.

That’s just a sample. The whole thing is necromancy wrapped in wishful thinking inside an ugly fantasy. It’s bad history and worse speculation.

Here’s the thing. I’ve always known Churchill was a racist, imperialist reactionary. But somehow when his racism and imperialism was confined to the British Empire it seemed forgivable; lovable and cuddly even. It’s not till I find him involving himself in my history that I can see clearly that he’s not lovable and not cuddly. I should have known better. Churchill’s a douche. Who had many fine qualities. But nevertheless.

I will give Mr. Kelly this, though: Churchill’s exactly the kind of douche the alternate history genre is full of. Which only makes it more of a shame to bring him up alongside writers like Chabon and Pullman that are doing something much more interesting.

In which the author hopes for once to avoid attacking the entire enterprise of mainstream superhero comics

So over on FB Amal posted a link to this comic strip by David Willis, to which Ben responded:

the sad thing is, it’s not that DC comics is bad at math. it’s that DC and Marvel don’t see comic books as for selling; not for selling copies of.

they see them as for generating IP to sell in more lucrative media.
misogyny is just a traditional part of that package.

I think the middle two sentences are true as far as they go, but there’s something about the last sentence that irks me, and when I started trying to explain to Ben what it was, I found I needed paragraph breaks. So here we are.

So, I think it’s true that DC doesn’t have any intention with this reboot of trying to sell Red Hood to as many readers as watched Teen Titans, and to that extent, yes, the comic is not likely to change any minds at DC. But to shrug and say “misogyny is a traditional part of the package”, to me seems dismissive to the point of unhelpfulness. That much, if true, might explain the general situation of women in comics; it doesn’t in itself explain the sudden jump in misogyny at (and sudden sidelining of creative women by) DC in particular, and by treating that jump as business as usual, it discounts criticism and invites passivity. And as the comic itself points out — however incidentally — the level of extreme misogyny in the DC reboot doesn’t necessarily fly in “more lucrative media”, broadly considered.

That said — I went to the movies last weekend and saw “Moneyball”, which on the whole wasn’t bad apart from the obligatory scene showing that our hero’s ex-wife’s new husband is an effeminate twerp. And thanks to bad timing I had to sit through a raft of ads, including ads for NBC’s entire fall lineup, and through a clutch of film previews that ran the gamut from predictable to depressing. It would be an exaggeration to say that “sexism” was the pitch for NBC’s entire fall lineup, but it started with The Playboy Club and went downhill from there, culminating in some sitcom the name of which I can’t be bothered to google about a new married couple, in which the humor apparently derives entirely from the new bride’s desperate attempts to attract her husband’s attention while he treats her like a piece of furniture. And of the previews, the one that stuck in my mind was for “50/50”, which appears to take what could have been an offbeat romantic comedy starring Joseph Gordon-Leavitt and Anna Kendrick, and stir in a big greasy bucket of Seth Rogen bromance.

So contra Mr. Willis, I have to admit that misogyny sells, or at the very least that the Powers That Entertain think it sells. It’s not that DC thinks they’re going to sell comics to every Apatovian dudebro, but if they can hook enough of them with soft porn and date rape jokes, seat those brand names deeply enough, then when these properties hit the big screen, with the misogyny toned down from the embarrassingly appalling to the merely egregious, they’ll entice their bros and drag their girlfriends to the theater. Or that’s the best theory I can come up with, at any rate.

That being the case, yes, I have to say that misogyny is part of the more-lucrative-media package. But “traditionally”? That makes it sound like there’s nothing anyone can do, that it goes back to Adam West and George Reeves. And I’m pretty sure I’ve got a few mylar bags somewhere in someone else’s attic that show it doesn’t really even go back to the 80s. At least, not to the level it’s at now. The best I think you can say for DC is that they’re reflecting a broader trend; it’d be more accurate to say they’re exploiting and amplifying it. And while I don’t think anyone should expect comic books to do better than pop culture at large, that doesn’t mean we shouldn’t demand it.

And so the bird of heaven, with archangelic shrieks, and his imperial beak thrust upwards, and his whole captive form folded in the flag of Ahab, went down with his ship, which, like Satan, would not sink to hell till she had dragged a living part of heaven along with her, and helmeted herself with it.

Last month the Science Fiction and Fantasy Writers of America gave a Nebula award to a piece that contained no science worth speaking of. There was very little fiction in it either, if fiction is the narrative of imagination; whatever images might have been in its author’s mind, what made it onto the page was determinedly unimaginative, and less narrated than vaguely gestured at. It put forward no fantasy, unless the fantasy that the world is an uncomplicated place populated chiefly by straw men and contrived examples is a fantasy. What writing was in it was mostly bad.

I suppose that as much as there was any of anywhere in it, there was some America. Maybe that’s something.

Let me make a point up front because if I let it go till later someone is bound to get confused. Yes, I am a Californian who deeply resents Temple Square’s interference in the affairs of my native state. Yes, I am a postmodern materialist who hasn’t been to church in twenty years, could probably count the number of times he has been on his fingers, has never believed in salvation through Christ Jesus except for a period of about twelve hours once back when the Berlin wall was still standing.

But I read Gene Wolfe, and find The Urth of the New Sun deeply moving. I read Connie Willis and rejoice with her characters at the hope of eternity offered in Passage and the hope of a compassionate divine plan offered in To Say Nothing of the Dog, even though in the bright light of day neither is a hope I share. I am in the middle of revising a novel in which an aquatic hive mind and a million-year-old alien warship are willing converts to Islam. Agnostic though I may be, I have no stones to throw here. I would welcome a thoughtful and inventive and well-crafted story of a devout Mormon standing up for his faith and in solidarity with his alien fellow believers against ancient and perhaps implacable powers far from home.

But this is not that story.

I actually find myself hoping that the reason “Leviathan” won the Nebula is that there is a constituency out there of Mormon writer-readers who are desperate for any science fiction that speaks to their experience, even when it has nothing to say beyond validating that their experience exists. That would give me some hope in turn that we might eventually see a good Mormon science fiction, a science fiction worthy of the Mormons I’ve known, who whatever our political and religious differences have been, most of them anyway, good-hearted, level-headed people whose unassuming natures often concealed a wry humor and a wealth of well-observed stories. The young men and not a few young women who carry the Mormon faith out into the world, learn difficult languages, go nearly alone into often-hostile places and make connections with people about as unlike the people they grew up with as it is possible to be — or who just go to small hostile Midwestern towns where the Methodists and Lutherans and Episcopalians and Catholics and Presbyterians can all agree to have a monthly prayer breakfast open to “any Christian denomination,” so long as that definition doesn’t include Mormons, where they happily do yard work for little old ladies about as likely to convert as the Pope — are brave souls doing what they think is right, and my hat is off to them. They deserve a science fiction that reflects the complexity of their lives and the world they’ve seen, and I hope some day they get it.

But this is not that science fiction.

And I don’t think the desire for that science fiction is enough to explain it.

Here is an interesting fact about the Nebula awards: contra what you might find implied on Wikipedia, and regardless of what you might read on the SFWA web site about the history of the award, there is nothing in the Nebula rules that says or even implies that any Nebula award is for the “best” anything. Unlike the Hugo award categories, which are established in section 3.3 of the constitution of the World Science Fiction Society as Best Novel, Best Short Story, and so on, the Nebula categories are merely Novel. Novella. Novelette. Short Story. The nominees in each category are only the otherwise eligible works that receive the most nominations from the membership, the winners the works that receive the most votes. No guidance is given to the members on what to nominate or vote for, or why.

I would like to say this explains a lot. That it explains how a story with no characters, no setting, no invention, no real speculation, very little plot and a bare sliver of theme — a story that nonetheless managed to drag itself out over 8000 words — was given one of the top awards in the field.

But I can’t. This is not the first very bad story to win a major science fiction award* in recent years (though it is, perhaps thanks to recent procedural changes, the worst to win the Nebula for novelette in many a year). It is not even a new type of bad story. It is representative of a type of story that seems to be gaining in popularity as the traditional science fiction community ages at something like a year per year.   Setting barely sketched-in, parasitic on reader memories of better-written worlds. Characters that are really just placeholders, the few who speak either author mouthpieces or caricatures of implausible opposing positions, all of them lacking substance, interiority, consistency, basic humanity.  Gestures toward “daring” that are no more than comfortable recapitulations of contrarian reader prejudices. ‘Ideas’ that were old and tired when John W. Campbell was young. Stories stripped of any complexity that would make them interesting or worthwhile, tables tilted always in the author’s favor.

If this is what we want, then we deserve every drop of the contempt we imagine the world beyond science fiction holds for us. If this is what we want, then there is something wrong with science fiction, as a community. I don’t know just what it is, if there’s more to it than fear of the future and fear of the unknown and fear of old age and fear of death; I don’t know what to do about it, or even if anything should be done about it.

I only know that if this is what science fiction is, then I won’t mourn when it passes.


* I am reminded that “Article of Faith” did not in fact win the Hugo for which it was nominated. On the other hand, “Travels With My Cats” did win in 2005. Though as depressingly derivative, inward-looking and cloyingly sentimental as “Cats” is, it is at least better-written than “Leviathan.”