The Mercantile Wizard

Some more D&D fiction here.
Read more…

What has gone before:

Fair warning, y’all. This is all about my relationship with a message board ending in my being banned. It’s chock-full of inside baseball, rampant meandering speculation, Culture-War politics, and nostalgia, and unless you’re a current-or-former member, it’s probably of very little interest to you.

Read more…

[WIR: Magic’s Promise] 5-1: Brilliantly Awkward or just Awkward

Ho boy.

Read more…

The Tao of Optimization.

The practitioners of the Way go by many names. God-modders, mix-maxers, munchkins, twinks…I, personally, choose to embrace them all. (Albeit with a little caution for the last one, since it has alternate connotations and I wouldn’t want to disappoint anyone.)

I am all of these things. I am an optimizer. Not just in games, mind you, but games provide some of the clearest examples of the way to optimize, so I’ll be talking mostly about them. Games, bared down to their essentials, are a series of interesting choices.

Read more…

[WIR: Magic’s Promise] 4-4: This series’s favorite awkward territory.

Last time, Vanyel had started getting about his first proper day back at home, including dealing with his mother.

His plan to distract her winsome court with epic bardic music appears to have been, at first blush, a bad plan.

Read more…

[WIR: Magic’s Promise] 4-3: He Didn’t Ask For This

Now, then. Where was I?

Well, I was here. As I said before, I am now intending to continue my WIR of the Valdemar books in a medium that I control. I’ll also be a little more diligent about backing up what I write; I’ve got a half-written draft of my thoughts on, but since I can’t get to what I read that wasn’t emailed back to me, I can’t get some quotes and context I’d like.

Also, as a note: This wordpress theme does a great deal of auto-formatting with quotes. This means that I have apparently lost my ability to italicize or otherwise call out Vanyel’s internal monologue.

I’ll probably have to learn how to customize WordPress themes and re-learn CSS to fix this

Well, both history and programming can wait.

Read more…

Closing a chapter and opening a new one.

Tags: Personal, Drama, Culture War, WIR

Well, that’s that.  As of a few days ago, I am no longer welcome at the message boards.

It was a long and twisty road that lead to this point, and I will probably go back and do a post-mortem of where I feel the problems with’s culture first set in, and of the events leading up to my banning, but for now, it’s enough to say that I’m gone.

I’d been a member of for over a decade, with over five thousand posts.  I’ve written a fair amount there that I’m quite proud of.  My largest and longest-running project has been a Where I Read project on Mercedes Lackey’s Valdemar books.  I’ve done a series of recaps for completed books here already; since this ban caught me in the middle of a book, I’ll probably go on to just continue my WIR for that book in the same format, then pause and evaluate what the best way to continue will be.

Now I just need to find out if there’s a handy guide to WordPress-specific HTML out there.  Like, are there tags like there used to be for Livejournal? I’d love to have an lj-cut equivalent tag to make the many large posts not clutter my feed.

Well, I do my best learning when I’m having to adapt to something unexpected.  Watch this space.  I should have my next WIR bit up shortly, as well as a one-stop index to the What Has Gone Before bits.

Blast from the Past

Well, the main fan on my new machine is doing bad things and making bad noises, so I’m sending it back for repairs.  Happily, I’m still in the full-service maintenance window, so I don’t need to worry about messing with the connection between fan and water-cooler radiator.

On the minus side, I’m now writing on my old box, which has the minor issue of overheating and shutting down if left alone doing nothing for 15 minutes or so (which I sadly confirmed by booting it up and going out to stage my new PC for transit).

On the plus side, I still have my old standby; take the side off the PC, pull up a box fan, and let ‘er rip.  Here’s hoping nothing else broke in this sucker for the past 9 months or so.

Personal Projects: Webcomic Downloader

I had fun repurposing one of the example projects from Automate The Boring Stuff WIth Python yesterday.  THe project was designed to download local copies of all of the XKCD comics.  I wanted to grab a local copy of Mookie’s Dominic Deegan, since it’s an obscure comic that hasn’t been updated in years and I didn’t want it to vanish into the internet aether.

Of course, being a very old webcomic from a creator with a much less HTML-savvy than Randall, I had a few fun challenges.  I needed to pick apart the format of the web pages to find a good way to parse the Beautiful Soup tag objects (Beautiful Soup being a fabulous Python utility you can turn on a webpage address to get back a data structure containing all of the HTML).  I had to find a good way to pick out just the tags I wanted, and I needed to figure out that some pages early on, Mookie did multi-line comics as multiple image files slapped together in HTML, and account for that.  There wasn’t the clean way of handling start and end URLs here, so I had to find a away around that, too.

What I found most interesting and fun about all of these problems was the degree to which “Is this a good enough solution?” was my guideline.  For the start and end dates, I could just run over the second to second-to-last comics by setting them as my start and end points, and just manually scrape out the start and end comics.  For the multi-part comics, I really didn’t want to have to identify them as special cases, so I did structural changes to apply the comic download function to every tag that matched the criteria.

The project is now done, more or less.  It’s not perfect by any means; if I wanted to refresh the archive I now have, I’d still have a few manual steps I’d need to do.  But since I’ve done what I set out to do with this program, I don’t need to improve it any.

The worrying thing, though, is that I see this exact same pattern at work in basically all of the production software I work on.  There are huge areas of good-enough that could be refactored and re-done to handle the edge cases and avoid special procedures, but people there treat runs-every-day production code like toy run-once projects.

On one hand, I feel a little bit guilty about leaving my project in a good-enough state.  On the other, I guess this means I’m comfortable enough in Python to be writing disposable utilities in it, and treating them as utilities rather than mini study projects.

But however I look at it, I did have a good time spending a few hours digging into both general and specific problems, and I now have what I wanted to have (and a good framework for setting up future web-scraping if I want it), so I consider it time well spent.

Allowable Evils as reflected in recent media.

I just recently saw the recent animated adaptation of The Killing Joke. It was good, and very interesting. What was most interesting, however, was the juxtaposition between it and other recent media, and fan reactions. (Bam! Whiff! Spoilers!)

There have been three recent re-imaginings of old properties released recently; Mad Max: Fury Road, Star Wars 7, and just recently, Ghostbusters. These three properties have also, in varying degrees, became touchpoints in the ongoing Gender Culture War. These movies had varying degress of respect and homage towards their original source material, but all of them ended up putting their female characters front and center. And all of them had very specific male villain archetypes.

These movies were not horrible movies. (At least, two of the three of them were not. I haven’t yet seen Ghostbusters yet, so I can’t say for sure.) And yet, some people got very, very upset at the mere existence of these movies, and spent a lot of pixels explaining in detail how bad the movies were.

And, of course, there were quite a lot of people doing the reverse. But what was interesting was how (with a few admittedly-notable exceptions), most of the people who didn’t like the movies were indeed pointing at actual things that the movies did wrong as movies. However, quite a few of the people who liked the movies were saying things like “I like the fact that they unapologetically had whiny, entitled white dudes as the bad guys.” (Whiny white dudes who were, of course, defeated by the heroic heroines, of course.)

Now, why is this interesting? Because of the way Killing Joke is set up. The second half of the movie is a brilliant (but not very original at all) animated adaptation of the classic comic. It’s worth seeing by itself; Mark Hamil’s Joker singing Vaudeville is one of those things you didn’t realize you needed in your life until you hear it. But the first half of this feature is set up as a story following the adventures of Batgirl, so that we the viewers have some context for her and her struggles, and to give weight to what happens to her in the events of the Killing Joke.

This segment of the movie has been controversial. It’s basically an R-rated episode of Batman: the Animated Series. It has one very questionable decision as far as establishing a wider world of comics continuity (the bit where Batman and Batgirl hook up.) But the elephant in the room, I feel, is Paris Franz.

There is, I feel, a reason that quite a lot of people have been pointedly upset at the recent remakes, and why the people who were pointedly delighted by them were pointedly undelighted by Killing Joke intro sequence. And it’s not just sexism. My theory here is that media can be good, quality media, that never explicitly propogandizes or takes sides, but very clearly still expresses a narrative. And I feel like there were a lot of people who lacked either the awareness, the vocabulary, or the local freedom to express a sentiment along the lines of “These were good movies (modulo Ghostbusters), but the subtext-verging-on-text of “Everything bad is the fault of this group of (white, male) people right here, who can be threatening and can cause harm, but are ultimately weak, pathetic, and will be soundly thrashed by the heroines, who will Win.” can grow exasperating.

And here is where the character of Paris Franz comes in. He is the antagonist for the intro sequence, and he is, I feel, a broadside across the bow from the other side of the Gender Culture Wars. Paris is not whiny. He is handsome, swave, and articulate while he does horrible things. And he does indeed do horrible things; his sexualization of Batgirl range from blowing her kisses while trying to kill her mid-mayhem, to actually going in for a kiss just after he’s dosed her with knockout poison. Plus, he retains a trio of prostitues (one of whom disapproves of the amateurish Batgirl costume mask he presumably instructed her to wear, as she has her own better masks at home).

Franz loses, I should point out. His first interaction with Batgirl is the heist in the intro; Batgirl stops him from stealing stuff, but he gets away, blowing Batgirl a kiss and kicking her off the outside of the truck cab she is attempting to hijack. Their next encounter is a standard superhero brawl; he nails her with the knockout poison, but as he moves in for the ‘goodnight kiss’, she knees him in the crotch and locks herself in a bank vault, knowing that she’ll have recovered before he can make it inside to her. Their third encounter is arguably a victory for him, as Batgirl gets fixated on him, takes some bait in the form of a straight-up “Walk into this trap, please!” invitation, and while Barbara holds her own, she does get rescued by Batman (who has noted that this is becoming Personal for Barbara and that she should leave Franz alone.) The fifth meeting, in which Barbara comes roaring in to rescue Batman after Franz nails the Batmobile with RPGs, she wrecks his shit, badly. But there’s a follow-up to that; as he’s being taken to trial, Franz is still mugging for the camera through puffy lips and bruised eyes. The last line he has in the feature is “Love ya, Batgirl!”

The intro sequence with Barbara is undoubtedly a feminist story. It is driven by a female character, who overflows with agency. She gets the lion’s share of the cool action sequences, and while the story (and Batman himself) tell us that Barbara is very much the junior partner in the relationship, she is not portrayed in any way as weaker than Batman. Her choices and her decisions drive the narrative.

And yet…if the standard spiel we’ve heard from everyone who strings “whiny entitled white boys” is one narrative, what is the narrative we’re getting here? Well. Something like “You have enemies. They will oppose you, leer at you, threaten you, and it will be genuinely ambiguous to what degree they do this because they are evil, and to what degree they do it because it makes you do stupid shit in response. These people are not necessarily dumb and not necessarily driven by their obsession for you; messing with you might just be a side project they play at while focusing on their real goals. And even when you take things to their level and go to the knock-down-drag-out level, you don’t actually necessarily win; they have the power to recontextualize your attacks on them as harmless, or as signs that you really care about them.”

I have no hard proof that people are thinking through narratives subconsciously, and much of the vitriol against otherwise-inoffensive media comes down to people disagreeing with the fundamental narrative and thus going looking for reasons to disregard the piece as a whole. But it does seem to fit the evidence here fairly well.

Post Navigation