Those Pesky Details

Writing a decent murder mystery has to be a huge challenge. There are so many details you have to get right! The other day I picked up Breakdown by Jonathan Kellerman at the library. My first impression was that it’s a good mystery. But toward the end, a key detail was just plain wrong — and as I thought more carefully about the plot, it unraveled before my eyes.

Spoiler alert: In the discussion below, I’ll have to reveal who done it.

At the start of the book, psychologist Alex Delaware (the amateur sleuth) is trying to help a homeless, mentally ill former sitcom star named Zelda. Shortly the cops get a 911 call from a rich old lady named Enid, who has found Zelda’s body lying in her back yard. The cause of death is not immediately obvious; it turns out to have been an exotic poison.

Eventually Alex discovers that not one but two Hispanic domestic servants in Enid’s exclusive neighborhood disappeared within a day or two of Zelda’s death. One of them is Enid’s maid. Alex and his sidekick, police detective Milo Sturgis, then poke around fruitlessly for a hundred pages or so, trying out various theories of the maids’ disappearance and gathering the hard-to-find details of Zelda’s past life.

And then Alex has a brainstorm. On Google Earth, he finds aerial photos of the woods along the back of Enid’s estate. “In seconds I had full-color, one-year-old, 3-D satellite photos of the property at a variety of angles, the forest-like area at the rear of the property revealed in high definition.” That’s on page 286. On the very next page, “The soil of the … pocket garden [was] pale and dry and littered with leaves and pine needles. But just off center, in line with the door, the ground was clear. … At the end of the clear area, two oblong depressions in the ground.” Oblong depressions — yes! Alex has just discovered the graves of the two missing maids. They’re buried at the rear of Enid’s estate.

The trouble is, the maids have only been missing for three weeks, and Kellerman specifically told us the Google Earth views are a year old. Oops.

This could have been a rewrite error that wasn’t caught. However it happened, it’s sloppy, and at the worst possible moment in the story for sloppiness. The story could have been drafted in such a way that there was no room for error. Alex could have spotted an undisclosed part of the estate and then figured out some other way to check for fresh graves in that area.

We shortly learn that Enid, the nice old rich lady, poisoned Zelda and also shot the two maids in the back of the head because they knew too much. Enid and her elderly boyfriend then wheelbarrowed the maids’ bodies out to the woods and buried them. We also learn that Zelda was Enid’s niece. Enid had killed Zelda’s mother years before, and buried the mother in the same spot. Zelda, in her state of total mental breakdown, had gone to Enid’s house and demanded to know about her mother. So naturally Enid had to kill her, lest her rambling accusations lead somebody to suspect foul play.

But why, given all that, did Enid leave Zelda’s body lying in the back yard and call 911? Why not bury Zelda where she buried (shortly before or shortly afterward) the two maids? The answer, sadly, is that if she had done that, there would have been no mystery novel, because Alex and Milo would never have been able to figure out what happened to Zelda. Letting the cops find Zelda’s body was an insane and unnecessary risk for Enid. Why? Because Enid was Zelda’s aunt. That fact was very hard for the police to put together, but Enid couldn’t have known that. For all Enid knew, during a lucid moment Zelda had told somebody about it. A homeless vagrant found dead in the back yard of a mansion — eh, these things happen. But if somebody already knew that Zelda was Enid’s niece, explaining the niece’s body would be a tough row for Enid to hoe. Whereas, if nobody knew what had happened to Zelda, Enid’s secrets were much more likely to be safe forever.

Okay, murderers sometimes do stupid stuff. I get that. But if a murderer does something stupid, it’s incumbent upon the author to give the reader some sort of plausible explanation for the murderer’s bizarre lapse of judgment. Kellerman didn’t bother to do that. By the time the truth is dug up from the shallow graves, Kellerman trusts that the reader won’t rewind the newsreel and ask why Enid, who had gotten away with several murders, suddenly blew it at the moment when it mattered most.

Writing a decent mystery novel is not easy at all.

Why Is There Sex?

Pardon me for boasting, but on the way home from the gym this morning I seem to have solved a long-standing problem in evolutionary theory. I don’t think I’ve read this idea anywhere — it just sort of popped up.

The problem is, why does sexual reproduction exist? Evolution is ruthlessly economical. Any behavior that doesn’t “pay off” in terms of reproductive fitness will sooner or later get weeded out. Sexual reproduction is expensive in behavioral terms — all the trouble of finding a mate, fighting off rivals, and so forth. What’s the payoff?

A theory that I have read is that the payoff is protection from microbes. The microbes in your immediate environment, which includes the millions of tiny critters living on your skin right at this moment, breed much faster than you and I do, so they can evolve faster. There’s a kind of arms race going on. Any advantage they gain (in making you sick, which will increase their numbers radically) has to be fought off by your immune system. Sexual reproduction, according to this theory, jumbles up the genes of the next generation, which essentially confuses the microbes. They have to start over, trying to figure out how to make the next generation sick.

I’m sure that’s a fine theory. I’m not a cell geneticist, so I’m not equipped to evaluate it. But here’s a different idea.

When we talk about evolutionary fitness, we’re not really talking about the fitness of a big, strong animal. We’re talking about the fitness of the genes that encode information with which to build a big, strong animal. It’s the fitness of the genes that is crucial in evolution.

In asexual reproduction, the mother passes all of her genes on to her daughter, and so on, unto the nth generation. Because evolution is ruthlessly economical, it will tend to trim away redundant genes. An asexual creature would quite likely have, for instance, only one gene to produce an essential digestive enzyme, because if there was ever a second gene that did that, when the second gene fell apart or got mis-copied, it could never be reconstructed.

Genes do occasionally mutate. Not often, but it happens. And there are, in your genetic makeup and mine, thousands of genes that are essential for the organism to remain alive. You have genes that constructed your heart, your lungs, your skin, and so on. If you had only one copy of each of these genes, any mutation (in the portion of your own developing body that produced egg cells) would be fatal to your offspring. You would never produce any viable children.

But when you have two copies of these important genes, one from your father and one from your mother, a defect in one of the copies is not necessarily fatal to you or to your offspring. If you only have one copy of the gene that makes that essential digestive enzyme, you may never even know it — and half of your children won’t inherit it. True, fatal mutations can still occur. But the redundancy of the genetic information lowers the rate of fatalities due to mutation.

This is all Biology 101. But the essential point is this: From the point of view of your genes (anthropomorphizing a bit here — genes obviously have no point of view), sexual reproduction protects all of them against the occasional fatal “traitor” gene. The healthy genes work together, producing a sexually reproducing species, in order to protect themselves from those occasional traitors.


Piece Piece

I’m a lousy chess player. In spite (or perhaps because) of this, I’m fascinated by chess variants — games that alter the rules of chess in order to produce a new and less explored experience.

The website gets less traffic than it did a decade ago, but it’s still a wonderful archive of ideas. Some of the proposed games on the site are brilliantly playable. Others are very silly, and are headed straight into the dustbin of eccentric creative thought.

The tricky bit is, if you want to play chess using a couple of extra pieces of your own devising, how will you do it? By pushing slips of paper around on the board? Ugh.

A year or two ago, I fired off an email to the House of Staunton, suggesting to them that there might be a market for some handsome chess pieces of unusual design. Afterward, I thought no more about it — but damned if they didn’t take the suggestion! Today, as a Christmas present to myself, I ordered their three new packages of white and black pieces, two of each to a package. And of course a more or less matching set of standard pieces, because the new plastic ones wouldn’t go well with my wooden set.

More packages, including some alternate pawns, are due out in 2016. Yay!

Once I have a set of cannons, leopards, elephants, hawks, chancellors, and archbishops, I’ll have three new challenges. First, I may want to draw up a nice-looking 8×10 board on a thick sheet of cardboard. Second, I could sure use an opponent or two. The town where I live doesn’t seem to have an active chess club.

Third, I’ll need some workable ideas about how the new pieces should move. There’s a fellow with a web page called Musketeer Chess who has movement rules for them, but I’m not uniformly happy with his choices. The chancellor (rook + knight) and archbishop (bishop + knight) are very standard pieces, but you can do all sorts of interesting things with the others. An elephant really ought to be able to push other pieces ahead of it when it moves, wouldn’t you think?

When the Staunton unicorn, spider, dragon, and fortress pieces appear, I’ll have to get them too. This is going to be fun.

Idealism (good luck with that)

Today on Facebook, someone posted what purports to be a quote from Russell Brand: “If we all collude and collaborate together we can design a new system that makes the current one obsolete. This is a journey we can all go on together. All of us. We can include everyone and fear no one. A system that serves the planet and the people.” This is a charming idea, until you stop to think about it.

As I suggested to the friend who posted the quote, “Karl Marx tried that. He was a pretty smart guy, but he forgot that people are greedy and stupid.” But the difficulty with Brand’s charming notion is a little broader and deeper than that.

What he’s talking about is a new system of government. You can call it a new set of cultural values if you like, and bask in the rosy glow of the idea that somehow everybody in the world will happily embrace these new cultural values, thus making government unnecessary. But that’s childish. It’s not even worth discussing. Government of some sort will continue to be needed.

And it’s not just that a system of government would have to be able to deal with people who make dumb mistakes like drunk driving, or who are greedy and try to grab more than their share of whatever resources are available.

There are millions of people who just plain hate and fear people who look or act differently than them. When you hate and fear people, you’re liable to do bad things to them, and the government needs to step in and stop you.

There are people whose heads are filled with dogmatic, unchangeable ideas. Some of their ideas are harmful, but they will fight tooth and nail rather than let go of their ideas.

There are people who love having control over others, and who aren’t bothered by hurting others (or even enjoy it). Some of them start cults, and some of the cults are dangerous.

And most of us like to do favors for our friends. Employers will hire their friends rather than hire a stranger who is more qualified and perhaps has a different skin color. If everybody in our in-group thinks idea A is wonderful and idea B sucks, we’ll tend to go along with idea A and reject idea B without examining the relative merits of the ideas, because life is too short to sit around and try to ponder complex questions.

A government has to concern itself with all of these difficulties.

But wait — there’s more! The human brain is not very good at evaluating the large-scale, long-term effects of our actions. That’s why nuclear reactors get built near coastlines that are subject to tsunami activity. No matter how rational your government is designed to be, there will be disputes among well-meaning, intelligent people about the likely long-term consequences of various courses of action (such as GMO crops, for example). Governmental processes will be needed to attempt to sort out these disputes.

And still, mistakes will be made.

So okay, Russell — the ball is in your court. Put on your Karl Marx hat and tell us exactly what this new system of yours will look like. Tell us how it will deal with strip mining, religious extremists, racism, exploitation of workers, and the shenanigans of corporate bankers. Once you have a good solid outline in place, we can start to talk about how to implement it, starting from where we are now.

Digital Decay

Back in 2007 or thereabouts, I recorded some arrangements of pop tunes into Cubase. My idea was to be able to play live with my cello and pre-recorded backing tracks. For various reasons, I only ended up playing a couple of gigs, but I still have the Cubase files. Some tunes are awesome for cello soloing — things like “Lady in Red” and “Killing Me Softly with His Song.”

I still have the files — but they’re quasi-useless. At that time I was using my Yamaha Motif XS for a lot of the tracks. I still have the Motif too, and it still works nicely. But I neglected to take proper notes on which of the Cubase MIDI tracks play which Motif sounds.

Ever heard a piano sound play what was originally a drum pattern? Phil Glass might love it, but it doesn’t sound anything like “Lady in Red.”

Some of the files had audio clips in them — material that I recorded out of the Motif into Cubase as audio, specifically so I could avoid this problem. Also so I could do final mixes (which I still have). But for some reason I didn’t back up the short clips of audio data. Or if I did, the backups were on a hard drive that ended up God knows where. Without the audio clips, the Cubase song files are a lot less coherent or useful.

Don’t let this happen to you, kids! Take proper notes! Make multiple backups!

The good news is, this gives me an opportunity to do new and perhaps more creative arrangements. My previous rendition of “Lady in Red” basically copped the exact sound of the hit single. It was my first experience doing a sound-alike, and I think it came off pretty darn well, because for one thing the original was all synths and electronic drums. (Probably an Akai sampler, but the same premise.) Now I get to try something new.

This time around, I’m thinking more about the electric cello. Easier to amplify — no mic feedback to worry about. And I’ll probably adapt some of the Beatles arrangements that I did last year in Reason. If I decide to tackle the project, months of work lie ahead before I can once more walk like an Egyptian.

Extensions & Contractions

This week I’ve been working on updating my Inform 7 Handbook. It’s rather discouraging process.

Central to my discouragement is the chaotic state of the Inform extensions arsenal. In chapter 3 of my Handbook (which is a full-length book that has been, and presumably will be, available as a free PDF), I had guided the reader toward using a handy extension called Consolidated Multiple Actions by John Clemens. Published in 2008, this extension was designed to convert ugly 1980s-style output of this sort:

>drop dollars
silver dollar: Dropped.
silver dollar: Dropped.
silver dollar: Dropped.
silver dollar: Dropped.
silver dollar: Dropped.

…into something much more tidy:

>drop dollars
You put down the five silver dollars.

Needless to say, this extension doesn’t work with the current version of Inform. It’s a fairly complex extension — frankly, it’s beyond my ability to fix it. There is apparently no currently functional extension that does this. As a result, the new version of Inform 7 is actually less capable than previous versions when it comes to giving the author some basic control over the output text.

As a writer, I care about making the output look presentable. Call me eccentric if you like.

Inform 7 was designed from the ground up to encourage third parties to extend its fairly basic functionality by writing clever extensions. This is a valid approach to designing a programming language, I suppose. But it works better if you have a user base that’s, oh, let’s say a hundred times larger than the tiny, scattered community of interactive fiction authors. With such a minuscule pool of qualified programmers (of whom I am not one) to call upon for maintenance tasks, the result is sadly predictable: Stuff doesn’t get fixed.

As the author of Inform 7, Graham Nelson really ought to have understood this long ago. Inform is his creative project — perhaps, in some sense, his life’s work. I don’t know Graham, so I don’t know what other work he may engage in, but he has certainly put a massive effort into Inform, over the course of more than 20 years. And yet it’s not enough.

Knowing that numerous clever extensions would be broken by his new version, he ought to have taken definite steps to insure backward compatibility. Rather than eliminating numerous phrases from I7 syntax (and some features such as the Library Messages from the underlying I6 code base), he ought to have worked out a way to keep those phrases and features available, so that older extensions could continue to use them if need be.

Either that, or he ought to have revised all of the potentially useful extensions himself.

His failure to do either of those things sabotages his end users — the community of Inform authors. He has ignored authors’ legitimate needs.

Graham is a very bright guy. He’s certainly smarter and harder-working than I am. But it’s hard for me to feel enthusiastic about supporting aspiring Inform 7 authors by rewriting my Handbook, when the mastermind who created the entire authoring system shows so little evident interest in supporting them.

I’m strictly a bumble-fingered amateur programmer, not a computer scientist, but I can easily imagine a simple way that he could have preserved the functionality of those old extensions. Edit each extension to put the line “Allow deprecated syntax and features” at the top. An intern could update the whole library in less than an hour. Then tell the compiler that when it encounters a separate .i7x file with that line, it should, for that file only, switch to a different compilation mode — a mode that already exists as a code base, because it’s what the old compiler did.

If he had done it that way, wretches like me wouldn’t have to thrash around for hours trying to make things like Consolidated Multiple Actions work. I’m told Graham teaches at Oxford. Perhaps the words “ivory tower” would not be misplaced here.

Burnin’ Down the House

Today I saw a bumper sticker that said, “Fight Socialism!” That and the Ronald Reagan bumper sticker made it crystal-clear that the owner of the car must be of the conservative persuasion.

My question for this addle-pated individual is this: When your house catches on fire, what private fire company are you going to call to put out the fire?

What? You mean to tell me you don’t subscribe to a private fire company? You’re not planning to call the 100% socialist public fire department, are you? I sure hope not.

I seem to remember that they taught this lesson in history class in high school when I was but a wee sprat. Maybe it’s not in the curriculum anymore. The thing is, we used to have private fire companies in the United States, back in the bad old days. And what would happen was, when a house caught on fire (which happened quite a lot, because lamps and stoves and candles all used open flames), the wagons from two or three local fire companies might show up.

These companies were rivals: free-market capitalism at its finest. So if you weren’t already a subscriber to one of the companies, you’d have to negotiate a price (while the fire was burning) for them to put it out. The price would be exhorbitant, naturally, since the fire chief knew you were in a big hurry, but precious minutes would be wasted while the various companies bid against one another. If you did happen to already be a subscriber to one company, the firemen from another company might engage in various sorts of sabotage so that later they could say, “See, Bob Smith was an XYZ Company subscriber, and they were on the scene, but guess what? His house burned down before they could put the fire out. Their pumper didn’t pump out but a trickle, haw-haw-haw!”

The system was broke. So what happened was a government takeover. Now there’s only one fire department. It’s run by the government. It’s paid for with your tax dollars. It’s socialism, weenie-breath. And it works just fine, and nobody complains about it.

Oh, and in those days there were no regulations on how food could be packaged or labeled. Quite a lot of babies died from being fed stuff that was supposed to be milk, and looked like milk, but wasn’t. So today we have (in theory, at least) intrusive bureaucratic government regulations. The kind of stuff conservatives love to ridicule and whine about. But the number of babies dying from tainted milk dropped dramatically when the regulations were written into law.

Conservatism — a sure-fire recipe for burned-out houses and dead babies. Don’t say I didn’t warn you.


I’d like to have a better network of social contacts. Friends, I think they’re called.

Church attendance is rumored to be a way to build a social network. My choices in this arena are limited, as I’m an atheist. The Unitarians (also known as Unitarian Universalists, primarily for administrative reasons) have no theology or dogma, so they’re my best shot. For four Sundays now, I’ve been showing up, sitting there, singing, listening, chatting with a few people after the service.

So far, I’m failing to see anything that would attract me. The minister’s sermons are okay, and the congregants are my kind of people in a general sort of way — intelligent, liberal, polite. The services barely mention God or prayer, so I don’t have to grit my teeth. But there’s nothing positive about the experience. I’m not feeling, “Wow, this is a great place to hang out.” I’m not thinking, “Hey, these are cool people. I want to talk to them about stuff.” It’s all sort of blah.

Blah is not, I think, what one hopes to get from church attendance.

The Why of Doing

Sometimes I’m a mystery to myself. For months I’ve been somewhat disgusted with interactive fiction. Other than fielding a few requests for help on the newsgroup or the forum, I haven’t been doing anything with it.

And now, suddenly, I’m interested in putting together a huge new game. Go figure. It’s a game that I first envisioned a couple of years ago, and started writing. But I began to feel it was so large and complex that no one would ever finish playing it — so why bother?

One change in the weather is the impending release of the new version of Inform 7. Not that there’s anything radically wrong with the old version (or at least, there’s nothing radically wrong with the old version that’s going to get fixed in the new one … we can chat another time about things that are radically wrong with I7 that aren’t going to change). But I always get a charge out of playing with new software, and I’m sure other people do too.

Also, I’m in a “fuck it” mood. Life is meaningless from top to bottom. There are, in consequence, no activities I could conceivably engage in that would be more meaningful than writing a ponderously large and moderately pretentious text game involving a roving octopus, a malicious mannequin, a dance orchestra of badly trained monkeys, and Zarbolphung the evil-tempered wizard.

Some of the work that I did on the game was in a different development system — TADS 3. On the whole, I prefer TADS, but some very bright people are actively at work building the tools for playing Inform games in your browser. This is good news for anyone who wants to make their game widely available to casual players. The traditional way of playing text games is to download the game file and a separate interpreter program, and that’s too much hassle for someone who isn’t yet a committed fan. I’ve tried to nudge the TADS developers into taking steps in that direction, but it’s not clear when (or if) they’ll take the necessary steps.

So tonight I’m working out a way to emulate a TADS AgendaItem object in Inform. In principle, there are sure to be ways to make it work, but … well, it’s an interesting intellectual challenge, and I need one or two of those right now. Nothing takes your mind off of the stunning meaninglessness of life like a good coding puzzle.