Oct 13 30 2013


Back when he was writing The Baseball Abstract, Bill James put together a terrific essay on the preseason prospects of the unpromising Chicago Cubs. What would it take to for the lowly Cubs to win the pennant? In essence, he pointed out, even a bad team can win the pennant if the stars excel, some rookies turn out to be better than you expected, and everything breaks right.

The oddity of this year’s Red Sox is that it happened – a last-place team with little short-term hope wound up leading the series 3-2 and heading back to Fenway. But going into the season, if you’d asked “What would it take for this team to get to the Series?”, you’d have said:

  • The stars, Pedroia and Ellsbury, both have MVP seasons.
  • Clay Buccholz has a Cy Young year alongside Jon Lester. Jon Lackey returns to form, and Joel Hanrahan solidifies his role as closer.
  • Will Middlebrooks continues to be terrific.
  • Jackie Bradley Jr. is rookie of the year.

But they won a ton of games, and they’re playing fine ball, and pretty much none of this happened. The only position player who really had a breakout, perception-changing year was Daniel Nava, and he’s the second coming of Brian Daubach. It’s not like Nava’s going to be a superstar, but he’s been great and he’s playing in the Series, and what kind of story is that?

And then there’s the 38-year-old journeyman reliever who suddenly became unhittable.

For that matter, look at Ortiz, who comes into game six in that rarest of rare situations, where having a decent game as DH will make a real difference to his hall of fame candidacy. How often does that happen? He doesn’t have to be Don Larsen or wear a bloody sock: 2-3 with a walk and an RBI in a hard-fought win would do it.

Did you know that Roger Angell is blogging the World Series? Why didn’t I get that memo?

by Erin Morgenstern

Second reading of a book that deserves to be a classic – a superbly crafted and complex, lyrical exploration of marvels and wonder. Fascinating in its conception, The Night Circus is a realist fantasy with none of the archness of Grossman’s The Magician or the nostalgia of Walton’s Among Others. Many fantasies makes you wish for a terrific film version; The Night Circus makes the film superfluous.

Oct 13 22 2013

Ducks In A Row

How much weekday dinner can you get from one duck?

  • paté de foie gras (Ruhlman’s variant, with some chicken liver added to the duck’s liver, topped with gribenes from the duck skin)
  • carrot ginger soup (based on duck stock from the bones and neck)
  • smoked duck breast with Tuscan kale ❧ yorkshire puddings
  • duck confit ❧ fingerling potatoes browned in duck fat
  • apple pie

We’re trying a new approach to finishing Tinderbox Six, the big new release of our Tool For Notes. In place of “testers”, we’re issuing a few backstage passes.

“Backstage Pass” is a better metaphor for artisanal software. We’re not coding to some management spec. We’re not just trying to please One Big Customer. We’re building the best software we can, and we’re finding ways to do stuff that hasn’t been done before. (The term “maximum viable product” could have been coined for Tinderbox.)

Some people are curious about the process. Some people are eager to make sure the new Tinderbox does what they need it to do. Some people have great design ideas and would love to see them implemented.

Obviously it’s not for everyone – and there’s not enough room backstage for everyone. And we need a marketing war chest for the Tinderbox Six launch. So, we’re selling tickets. Some tickets aren’t very expensive, others cost more; there will be some benefits for the more expensive tickets, but mostly it’s “pay what you can”, like an art museum. Or like Alinea and Next, restaurants where you buy tickets instead of making reservations..

We offered 24 tickets last Friday to a small list of long-time Tinderbox testers, to give them first shot. They snapped them all up, in just a few hours. That’s enormously gratifying.

We’ve set up a special discussion board and some Dropboxes and we’re working on more infrastructure and hunting for more space backstage. Just from the weekend discussion, we’ve addressed about twenty problems and scheduled half a dozen cool new features.

It’s not all kittens and skittles. We’re using Glassboard for discussion, in part because it’s got good mobile notification, but I’m not sure all those mobile updates are an entirely good thing. Discussing things like interface animation can be tricky; when someone says “this is really slow!” do they mean “it took 200ms” or “it took 5 minutes” or do they mean “this animation is lame?”

If all goes well, we’ll have a few more tickets next week. If you want to be sure you receive an invitation, Email me.

by Laini Taylor

A fascinating response to Pullman’s His Dark Materials, this is the start of a trilogy about the next Armageddon. Taylor has one of the most economical openings since The Hunt For Red October and uses it to establish that her heroine, Karou, is talented and supernatural and young and in control of her body and her life. We’re coming of age but it’s not about lost virginity.

The first half of this volume is formally a thriller, the second a genre romance. Karou is made for the first and both she and Taylor are sometimes at sea with the latter – especially because the romance gives sparse opportunities for world-building aside from buckets of exposition. We end (as The Golden Compass ends) at the bridge between two worlds, an uneasy resting point at best, but Lyra arrives there through her terrible error while Karou is here because of what her lover has done. The result eerily conjures the pre-teen response to so many movies: can we skip the mushy stuff, since we know how that ends, and get on with it?

The book offers an unforgettable moment when Karou, staring down to enemy angels on a bridge in Prague, finds out that she is of the devil’s party though she did not know it. In fact, the fantasy of the ideal art student in Prague — rich, beautiful, independent, proud, and charmingly vulnerable — is every bit as fine a fantasy as the wings and the magic.

by Poppy Z. Brite

The cooks from the New Orleans restaurant novel Liquor are back. The local DA is nosing around their mentor, a new food critic is panning their restaurant for no apparent reason, and an old flame is offering big fees (and fancy cowboy boots) for a week of consulting at his struggling Dallas restaurant. Naturally, things are not what they seem. Like Liquor, this page-turner is not quite a mystery or a thriller. The book is lots of fun and offers a terrific portrait of a gay marriage; it has more plot than it needs, but that’s not a terrible failing.

More Tinderbox basics from The Creative Cardigan.

I have now been using Tinderbox for a little less than two months. It is already pretty deeply implicated into my daily workflow and what surprises, and delights, me – and this is not the first time I’ve said this – is how a very simple action can have such interesting consequences.

E. P. James collects thirty years of papers, essays, and lectures in a Tinderbox document he calls The Chaos, and crafts some simple agents.

Some of the results were predictably inconclusive or boring. But some were simply revelatory: maybe my 26 year old self was more insightful than I give him credit for (he was entirely uneducated, except for his reading habits) or maybe – more likely – I’ve just not changed and developed during my academic decades quite as much as I’d like to think; but whichever it is, some names and themes have stayed the course and have featured in the most surprising contexts.

Oct 13 9 2013


Another of my old professors has won a Nobel. Congratulations to Martin Karplus!

When you consider that you could walk down the hall any old day and bump into R. B. Woodward, Dudley Herschbach, E. B. Wilson, E. J. Corey, William Lipscomb, and Martin Karplus. Lots of other terrific chemists, too. They sure had a powerhouse.

Oct 13 8 2013


It seems clear that, the way things are going, there’s a real risk that the House will force the US into default. If they do, we’ve been hoping that Obama would rediscover the 14th amendment, or that he’d mint the trillion-dollar coin. Krugman sees the alternative, simply, as “God help us all.”

But Josh Marshall has a good argument that, even though a patch might be better than nothing, it could still be a disaster. And — worse — he fears that Boehner plans to capitulate at the last minute if all else fails but, when the time comes, Boehner will be unwilling to do what needs to be done.

But the stakes are too high to give in. Career Republican aide Mike Lofgren writes:

For God’s sake, how many times do we have to refight the Civil War? You suggested a House discharge petition (which Pelosi is pursuing); I suggest taking off the kid gloves. How about drawing up articles of impeachment against the House and Senate instigators of the shutdown, since they are clearly nonfeasant with respect to their oaths of office, and their actions are causing substantive harm to the public interest?

Bill Moyers:

At least, let's name this for what it is: sabotage of the democratic process. Secession by another means.

We need a fallback plan to save the country. There may be no choice but to attempt something that will seem radical. We face a procedural roadblock; procedures can be devised to remove it. We need to stop playing with the optics and start planning the worst-case endgame.

What are the options? Remove Boehner? Expel Boehner from the House? Expel the Suicide Caucus from the House? Get allies to pledge the full faith and credit of their governments to secure our debt? Accept a trillion dollar gift from the Bank of England? Find twenty patriotic GOP Congresspeople, form a rump, pass a CR and debt limit bill, and then unbar the doors?

We must hope it won’t come to that. But, if Boehner cannot do what must be done, we need a plan in place, and we need enough time to execute it.

This ain’t beanbag.

“We stand at Armageddon and we battle for the Lord.” — Theodore Roosevelt.

by Seanan McGuire

Verity Price, fresh from rural Oregon, occupies a tiny semi-legal Greenwich Village sublet whilst pursuing her avocation for professional ballroom dancing and her studies in the zoology of creatures most people assume to by mythical. The streets of New York, it turns out, are quite full of obscurely supernatural beings: boogymen who own strip clubs, dragon princesses who work as waitresses, brownies who run a breakfast bakery.

But what girl doesn’t have a few problems? Verity’s problems include a tribe of intelligent mice who devise arcane religious ceremonies around her family, a telepathic cousin, an International Order that is sworn to exterminate the people Verity studies, a little sister named Antimony who likes to play with snares and pitfalls, and of course the dance competition judges. This confection could bear with a little more dance and a little less Buffy, but it’s good fun.

Oct 13 4 2013

Abelson on Aaron

Hal Abelson tries to sum up the lesson of Aaron Swartz in MIT’s Tech Review.

Though Aaron Swartz was not an MIT student, he was like many of our students: brilliant, passionate, technically empowered. Yet he was also dangerously naïve about the reality of exercising that power, to the extent that he destroyed himself.

This bland passivity echoes the Abelson Report. The author of the great The Structure And Interpretation Of Computer Programs and of Turtle Geometry is capable of better, and Aaron deserved better.

Was Swartz in fact “dangerously naïve” to download those articles? I’m not convinced, and I’ve seen nothing in the record that convinces me. If Swartz was in fact pursuing the research project I believe he had in mind, there was no real need to use that utility closet: he knew plenty of MIT professors and postdocs and grad students who'd have been interested in the work and who would have been happy to plug his laptop into a socket in their office. And, yes, they might perhaps have gotten a knock on the door from the men in black, or a call from JSTOR. But nobody would be accusing them of dangerous naïveté or of lacking seykhel, not if they had grey hair and tenure.

Aaron was pursuing knowledge, using university facilities dedicated to that pursuit.

To follow knowledge like a sinking star,
Beyond the utmost bound of human thought.

As sometimes happens, his pursuit inconvenienced other people. He adapted his work both to minimize the inconvenience, and also to make it harder to blame him. Similar things happen in every lab and every dorm. Then an ambitious prosecutor thought she had found a high-profile case perfectly timed in advance of the governor’s race.

There but for fortune go you or I.

Hill Climbing (Wonkish)

Refactoring is a process of editing software that doesn’t change what the software does, but instead improves it by making it more clear, more concise, or more direct. Refactoring is to code what structural editing is to prose. The debate about the utility of refactoring is just a rehash of the perpetual debate about revision. Everyone agrees that you ought to revise and that you never can revise enough. There are people like Mozart and Trollope who never revise and who do just fine, but most writers agree that’s fine for them and not a great idea for you and me.

Most of the classic refactorings run in two directions. We can Extract Method to break a long procedure into small and reusable components, and we can Inline Method to get rid of a small method that’s not pulling its weight. We can Pull Up Method to let a bunch of subclasses share common behavior, or we can Push Down Method so only the subclass that uses this behavior needs to know about it. Refactoring then becomes a matter of hill climbing, gradually improving the entire work by making a series of minor changes that facilitate larger and larger changes. When refactoring, how do we know which way is up?

Two broad approaches to the topography of code have been proposed. We move away from code smells, and we refactor toward patterns. These make sense, as far as they go. We should repair blunders in code just as we’d fix grammatical accidents or mixed metaphors, and if we see an opportunity to take some scattered code and rewrite it in a clean, ordered, and structured manner, that’s always a good idea. But these are exceptional cases. How do we refactor when there’s no grand pattern at hand and where we don’t see a straightforward way to expunging a code smell?

This is a central question of the craft of software today, and it’s seldom discussed. We talk around the question by contriving ever longer lists of code smells, but that’s not really a solution: code smells should be things we agree are usually or always bad, not things that might often be perfectly fine. We talk around the question by assuming that management won’t let us refactor even the obvious cases and so worrying about subtle situations is a waste. But not everyone has a pointy-haired boss. I’m surprised there’s so little literature on this question. I think at this point I’ve covered the books, but perhaps I’ve missed great stuff in the journal literature. Email me.

My two cents holds that, when the direction of refactoring is not immediately clear, we drive the ponies in the following directions:

  1. Extract fields, methods, and classes when there is any prospect of eventual reuse by additional methods.
  2. Do not underestimate the impact of tiny methods on cleaning up your code. Invoking small methods let you omit needless words.
  3. Extract whenever extracting reduces the length of code — including comments (not counting doc comments required by coding standards, which don’t count).
  4. Prefer polymorphism to switch(), even if the code is longer.
  5. Prefer encapsulation to visibility.
  6. Break dependencies.
  7. Simplify constructors, even if it complicates the code.
  8. Encapsulate or avoid conditional expressions. Prefer guard expressions and avoid else clauses. The gate is straight down.
  9. Prefer a dedicated type to a primitive, even if the code is longer; it’s better to pass Money than an integer even if you know the integer is money.
  10. When in doubt, prefer composition to inheritance .
  11. When in doubt, move computation to the object that owns the data or move the data to the object that does the computation (aka Law of Demeter).
  12. Prefer small objects, loosely coupled, to large objects and to tight coupling.
  13. When in doubt, prefer recursion to loops.
  14. Isolate the network, the database, files, and the user interface with facades, fakes, and humble objects.
  15. When in doubt, add code to the model if you can, to the controller if you must. Regard any work in the view as a convenience function or syntactic sugar, but don’t let that stop you.
  16. Prefer blocks (apply, each, mapcar) to loops.
  17. Prefer new technology.

If you’re new ’round here, I’m deep in the weeds on Tinderbox Six. Tinderbox is a tool for notes, a spreadsheet for ideas that helps people visualize, organize, and share complex interlinked ideas. It’s a knowledge representation system for everyone’s everyday knowledge work. If you’re interested in the design, you might enjoy my book on The Tinderbox Way. You can download a free demo of Tinderbox 5. There’s a terrific user community.

by Poppy Z. Brite

A pair of young, gay, line cooks, broke and recently canned, are getting plastered on the New Orleans levee and musing about starting their own restaurant. They’d call it Liquor, a place where every dish is based on a drink and no idiot manager would harass them. They know it will never happen. They get a new job, cooking in the back of a friend’s bar. Then, their calvados-soaked stuffed dates get some attention from food critics, from potential investors, and from one of their former managers — a fellow with a big grudge and a small connection to the mob.

Formally, this isn’t quite a mystery and it isn’t quite a thriller. It’s got plenty of plot, though, and some really fine food.

Oct 13 1 2013


So, thirty years ago Linda and I decided to get married. We went out to celebrate at Harvest. The restaurant’s still there, and so we visited last night. They’re doing some great stuff, especially the butter and sugar corn soup — the best chowder I remember.

The stability of Harvard Square is nicer when places actually improve with time.

When you encounter problems in your software, you should tell the developers. That’s how we learn about errors and how we clarify misunderstandings.

But, when you tell us, go ahead and provide details. Lately, I’ve been wasting an enormous amount of time like this.

User: “_____ isn’t working right.”
Me: “What, exactly, are you doing. And what do you expect to see.”
User (several days later): I’m copying stuff from Tinderbox and then pasting.
Me: “Where are you pasting?”
User: Word
Me (aside): What version of Word? (to user) I copied the following passage from a Tinderbox text window to Microsoft Word 2011. It looks right to me.
User: I meant, I was dragging from Tinderbox.

Folks: we really treasure problem reports. But at this point in the release cycle, we’re scrounging time wherever it can be found: going short on sleep, implementing tricky new features with a sandwich in one hand, refactoring in the small hours of the night. So, keep writing, but please try to include enough information!

We’re shutting down satellites and Mars Rovers for the duration of the governnment shutdown, and hoping that the damage won’t be irreparable.

Conservative Andrew Sullivan writes, correctly:

It is an attack on the governance and the constitutional order of the United States.

Fallows, who has performed an essential public service with Your False Equivalence Guide To The Days Ahead, points out that this is essentially Calhounism, an insistence by the Republicans that their policy must prevail and that, if it does not, the nation shall be destroyed. We are, all of us, back at Lincoln’s Cooper Union Speech:

Your purpose, then, plainly stated, is that you will destroy the Government, unless you be allowed to construe and enforce the Constitution as you please, on all points in dispute between you and us. You will rule or ruin in all events. This, plainly stated, is your language…

In that supposed event, you say, you will destroy the Union; and then, you say, the great crime of having destroyed it will be upon us! That is cool. A highwayman holds a pistol to my ear, and mutters through his teeth, "Stand and deliver, or I shall kill you, and then you will be a murderer!"

But perhaps the answer is that, if this fight must come, let it come now. Perhaps the answer is that the Democrats should in fact no longer accept merely a clean continuing resolution. That deal was available before the damage the Republican revolutionaries have wrought. Now, perhaps, the Democrats must hold out for capitulation — ending the sequester, ending the debt limit, and ending the filibuster on all of Obama’s appointments. If we are bound to deal with insurrection and terror, than we must deal with it. And if the Republican Party seeks to damage the nation for its narrow partisan purposes, we must do our best not merely to block it for a time, but to ensure that it can do no further harm.