December 2015

For those who were concerned, we are back at home.  We spent seven weeks at our lovely and patient friends’ house.

Here’s a view of the courtyard of the building next door, from shortly after the fire:


The whole 22-unit building next door was demolished rather quickly. It took up a surprisingly small swath of land, which is empty for now. It used to dwarf our 2-story building, but now ours looks normal-sized.

There were several hiccups along the way. They replaced the roof; but after removing the old roof the roofers didn’t put out enough tarps, and it rained, causing water damage to our unit. They repaired this, but that caused more delay and a spray of dust that covered everything.

Just before we were going to move in, the unit below us had plumbing trouble: their sink was overflowing when either they or we used the water.  This was fixed (by rodding out the line), but from that time on we had no hot water in our kitchen.

The plumbers came by, saw that the report was correct, and started taking pipes apart.  They were clogged with rust.  But they got to where the water comes out of the wall without getting any water flow.  Apparently the riser that comes from below was blocked too.  They talked alarmingly about taking out the countertop and the sink to get at the riser, which would have been a huge mess.

Fortunately they thought about this, and came back on Monday to get at the wall from the other side— which is the building’s front hall.  This was no small task, because our walls are plaster, which is like rock.  Plus there were concrete bricks in the middle.  But with the right (very noisy) tools you can do anything, and they made nice big holes in the wall to get at the risers.

Now they discovered that there was a shutoff valve in the bottom unit… it wasn’t the rust that was preventing water from coming up, it was that the plumbers fixing the overflowing sink had turned off the valve.  I’d suggested as much, but of course the customer is never viewed as a reliable source of information.

Since they’d already gone into the wall, though, they replaced both hot and cold risers.  It took another day to redo the plumbing, hooking up the sink, dishwasher, and refrigerator. With a working dishwasher, it finally felt like we were at home and could relax.

They’re still working on the building— the units on the west side, facing the fire, need much more restoration, and then they have to repair the basement, which had 3 feet of water.  We lost a bunch of things we kept in the basement, including the original map of Verduria City.  (Fortunately I’d redone it in Illustrator.)

There’s no answer, by the way, on what caused the fire. The fire department said that any evidence was itself destroyed.

Curious fact: the bricks from the destroyed building were carefully piled up and carted away.  Old Chicago bricks are valuable.


On a brighter note, looking at sales, I found that five copies of Against Peace and Freedom were sold in December. That’s just enough to make the 200 sales for which I said I’d make an Incatena conlang.  It only took four years.  So, Hanying it is!  (Not immediately, but it’s on the to-do list.)


The China book has sold over 50 copies in the same month.  The Market continues intoning that it wants me to write nonfiction.

I’ve never read any Christopher Priest before, and The Prestige was recommended.  The library didn’t have it, but they had The Islanders, and I figured what the hell.

First, what is it?  It’s sf, of precisely the sort that explains why I use sf instead of ‘science fiction’.  It’s set on another planet, but it could easily pass as mainstream fiction, or magic realism. It reminds me of Borges, and even more of Georges Perec’s La vie mode d’emploi, which tells the story of a Paris apartment story, room by room.

The Islanders calls itself a gazetteer, and in form it purports to be a tourist’s guidebook to the Dream Archipelago, a worldwide array of thousands of islands on another planet— though honestly it’s all so British that we’d might as well call it an alternative Earth.  The planet also has two large polar continents.  One, Nordmaieure, consists of “quarrelsome nation states” engaged in a perpetual war, which in eminently civilized fashion is actually fought in the uninhabited southern continent, Sudmaieure.  The archipelago is neutral, though to get to the battlegrounds troops have to pass through it, so it is hardly unaffected by the war.

The book is arranged alphabetically, from Aay to Yannet, giving descriptions of geography and local attractions, and a listing of what currencies are accepted. It’s soon evident that this is merely a pseudo-pedantic scaffolding for telling stories about the Islands and Islanders: love stories, a murder mystery, meditations on art, some incursions into horror. The gazetteer style is frequently abandoned in favor of news reporting, court reports, memoirs, or third-person stories.

The “Introductory” by an Islander notable, Chaster Kammeston, provides a fair appraisal and fair warning: “It is a typical island enterprise: it is incomplete, a bit muddled, and it wants to be liked.” And in fact I found it extremely readable. I finished it quickly and found none of it boring.

There are standalone stories, such as one of the horror ones, classified under the island Seevl. The manner is Lovecraftian: the story starts out as something of a love story, narrated by a man named Torm, and takes its time to get to the mystery of the ruined towers that cluster on Seevl.

But many of the stories are interconnected, though unreliably. The introducer, Chaster Kammeston, explains that no true map of the archipelago is possible, due to “temporal gradients.”  Later this is explained further: if you circumnavigate an island, you’ll find that landmarks have shifted or disappeared. Getting around can be trying, and people end up in different places than they intend.  My gosh, is there some kind of subtext here?

Mirroring this, the interconnected tales don’t quite cohere. For instance, Kammeston introduces and appraises the book, but a key event in later chapters is his own funeral. One character is described as having lived 250 years ago, and yet she is described as a lover of the artist Dryd Bathurst, who lived long enough to be interviewed by Kammeston, his biographer. Kammeston’s introduction claims that he has never left his native island, but later chapters contradict this.

A key event, narrated multiple times, is the death of a mime named Commis—  killed by a plate of glass which sliced down vertically from the loft of the theater where he was performing. Later we get an account that explains what that plate of glass was for, who left it too loosely attached, and why.  Later yet we learn that one of the suspects went by another name, one that by now we know.

In some unreliable narrator stories, the idea is to piece together the real truth behind the conflicting claims. Not here, I believe.  An in-world explanation is half-suggested: perhaps the indeterminacy which afflicts the physical world of the Archipelago affects the people too.  You return to a man or woman and they’re not the same person as before.  It’s hard to believe that the introduction from Kammeston refers to the same text we’re reading, and not just because of the funeral.  Or, probably more likely, Priest is just spitting on the notion of objectivity, as is common in mainstream lit. Real life is muddled, though it’s still rare (I think) for sf narratives to be also.

As conworlding, it’s brilliant and slapdash at the same time. There’s very little attempt to make this world different from Earth— in fact he could probably have set it on Earth making no substantial changes.  There are some sf elements, but little that affects the storytelling. The indeterminacy of the world has great thematic resonance but isn’t really taken seriously.  (E.g. it’s said that no map of the Archipelago is possible, and yet people do things like plot worldwide ocean currents, to say nothing of undertaking wars on the other side of the globe.)   And as mentioned, all the islands seem British, with a side order of Scandinavian.

Yet it has a real sense of local color— you do get a sense of these islands as distinct places, so that this is that rare thing, an sf world which feels like it has more than one culture.  Torm at one point has a neat insight about continents vs. islands:

[On the mainland] I felt instead the lure of distance, of places I could travel to and people I could meet without crossing a sea, and an endlessly unfolding world of certainty. Islands lacked that. Islands gave an underlying sense of circularity, of coast, a limit to what you could achieve or where you might go. You knew where you were but there was invariably a sense that there were other islands, other places to be.

It’s hard not to feel that he’s describing both Britain, and various sub-worlds within Britain. What he describes as the mainland attitude I recognize in Americans. We have regions, but they always feel like secondary things that you can ignore if you choose.


Would you like it? If what you really like could be described as “Larry Niven again”, then probably not.  But it doesn’t have the dry cold feeling of much experimental literature; rather, it’s warm, digressive, and passionately human. I liked it (far more than the Perec, in fact).

(FWIW I spent a couple of hours reading Priest’s blog. He’s a bit of a curmudgeon, with some judgments that seem more personal than reasoned. E.g. he likes Terry Pratchett and dislikes Charlie Stross, which doesn’t seem unconnected with being an old friend of Pratchett’s. He can be pretty amusing when he rips into Martin Amis, and spectacularly condescending when he offers advice to China Miéville. Fortunately this strain of Aggrieved Blogger doesn’t get into his book.)



I think I may be done with League of Legends.  I haven’t picked it up in a couple of months. Part of this is that Arkham Knight and Fallout 4 have louder voices. Part of it is that, due to schedule changes, my friend Ash is no longer available for late-night games.

But the biggest reason is just that I’m not very good at it. I’ve put more than a year into it, I know the basics, I’ve played a ton of ARAM so I’ve played most of the champions.  I do well sometimes, and a few times I do really well. But I still have trouble staying alive, I lose more games than I win, and the learning curve seems as steep as ever.  I never even got into Ranked; the one game I played with friends was a disaster.

Millions of people love League, so I can’t really criticize it, but I think it has a few design problems.

  • You’ll enjoy it best if you play with friends, preferably over voice chat. But if you’re low level, you basically can’t play with high-level friends. They may mentor you a bit, but the game is too different at different levels. If you play with them, you’ll get a higher class of opponents and it’ll be worse for you, not better.

    (This is mitigated in ARAM, which is why I could play with Ash at all.)

  • The game could use a fourth level of tutorial bots.  It’s still too much of a leap to go from the bots to humans.
  • The game avoids voice chat for good reasons… jerks can be bad enough in text. But it means that mentoring usually doesn’t happen. (I appreciate it when it does occur, but it’s easiest to do in voice chat.)
  • The games are long. A bad TF2 round ends in five minutes, and then you can start over.  A bad SR match can take 45 minutes (even if your team surrenders, it’s 20).  If the problem was a bad team comp, a player who messes up, or a bad laning phase, that’s a long punishment for a short mistake.
  •  All the items and champs and strategies that make it a great e-sport make it, well, a grind to learn, except for you teenage and college whippersnappers. And it just keeps getting worse as they add more champs and items.

I think I could maybe go for a League Lite.  Something more complicated than TF2, but far less than pro LOL.  Maybe something with 30 champs instead of 128, no items, and start each game at level 3.  Maybe even an option to switch out champs.

(ARAM is almost a League Lite, but the problem I have with it is that it doesn’t prepare you for SR.  You do learn the champions, but they play differently in SR, and ARAM doesn’t teach you the teamwork, the laning, or the overall strategy.)

If you’re considering League, I don’t mean to put you off.  I’m not sorry I tried it, and you might do better at it than I did.  I might even go back for ARAM once I’ve put down the Institute. Though I hear the new Tomb Raider game is next month…

I’d never read any Connie Willis before. I’m a sucker for time travel stories, so I got into this right away.

I’m going to start with general comments, so you can decide if it sounds interesting and if so, avoid spoilers. There’s a Line of Truth later on where things get heavy.

The setup is simple: in 2054, we have time travel, and the major use seems to be by historians. The book deals with the historians of Oxford, notably James Dunworthy, who’s in charge of research into the 20th century, for Balliol, and Gilchrist, who has the equivalent position for medieval times, at Brasenose. The 20th century faculty has been doing this for awhile, but Medieval is sending back its first historian, an undergrad named Kivrin. Unfortunately Gilchrist is more eager than competent, and the customary precautions have been skipped or half-assed.  But Kivrin at least is well prepared, and really wants to go. So what could go wrong…?

This is paradox-free time travel, courtesy of The Cosmos. If you aim at a particular time and place, you might not get quite there, especially if it’s important historically. Plus you need special equipment and expertise… it becomes important later on that there’s only one time travel machine at Oxford. In effect this means the traveler has to be very very careful to meet at the agreed-on point and time if they want to return.

I have to say that the historians’ methods invite trouble. A simple example: Dunworthy mentions an exploratory jaunt he took to the 20th century. He had to get to Paddington station and take a train to get to the rendezvous point. Only when he arrived, Paddington was closed for some reason. He made it back, but it was close.  When even a simple trip can be so difficult, what about a trip to the Middle Ages?

Kivrin is well tutored on medieval life, inoculated against the prevailing diseases, and carefully dressed in an medieval outfit, but she’s sent with no electronic devices (except a recorder/translator), no weapons, no medicines, no money. It seems pretty irresponsible, especially as she’s aiming for 1320, which was till recently rated a 10 of 10 on the scale of “centuries you really don’t want to go to”. (Gilchrist thinks it really wasn’t that bad, so he re-rated it.) I won’t say this is a flaw in the book, as the irresponsibility of the attempt is thoroughly experienced and explored by the characters.

Worldbuilding besides time travel is minimal… Oxford in 60 years’ time (the book was published in 1992) seems pretty contemporary. Dunworthy seems to be head of Balliol, so there’s a good deal about his other responsibilities, from dealing with helicopter parents to hosting a group of American bell-ringers. A lot of this is at Wodehouse levels… amusing but not exactly in tune with the rest of the book.

Once Kivrin gets to the 14th century, she has to fit into the life of a medieval manor house. This part of the book is a lot of fun. She starts out with severe language problems: her electronic translator can’t handle the local Middle English. Willis gives plenty of samples; I’m happy to report that I figured it out long before the translator does. (Hint: Willis makes heavy use of a typographical trick to obfuscate it.) She gets to know the family and the tiny village it’s staying in. A clever bit is that it’s interacting with the six-year-old daughter that’s key to understanding the language and the family.

Willis is clear that being a female time traveler in 1320 is particularly dangerous. Dunworthy perhaps over-worries this, to the point of exasperating Kivrin.  She and Gilchrist have worked out an angle: she was traveling with retainers, but attacked by ruffians and left alone. Now, this only solves part of the problem (explaining why she’s alone), and doesn’t address allowing her to proceed alone. But I’d say the book finds a good balance between respecting the difficulties a woman would face in the Middle Ages, and respecting her agency as a highly trained modern person.

Did I hint that things go wrong?  Things go wrong.

OK, this is the Line of Truth. The book goes off into grimmer territory, and if you don’t want to know about that, stop here.


Right in chapter 2, we get problems. Badri, the tech in charge of the temporal insertion, gets extremely sick. Without giving too much away, this sickness spreads throughout Oxford and greatly impedes the modern team in keeping track of Kivrin.

Kivrin, not coincidentally, comes down with the same illness, which complicates her first days in the past. She gets better, but perhaps you’re seeing a theme here. Later on a far more serious sickness, an epidemic, comes to the village.

If you’ve read Iain M Banks’s Against a Dark Background, you know how hard an author can treat his characters. Willis is far more brutal. The final chunk of the book is almost cruel, as Willis destroys hope after hope. I’m not sure it was necessary to be quite as thorough as she was, but it’s certainly effective.

A curiosity of Willis’s storytelling is how much time the characters spend trying things that don’t work. In part this is basic narrative: an adventure plot generally consists of a number of attempts that don’t work followed by a final try that does. But most of the attempts are much smaller scale, nearly pointless– e.g. Dunworthy tries to contact an alternative tech, can’t get through on the telephone, has to try later. Kivrin tries various things to ameliorate the epidemic on her end, to little effect. It’s certainly realistic, but it’s unusual for a genre novel.

The one bright spot is Colin, a bright and resourceful twelve-year-old who’s visiting his great-aunt Mary, the chief university doctor. He ends up– spoiler– helping out in the past, and the general air of incompetence doesn’t extend to him; e.g. he’s the only one who thinks to bring a flashlight and a GPS device.

Bottom line: it’s a really good story, the characters are fun on both temporal sides, and it’s also a very grim ride.

(I learn from Wikipedia that there are three further novels, all featuring Dunworthy, but the time travel is to the 19th and 20th centuries instead.)

At Mefi, someone linked to this very interesting account of failure at a programming startup. There’s a lot to say about Lawrence’s story, starting with the fact that, now 40 years on, dev shops still don’t understand The Mythical Man-Month. Also, that Agile does not give you the magical ability to skip the step where you work out the architecture and internal APIs of your app.

But I want to focus on this: “The idea is brilliant: Natural Language Processing as an interface to interact with big Customer Relationship Management tools such as SAP.”

I’m’a let you finish, but no, it’s not brilliant.


Instead of the user clicking a button to edit old Contacts, they would type, “I want to edit the info about my contact Jenny Hei,” and we would then find the info about Jenny Hei and offer it to the user so they could edit it. That was the new plan.

This was a brilliant idea. Salespeople hate software. They are good dealing with people, but they hate buttons and forms and all the other junk that is part of dealing with software.

People always think that the ideal program would understand English, so all you had to do is talk to it about your problem, and it goes and does it.

At least one early example is Asimov’s “Second Foundation”, from 1949. A teenage girl, Arkady, is using a word processor to type a paper (which happens to give us the exposition for the story).  But she’s interrupted by a real world conversation, the conversation gets recorded in the paper, and she apparently has no way to edit or delete the extra comments– the paper is ruined and she has to start over. What a horrible UI!

Let’s go back to Lawrence’s example.  Posit, for a moment, that the UI works as intended: you can type

I want to edit the info about my contact Jenny Hei.

and the app gets ready to do just that. Awesome, right?

Yes, the first time. When the alternative is looking over an unfamiliar program to find the Contacts button… let’s not even talk about having to watch Youtube tutorials to learn how to use the program, as I’ve had to do with Blender… then just speaking an English sentence sounds very attractive.

The second time, that’s OK too.  The tenth time, especially ten times in a row… you’re going to wonder if there’s a better way.  The thousandth time, you’re going to curse the programmer and his offspring to the third generation.

If you’re a programmer… is this how you want to program?  Do you normally write in COBOL?


Admit it, you thought it was pretty neat when C let you say


rather than

a = a + 1

If you actually had to use Lawrence’s interface, you’d breathe an enormous sigh of relief if someone installed a mod that let you type


And you’d be even happier if the mod allowed you to hit the Contacts button, type J in the search box which is automatically enabled, and hit enter.

It’s not that interfaces can’t get too arcane!  You can get a lot done if you know EMACS really well… but for most people it’s about as easy to master as quantum mechanics.  A WYSIWYG word processor is much nicer.  But notice that we don’t edit by saying






Who has time to type all that?  Or say it, for that matter?

Would you want to drive your car that way?  No, for the same reason you wouldn’t want to drive it with the WASD keys.  Spoken language is just not very precise.  (Do you think you could direct a robot on how to change lanes?  First, how do you communicate exactly how far to turn the wheel?  Second, you probably don’t know how yourself— only your cerebellum knows.)

And this is all assuming that you can program a computer to understand spoken commands. Lawrence’s team evidently didn’t realize that what they were asked to do was implement an AI, at a level that has never been done.

What you probably can do is a more forgiving COBOL. That is, you create a toy world, not unlike Terry Winograd’s SHRDLU, and work out an English-like code to manage it which is rigid in its own way, but happens to recognize a lot of keywords in different orders.  For instance, maybe it can handle all of

I want to edit the info about my contact Jenny Hei

Edit the record under Contacts for Jenny Hei

Search for Jenny Hei in Contacts.

Find Jenny Hei using the Contacts file and let me edit.

Good work!  Now are you quite sure you also allowed these?

I should like to modify the particulars about Jenny Hei, a contact.

Get me Contacts; I’m’a edit Jenny Hei’s record.

Change Jenny Hei’s name to Mei.  She’s under Contacts.

That record I added yesterday.  Let me change it.

Lemme see if I… I mean, I need to check the spelling… just let me see the H’s, OK?  Oh I’m talking about the ‘people I know’ feature.

Is there a Hei in the Contacts thingy?  It might be Hai.  First name is Jennifer.  Did I record it as Jenny?

Natural language is hard. It’s fractally hard. You may be able to interpret simple sentences– like in all those Infocom games of the ’80s– but actual language just throws on construction after construction.  Linguists have been writing about English syntax for more than sixty years and they’re not done yet.

And that’s before we even get into incomplete or ambiguous queries! The user leaves off the key word “Contacts”, or isn’t clear if they’re adding or editing, or gives the name wrong, or gives the name right only it’s recorded wrong in the database, or gives all the edits before saying what they apply to, or the name in question sounds like a command, or the user is malicious and insists that the contact’s name is Robert’); DROP TABLE students;– …

The more you produce the illusion that your app is intelligent, the more users will assume it’s way more intelligent than it is. And when that fails, they will be just as annoyed and frustrated as if they had to learn to push the Contacts button in the first place.

I know a bunch of people are jumping up and down and saying But Siri! Well, first, Google “siri fails”… this could eat up your whole morning. Siri is quite impressive (and has a megacorporation behind its extensive programming), but it has a relatively limited domain (the basic apps on your phone), and also– so far as I know, I don’t have an iPhone– it can’t get deeply into trouble, so its errors are funny rather than devastating.

One of programmers’ oldest dreams, or snares, is to write an interface that’s so simple to use that the business analyst can write most of the app.  I’ve fallen for this one myself, more than once!  The sad truth is even if you do this task pretty well, non-programmers aren’t going to be able to use it.  To program, you have to think like a programmer, and this doesn’t change just because you make the code look like English sentences. I’ve addressed this before; the basic point is, it doesn’t come easily to non-programmers to think in small steps, to remember all the exceptions and hard cases before they come up, or to understand the data structure implied by a process.

Again, this isn’t to say that most app UIs are OK.  Nah, they’re mostly horrible.  But a) people will learn them anyway if they have to, and b) improving them is almost never a matter of making them more like natural language.

Lawrence notes that “salespeople hate software”, and I’m sure he’s right. However, he focuses on the “forms and buttons”, as if these were the sticking point.  They’re not.  Salespeople like making money– Joel Spolsky joked that they’re like The Far Side‘s Ginger


except that instead of only hearing “Ginger” they only hear “money”. Which is great! Software companies need people to go out and make sales. But salespeople are not jazzed about doing paperwork, or database work, which includes editing the contact page in SAP for Jenny.

The irony is that Lawrence, later in the article, runs into exactly the same situation with other developers, but doesn’t make the connection. What devs hate doing is documentation. Lawrence wants his fellow devs to keep a couple pages in the wiki up to date with their APIs, and they just won’t do it, unless he nags them to death.  Is this a UI problem, as Lawrence thinks SAP has?  No, it’s a motivation problem, or a mental skillset problem, or something… and whatever it is, it’s even harder than natural language programming.

(All this doesn’t mean a natural language interface would never be a good idea.  Though come to think of it, large companies that only handle voice recognition for their customer service phone number… that sucks.  They’s too slow and they fail at recognition half the time.  So if you’re a programmer writing an app used by the executives of those companies, that’s when you write a program that requires spoken natural language input.)

Edit: One more thought. Talking about editing the contact list presupposes that the user understands “editing” and “the contact list”. In this context, this is supplied by SAP itself: the customers can be presumed to understand that application’s processes and categories. Right?  It’d be interesting to know how close the customers’ user model is to the actual workings of the product. (Hint: don’t assume it’s very close.)

If a user agent was really smart enough to understand English, I’d expect it to be smart enough to fill in gaps. Do you need to specify “Contacts” if there is only one Jenny Hei in any name field?  If there’s only one Jenny under Contacts, can I leave out “Hei”? Can I define my own categories and tags and use those?  If I were talking to a human, I could say “I’m meeting Jenny on the 18th” and they’d break that down into steps: find the table Jenny is in, add a note about the meeting, find the calendar, add the appointment, set up an alarm for the 17th.  If your app can’t do all this, you don’t have “natural language processing”, you have a verbose but limited special command language.


Mùlán is here to tell you: the China Construction Kit is now available!


I spent yesterday making the Kindle version. If you get that and something is unreadable, drop me a line. I will have a page up shortly with the maps in a larger size.

I hope it’s not a bad sign that the roofers at our apartment didn’t protect the roof against the rain, causing some water damage precisely to my copies of the History of Imperial China.