Sep 14 3 2014


Over dinner with a bunch of college friends we tackled the interesting problem of a nine-year-old acquaintance with a library problem. She’s too young to receive a library card, she’s entirely sick of the Childrens’ Room, and she needs stuff to read.

I believe we’ve compiled a list of suitable titles that will hold her until she’s 21.

It’s disturbing that librarians still do this. I’ve always viewed Librarians as my natural enemy. For years, the Library was a contest between my wish to get access to The Good Books and the Librarian’s wish to make sure I stayed quietly in my place. You’d think, with all the discussion of the obsolescence and irrelevance of the library, the impact of new media, the notorious (though spurious) decline in attention span, the conversion of the public library to a place where everyone can use a PC, declining public support and plummeting budgets, they’d have figured out how to let book-loving children become library supporters.

Apparently not.

Aug 14 27 2014


For some reason, my little sister asks how to make pancakes. She says she’s tried many recipes.

The trick — the trick to lots of cooking — is to think things through. Be systematic and think ahead, and it’s easy.

From the pantry, get

  • baking soda
  • baking powder
  • flour
  • sugar

Get them in one trip, not four separate trips. If you go to the pantry once, it’s breakfast. Four times, it’s a production. You’re making pancakes, not a big tsimmes. Put them on the counter. (Professional cooks call this getting your mise en place. You can sing this while you’re cooking pancakes; it's sure to brighten your morning.)

From the cupboard, get

  • a mixing bowl
  • liquid measuring cup
  • flour measuring cup
  • wooden spoon
  • salt
  • measuring spoons

The same rule applies: know what you’re getting, get it, put it on the counter.

From the refrigerator, get

  • milk or buttermilk (buttermilk is better. Get a carton; it's not a big deal and it keeps really well)
  • maple syrup

You can do this by running down the ingredients in Joy of Cooking and fetching them one by one. That’s how I started out. It means thirteen treks across the kitchen to get started, and that takes time. Think ahead, keep related things in the same place, and you can do this in three steps. You can gather everything you need in under a minute.

I didn’t put the kitchen scale in this list, because most pancake recipes use volume, not weight. By volume, you want the same amount of flour and milk (which is easy to remember) and about 1 extra-large egg for each cup of flour. By weight, this works out to about 4oz flour, 6 oz milk, and 1 egg.

  • 3/4 C flour
  • 3/4 tsp baking powder
  • ½ tsp baking soda (if you use buttermilk, which you should)
  • ½ tsp salt
  • 1 tablespoon sugar

Mix the dry ingredients. Then add

  • 3/4 C milk or buttermilk
  • 1 egg

and stir until mostly mixed. Don't worry too much about lumps. Don't whip it to a froth. Let it sit for a minute. Then cook the pancakes.

Pancakes are not finicky. I say the ratio of flour to liquid (by weight) is 2:3. Ruhlman says 1:1, because Ruhlman likes his pancakes a little heftier than I do. Lately, I’m on a fluffy pancake kick, even stretching to the warm, creamy interior they manage so well at Dottie's True Blue Cafe (522 Jones St, San Francisco). Pancakes are forgiving, so you have a lot of latitude.

You can put stuff in your pancakes. Crumble a few pecans; they’re good. Or a few blueberries. Or cut the kernels off an ear of corn, leave out the sugar, and you've got corn crepes to go with dinner. That’s not leftover beef stew: it’s braised beef in fresh corn crepes!

(I cribbed this from a booklet I started on dormitory cooking, Duck Confit and Other Birds, intended for the cohort of nieces and nephews who were about to go to college. Now, the first batch are graduating and I’m still shilly-shallying. Oh well.)

by Craig Johnson

A top-flight mystery, deserving a place alonside Hillerman and McGarrity, and heavily influenced as well by the brilliant Janwillem van de Wetering, whose Commisaris fought in the Second World War, whose detective Gipstra grew up in its wake, and whose young protégé De Gier read about the War in books. Here, the war is Vietnam, and a young woman has been found dead near the highway. In her knapsack, she’s got a picture of the sherif, back when he was in country. Highly recommended.

Aug 14 22 2014


The persistence of tumult in Ferguson, it seems to me, remains rooted in police tactics that do not seem to have been thought through.   Some of the mistakes have been widely discussed, but others seem not to have been.

The wrong tool for the task.  Different firearms are meant for different purposes. Most people don’t know a lot about guns and their uses, but we see a lot of guns in movies and on television, and so everyone has some theatrical sense of what different kinds of guns are saying.  

A tripod-mounted machine gun, as shown in the famous photo, is meant to defend your WW1 trench from a legion of onrushing Huns. Onlookers see that you consider them to be onrushing Huns.  (Update: a better-informed reader reports that this is actually a sniper’s rifle. The same story applies: what possible reason would Ferguson police have for a weapon intended to shoot someone at a range of, say, 800 yards?)

A rifle is meant to kill enemies at long range; onlookers see that you consider them to be enemies — all of them, even (especially) those hundreds of yards away.

Automatic weapons spread a lot of lead around. If you wave them about in the street (or in the airport – you saw this all the time right after 9/11), it can mean two things. Either (a) they are expecting to kill a lot of us, or (b) these clowns don’t know what they’re doing. Neither message helps protect citizens or property.

The wrong end of the tool.  You see lots of police officers pointing guns in Ferguson. Everyone knows that you don’t want to point a gun at someone unless you intend to shoot them. 

Weapons belong in holsters. That includes batons and mace. Shields belong back at the station. 

The wrong task. In war, the safety of the troops you command is paramount. This is not war; it’s police work. 

It’s hard to tell police officers that it’s their job to protect citizens and their property, and that in doing so they might be injured or killed. That is what leadership requires. It is hard and dangerous work to face bricks and bottles with empty hands, but that's the job you have.

It’s your job to protect the corner store. If things get scary, this isn’t war: you can run away. 

If someone does shoot you, we’ll call an ambulance. If the ambulance can't get through — and only then — well, that’s why we have that armored car back in the garage.  

The wrong clothes. The absurdity of desert camouflage in suburban Missouri is evident, but here, again, police are indulging a fantasy instead of doing their job.  Their job right now in Ferguson is to protect citizens and property, and their problem is that there are only so many police officers. The police should be dressed to be most visible, most recognizable, and most approachable. They should not be dressed for a fight. Full dress uniform might be a good idea — not least because it's costly and hard to clean.  

Unless absolutely required for the job at hand, face masks should be forbidden.  You want people to see you (and you want the press to depict you) as a person, a potential ally.  Dress as you would, in short, if you were going to visit Mrs. Lydon’s kindergarten classroom.

The wrong onlookers. I’d love to see Barack Obama march tonight in the streets of Ferguson. It would be dangerous, but it could be a historic crossroads for the nation. 

Barring that, I’d love to see a dozen Democratic members of the House and Senate march tonight, along with Hank Aaron and Billy Williams and Ernie Banks and Bob Gibson. Worried about security? Give Gibson a baseball, just as a precaution.

What do you want to read next? And what do you want to have read by this time, next year? These questions, it seems to me, matter a lot. We seldom talk about them.

Some people don’t read much, and that settles that. Few people are willing to talk about not reading, at least not with the directness of Marco Arment:

I hardly ever buy Kindle ebooks, but that’s easy because I hardly ever buy or read any books.

I can’t see this. First, books are fun. Second, they’re powerful: if you master four or five books, for example, you know chemistry. (Dudley Herschbach told me this when I was starting graduate school. I thought he was pulling my leg. But he was pretty much right: undergraduate chemistry is pretty much what we know about chemistry, and graduate school is about learning to think about the problems, not the molecules.) Third, lots of things I need to know – things like test-driven development techniques, hypertext algorithms, public policy – are much easier to write about than to talk about. Fourth, books are a lot of fun.

But I flit from book to book without much planning. Sure, I sometimes suffer from some nagging qualms over my Swarthmore-bred tendency to immerse myself in a topical theme park: is it really ideal to read five or six histories of the fall of the Roman Empire, or a score of YA dystopian novels? After all, I know from this weblog that, year in and year out, I’m only going to get through about fifty books a year, and there are tons of great books I’m not reading. (There’s a new Pearlstein out; his first has been on my bedside stack for three years. There was a new Robert Caro last year; it’s predecessor has been on my bedside stack for five. I could go on.)

Even at Readercon, where everyone reads, the reading question evokes incomprehension. At this point, I guess I’ve asked everyone in sight. Some memorable responses (all paraphrases):

  • I remember reading for fun, but I don’t do that. I always read what I must read for work, and that’s more than I can manage. (This from a prominent reviewer and bookman)
  • I read whatever is next on my stack, and I dread running out of something decent to read. (This from a writer who reads about 300 novels/year)
  • My next book is whatever book seems most interesting at the moment when I finish the previous book. (This is very common.)
  • I’m in the midst of a research project for my next book, so all my reading is dictated by the need to get up to speed on New York in the 1920s/terraformed asteroids/everything written about vampires and the Great War.

My neighbors enjoy the television series, Longmire. Linda and I really liked the first three or four shows, which bring the atmosphere of contemporary Scandinavian mysteries to the American West, Wallander with less rain. So, I bought the audiobook of the first Longmire to see if the books were written as well. They are: I read this back in 2006. But George Guidall reads the book so brilliantly that I’ll likely stay with it. The sly, slow hours of my tedious commute run to 12-15 audiobooks/year, so this little adventure will consume 7% of my annual supply.)

An upside down dinner party.

Eat Dessert First

  • Thai baked banana, banana glaze, fried shallow, red pepper
  • Hungarian cherry soup

Night Breakfast

  • Corn crepes, duck confit, bbq sauce
  • Bagel bombs (cream cheese, bacon, chives)

Penang Pastrami

  • Brisket, cured in kaffir lime, ginger, salt, sugar, pink salt, pickling spice; rubbed in home-made penang curry paste and smoked over oak, then braised in coconut milk, thai peppers, kaffir lime leaves, fennel, sweet corn, red pepper.


  • kaffir lime and coconut sorbet
  • Nate and Hannah’s delicious berry tart

And through it all, the sommelier’s fascinating wine selections. Splendiferous, even though the beef was over-cured and didn’t need the smoke.

The monthly software journal has established itself as a key voice in contemporary software. The new issue on testing is terrific.

You might think that testing is a way to locate defects before delivery, and that was in fact the role of testing for many years. Very recently, however, prominent software developers have advocated a style of work in which tests play a central role in design. For each component of the system, you begin by sketching out a series of tests that define its behavior. You write a test, and then write just enough of the component’s functionality to pass that specific test. Then you write the next test. If the original test plan was correct, then when you're passing every test, you know that you’ve built the entire component, and that it works.

Arne Schroppe and Daniel Eggert’s article on Real World Testing doesn’t break much new ground, but it’s a solid and readable example that doesn’t gloss over the difficult parts. It describes a real system, not a toy: too much of the literature describes either toy examples or incomprehensibly large and ill-described enterprise systems. They’ve got 190 files, 18,000 lines. That works out to about 200 lines per object (since about half the files will be headers and protocols). That’s pretty impressive; small objects and tiny methods with a vengeance. (Tinderbox Six has 1066 files today.)

Testing asynchronous tasks is discussed here, though not in anything like the detail that’s needed. The documentation on XCTestExpectation must be somewhere, right? Probably same place as the documentation on time zones before November, 1883. But that’s not the only problem with asynchronous testing: I’ve read fairly deeply in the test-driven design literature – in book form, at any rate – and there’s really very little on pragmatic testing of asynchronous systems.

And nowadays, everything is asynchronous! Every network fetch, of course, has to be asynchronous because we don’t want the user to wait. Likewise, scaling and adjusting images. Every user interface transition is animated nowadays, so all of that needs to be asynchronous. Every processing-intensive step (Tinderbox agents, I’m looking at you!) needs to be asynchronous.

So there’s lots of stuff being shuttled off to the extra cores of your processor, and that means lots of opportunities for contention, starvation, and unexpected deadlocks. Sure, good design will save you from the worst of this, but not every design starts out to be good. That’s the whole point of test-driven design: we evolve and grow toward correct behavior.

In particular, suppose you discover and fix a deadlock. How do you design a test that protects against a reversion error for that bug?

For that matter, suppose I’ve got a task that’s asynchronous. It typically takes 5ms, occasionally 50ms; a naive test might say, “wait 100ms, see if it’s finished, and if it's not finished, something’s gone wrong.” And that’s fine, except you really don’t want to pause for a whole tenth of a second when, most of the time, you’d be wasting 95% of that time. A tenth of a second doesn’t sound too bad, but when you’ve got 843 tests, that’s 84 seconds every time you turn around. (The Tinderbox test suite currently runs in about 12sec, which is bearable but too slow.) And you don't want to cut it too close, either, because sometimes your system is busy and sometimes it’s slow and you definitely don’t want tests that work most of the time and fail occasionally. (If your tests have a false failure rate of 0.1% and you’ve got 843 tests, your test suite is going to fail most of the time for no good reason and you’ll never notice the real failures.)

If there’s much about making asynchronous tests fast without also making them brittle, I can’t find it. But this article is a great place to start.

Aug 14 16 2014

Beauty Queens

by Libba Bray

A plane of contestants for the Miss Teen Dream pageant crashes on a desert island. Thirteen young ladies survive. The island is infested with giant snakes, scary idols, an absence of food and beauty products, and no people. (OK: there’s an armed compound of privatized CIA agents of The Corporation on Another Part Of The Island™, but nobody told us about that.) We’re ready for Lord Of The Flies, with girls.

The great part of this pleasantly predictable frolic is the audiobook, read by the author, in fourteen accents for the thirteen Teen Dreamers. (One contestant starts out speaking Indian British, but a close encounter with the inevitable pool of quicksand leaves her returning to her native Valley Girl dialect.) Libba Bray sure can read.

Yesterday, I asked the world about time zones, OS X, and the idiosyncrasies and complexities of conversion.

I asked Mark Anderson whether he could narrow down the problem. The redoubtable Mark Anderson promptly pointed out that “12/31/1883” is off by a day, but 1/1/1884 isn’t.

What on earth is special about 1884?

Four standard time zones for the continental United States were introduced on November 18, 1883.

So, our handling of the shuffle between the local time zone and universal time apparently needs to take into account that time zones don’t exist before 1883? Does OS X really know about the invention of the railroad?

Aug 14 15 2014



You’d be surprised to know how many Tinderbox support queries we receive concerning historical dates. I remember one month where it seemed every day brought a new question about dates more than a thousand years back.

Date conversions seems straightforward. The user types a string "August 12, 2014" or “8/12/14” and the system converts it to whatever internal representation it uses.

Of course, “8/12/14” in England means “December 8”. So, we need to know where you are. In Sweden, we’d write “2014–08-12” with dashes in place of slashes. In Germany, we’d use periods and write “12.8.14.” So things get a little bit complicated.

Where life really gets tricky is for historic dates. We all agree that the day begins at midnight, but that wasn’t always true; for lots of history, the new day began at sunset. Does OS X treat sunset, or 6PM, as the end of the day for some periods?

Until 1752, New Year’s Day in Britain was March 25. This means that the day Shakespeare knew perfectly well to be 5 January 1602 falls in the year that we ca;; 1603. If you’re using the Gregorian calendar, does OS X adapt dates prior to the adoption of the Gregorian calendar?

Some aspects of the calendar depend on where you are, but of course historians often study people who lived somewhere else. If you’re in Princeton, New Jersey but you’re writing about Pharsala, I assume that all the date conventions we use are those of the US (and, before then, of England).

I ask because, for some Tinderbox users, some historic dates have an off-by-one-day error. Or, perhaps Tinderbox is right, and we’re making a bad assumption. Surely this all is documented somewhere. But where?

If you know where this is documented, please Email me.

There was a desert wind blowing that night. It was one of those hot dry Santa Ana's that come down through the mountain passes and curl your hair and make your nerves jump and your skin itch. On nights like that every booze party ends in a fight. Meek little wives feel the edge of the carving knife and study their husbands' necks. — Raymond Chandler, Red Wind

Exposition is a problem for fantastika – the literature of science fiction, fantasy, and horror, the literature of the unfamiliar world.

You start, say, with a terrifically tense scene in which the ship’s engineer discovers that something is terribly wrong. This is exciting stuff, and it establishes the ship, the engineer, and other crew members who are all engaged in a desperate effort to save the ship. And then, we stop: everything comes to a standstill while we explain to the reader how spaceships work and why the cracked dilithium crystals are such a big deal. The engineer knows this. Everyone knows this. But the reader doesn’t know this, and somehow we need to stop and have a kindergarten lesson on space travel.

The same thing happens in horror and fantasy, even when the underlying elements are familiar. Everyone knows what a vampire is, but any specific vampire story has to establish which of the traditional ground rules apply and which do not.

This is not an obstacle we cannot overcome. Dr. Watson was born to do this. So was Gandalf. We can do surprising things by just skipping the exposition; O’Brian’s wonderful Aubrey-Maturin stories show that we don’t even need to be intelligible to get the point across. We need not be clumsy, but we need to take care.

Exposition is also a problem for new media. Interactive Fiction, strictly defined, often seems entirely given over to exposition: you go North, and the system tells you where you are and where you can go next. You move again, and the system tells you what you see next. The cutscenes of games often think they are providing narrative excitement but in practice they may simply be tedious expository episodes, reciting the names and backstories of each character in order to make their cardboard slightly less flimsy.

There’s a lot of direct address in classing hypertext fiction, too; it’s not always exposition, but all that intertextual guidance to the reader has a similar effect. Most of the hyperfiction crowd saw the problem and addressed it with some skill; lots of game creators, approaching the work in different terms and not always accustomed to wrestling with the problem in writing workshops and also often appealing to TV conventions where exposition can be useful before or after an ad break, indulged exposition more directly.

I’ve been writing to half the world, it seems, to inquire about good writing on exposition and electronic or interactive media. But the world, thus far, has come up fairly empty. Surely there is good discussion of the problem and its solutions!

If you know where to look, please Email me.

by Leonie Swann

A TLS summer reading recommendation. George, the shepherd, has been found dead in the pasture, impaled with a spade. The flock meet to discuss this unsettling turn of events. On the one hand, George was not a particularly good shepherd. On the other hand, George read to them — romance stories, a book on the diseases of sheep — and the sheep like stories very much indeed. One of the ewes, Miss Maple, who is the smartest sheep in Glennkill (and perhaps in the world) wants to discover who would do this thing. “I think we owe George that. If a fierce dog took one of our lambs, he always tried to find the culprit. Anyway, he was our shepherd. Nobody had a right to stick a spade in him. That’s wolfish behavior.” And so a flock of sheep, working (more or less) in concert, set off to obtain justice.

by Jules Verne

80 Days, Meg Jaynath’s heralded game adaptation for iOS, has been much discussed lately. I’d never read the book, and I thought it might be a good idea to know the original before diving into its interactive steampunk adaptation.

It’s an interesting book. We all know the story, of course, and though Verne is one of the first masters of scientific romance, this isn’t SF: everything in the book was quite possible in 1872. It’s fun too, to see how the Western US looked to Europeans back then, a wilderness of beauty and violence where civilization was never more than a veneer, and where Chicago itself had just risen from its ashes. Sure, it’s wildly colonial. It’s actually more feminist than I would have expected, and it’s worth mentioning that nobody raises an eyebrow at the prospect of interracial marriage,

What’s best here, though, is the interesting construction in which a French servant views his ultra-British master while the rest of the world whizzes past. Quiet shifts of time and viewpoint manage narrative stress with seeming effortlessness. Throughout, the ultimate virtues are those of a good traveller: punctuality, flexibility, openness to experience, consideration for one’s companions, but above all a willingness to accept delays and disappointments you cannot change and a refusal to worry about problems if worrying will not help.

Aug 14 7 2014

Hello, Kitty

From this morning’s advertisement for the Electronic Book Review:

Gwen Le Cor casts a new light on contemporary writing in mew media.

The underlying essay claims it is trying to apply the ideas of fluid dynamics to understand the electronic poetry of Stephanie Strickland and Lawson Jaramillo. In practice, it appears to apply some terminology without really understanding it. What literary critic has ever modeled reading, much less Text, as a system of linear equations? No one construes construction as strictly accumulative. No one believes that understanding of a text is either univalent or continuous, or indeed that any significant part of the experience of reading exhibits univalent or continuity. In other words, of course we see this sense of nonlinearity in Strickland; we see exactly the same nonlinearity in afternoon, in Pride and Prejudice, in The Illiad.

Gwen Le Cor works at Paris 8, a storied department that happens to be famous for work on the inherent nonlinearity of the text. Indeed, the definition of linearity taken from a popular overview and used here,

the rule that determines what a piece in the system is going to do next is not influenced by what it is doing now

is patently incompatible with the reader’s role in interpretation, an issue to which Paris 8 made such great contributions. If you bring your understanding to the text, then the text you’ve just read surely influences what you’re about to understand.

For some reason, English professors (or, in this case, titulaires of the Département d’Etudes des Pays Anglophones) love to find metaphors in stylish physics and mathematics. Fifty years ago, physicists and mathematicians borrowed some mundane terms like “bifurcatation” and “chaos” as metaphors for the mathematical constructs they were studying. Ffty years later, we turn around and try to use those metaphors metaphorically, but without seeming to pay very close attention to what the equations mean. Thirty years ago, they were doing this with Heisenberg and Pauli. Now it’s fluid dynamics; in 2060 they’ll be going on about compiler optimization in contemporary literature.

Science is fun and interesting. If you really want to do fluid dynamics, do it. Learn the tools, learn how to turn the crank. Then, if you like, come back and see what you can learn by applying them to poems. Don’t simply borrow the jargon and the dress.

Still, perhaps “mew media” is an idea worth closer study.

by John Marsden

This was the first electronic book that I borrowed from the public library.

Summer is winding up in a small Australian town. Two high school girls get permission to take some friends camping in the outback before they return for their last year of school. The parents insist they take along at least four, preferably six, additional kids; Ellie wryly admits that this is meant to reduce the likelihood of an orgy and considers her life far less interesting than the one her parents keep imagining she has. And so they choose our motley crew of kids they’ve always known (the rowdy boy from the farm down the road, the piously Christian girl who is good at sports) and a few kids from school whom they don’t know well but who seem interesting. They have a nice week. Things go well.

They come home, looking forward to hot showers (and a few cold showers) and find instead that Australia has been invaded, that everyone has been rounded up at the Commemoration Day Fair. Nobody feels much like turning themselves in. In moments, we’re in the midst of Red Dawn.

What makes this work, and what what doomed Red Dawn, is that Marsden need not carry around the baggage surrounding rural tea-party America. These country kids are strikingly competent – our protagonist Ellie doesn’t have a license but she’s been driving tractors since she was six. She can dip sheep, shoot rabbits, and tend chickens, and make a fire for the billy-can. But she gets along with a stoner, a rowdy joker, the quietly intellectual Thai/Vietnamese kid whose family run a restaurant in town and the devout Fundie girl. This used to be us, but it really isn't anymore. Combined with the effortless sexual politics that seems a common note of Australian pop culture, that makes Tomorrow, When The War Began a nifty romp.

It’s also a thoughtful story in which characters experience violence and think through the consequences of the terrible things they’re doing. Marsden catches nicely how, when things change, they don’t all change at once. Late in the book, as we’re resting for the final combat, Ellie asks one of the other girls what she’s reading. It turns out that it’s My Brilliant Career. “She said, ‘Yeah, it’s OK. We’ve got to read it for English.’” They’re in the middle of a guerrilla war, one of them’s already been shot, but we’re still getting a head start on a school year that’s never going to come.

by Karen Joy Fowler

A Readercon recommendation, praised for its deft handling of exposition. Also on the Booker long-list. Instead of stating a backstory, Fowler shows how the narrator’s response is skewed by previous events, events which are not yet in evidence but which can now be presented since they are.

A wonderful book. Don’t read the flap copy, and don’t read online plot summaries. Don’t read reviews. Just grab the book.