To commit a war crime, press one. To commit a crime against humanity, press two. To be uncharacteristically gullible, press three.

From the earliest Mass Effect marketing to the latest attempts to pour oil on the waters of fan-anger, Bioware has made a big deal out of the game’s supposed hard choices. And they did a good job of making those choices feel hard, in the moment; or anyway risky. But they weren’t, really. If you played the game conscientiously and made sure your options were open you could make the right choice, every time, be sure that you were doing the right thing — or if not sure you were doing the right thing, at least sure you’d rather be wrong your way than the way of the people arguing against you; that you’d happily roll the dice, take your chances, and if it turned out you’d made the wrong choice, deal with the consequences.

You never did, though. The game always let you have your Krogan birthday cake and eat it, too.

So I can see why fans haven’t been entirely happy with the three choices Bioware gives you at the end of Mass Effect 3.

  • To kill an innocent friend, commit genocide against a loyal ally, save the galaxy, and live happily ever after, turn to page 63.
  • To die heroically achieving the goals you’ve shot your greatest enemies for trying to achieve, on the word of another enemy that it’ll save the galaxy and not play into that enemy’s hands in any way at all, we promise, turn to page 57.
  • To die heroically committing the worst crime imaginable against freedom of choice, bodily autonomy, and a good six or seven out of ten of Martha Nussbaum’s ten central capabilities, again on the word of an enemy that it’ll save the galaxy, and that achieving that enemy’s goals is what you really want — honest — despite having proven by your own actions earlier in the game that the enemy’s central thesis is bullshit — turn to page 60.

I chose page 63, as the least out of character of the three options. And since it turns out the murders you’re committing by making that choice don’t actually appear on the screen, you’re free to believe they never happened, and the enemy who told you the consequences of your choice was lying. But I suspect that, canonically, we’ll find out that they did happen. Or — more likely, since it’s harder to get — that page 60 was supposed to be the happy ending. Either way, I don’t really see playing any more Mass Effect games.

Which is a shame, because there was some good stuff in there, on a small scale. But the large scale never really made a lot of sense, and increasingly less (ME2 final boss fight, anyone?) as the series went on; and by the end it was all about the large scale.

I’m not saying none of these endings could be done, and done well, even the bleakest — see The Centauri Device, or Blood Music, or The Urth of the New Sun. But as talented as the Bioware team is, they’re not M. John Harrison nor Greg Bear nor Gene Wolfe, and what they do well isn’t cosmic consequence, it’s character. So I’m not surprised they wrote themselves into a corner they couldn’t gracefully get out of; it was clear early on (“You cannot grasp the nature of our existence!”) that the ending was never going to be all that intellectually satisfying. But I don’t think it was inevitable that the last ten minutes be a different game — and a different genre — from the previous hundred hours of the series.

Вoйнá и Пространство

&#8220A Soldier of the City” will be reprinted in War and Space: Recent Combat, edited by Rich Horton and Sean Wallace. I’m particularly pleased to share a table of contents with Alan DeNiro, whose story, “Have You Any Wool?” Susan Groppi and I originally published in Twenty Epics. (I was disappointed not to see Yoon Ha Lee’s “Hopscotch” from that same book, but I see W&S:RC includes her “Between Two Dragons” so no harm done.)

On an unrelated note, it’s increasingly clear that, collectively, Rich Horton and John Joseph Adams are the new Martin H. Greenberg.

المترجم

The bad news is I still default to writing about depressive loners. The good news is I can now write about depressive loners in multiple languages.

المترجم

قد أصبح المترجم وحيد ببطء. خدع وحده. قد فضل المترجم دائما الفلسفة على الترجمة، ولكن الآن فضل حقا التلفزة أكثر من كلهما. كان عندهم زورق صغير وأزرق الذي لم يستخدمه. قد تمتعوا المترجم وزوجتهم بالتزلج على الماء. الأن دهب نادرا قريب من البحر. في الصباح تفرج على كرة اليد وبعد الضهر تفرج على تنس الطاولة. نام كثيرا. كان المترجم سعيد رسميا.

The Translator

The translator had become alone slowly. He deceived himself. The translator had always preferred philosophy to translation but now, in truth, he preferred television over either. He had a small blue boat that he never used. The translator and his wife had enjoyed water-skiing. Now he rarely went near the ocean. In the morning he watched handball and in the evening he watched table-tennis. He slept a lot. Officially, the translator was happy.

(Fifty extra points if you can guess what part of speech we’re learning this chapter. Two hundred and fifty if you can guess the subject of this chapter’s text.)

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.