Dec 08 31 2008

Taking Stock

  • Congratulations to Dame Wendy Hall (!)
  • Via Elin Sjursen, sad news that Jose Tesoro, long-time advocate of Tinderbox for applications in the law, died in a fall at Hong Kong airport earlier this month.
  • Jon Buscall takes stock of his freelancing this year, and lists his favorite tools.
  • And day now, the mailman should bring me Ted Nelson’s new book, Geeks Bearing Gifts.
  • Nice vignette by Eliza Blair on how she became "That Chick with the Swiss Army Knife the Size of a Hamster." It looks like the merest blog cheese sandwich, but notice how she introduces characters, generates a bit of dramatic tension, and subtly leaves a loose end (the personal significance of the knife!) to be picked up another day.
  • I spent some time in the Apple Store this month, helping Linda get her computer diagnosed and repaired. The Apple Store is one impressive retail operation, not least because it's filled with so many cheerful employees. Where so many people in stores were looking sad, or swamped with work, or simply hostile, the Apple place was filled with good cheer and competence.
  • And the competence at the Genius Bar person was pretty impressive. Let's face it: I'm not a hardware person anymore, but I've been using, fixing, and upgrading Eastgate’s Macs since we got our original 1984 seed machine. These guys did not try to snow Linda, and they didn’t try to upsell her while pointing out that, for some purposes, it would be more cost-effective to get a new Mac than to put a fresh logic board into her G5 tower. They did a lot of work without charge. When I went technical on them, they kept up; when we got a bit impatient after three hours (this mall also has the Worst Borders In North America) of waiting for the installation to fail, they were charming and sympathetic and everything a retail trainer could ask for.

Roger Eberts sums up the way things are in Things Fall Apart. “Nothing,” he says, “cures wealth like illness.” He’s learned the hard way. The weather has gone crazy, the economy has gone mad, the Middle East is filled with nukes.

If you are a member of the U.S. Congress, you should not give a damn if you are a Democrat or a Republican. You should discard ideology and partisanship. You should be searching only for what works, or gives promise of working. You should be listening to the best counsel of the wisest people you can find. This is no time for playing to the crowd. That is all over with. This is the hour to seek what might lead us back from the brink.

“The economy is going to get worse,” he reminds us. “We may have no idea how much worse.” Tired of hearing old stories about The Great Depression, we may get to experience our own. In which case, when we're talking about feeding the wolf at the door, it might also be good to remember that goat cheese souflée is also pretty cheap to make.

Dec 08 28 2008

Sunday Dinner

Sunday. I'm recovering from a cold. There's lots of football to watch. The larder is pretty bare, the holiday banquet leftovers are getting thing, there's no time (or cash) for much shopping.

No problem:

  • goat cheese souflée
  • spinach salad
  • Maggy’s farm lamb chops
  • leftover chocoloate meringue pie

We has a couple of lamb chops from our farm share nicely thawed. I’m doling these out in tiny portions — basically one chop per dinner — and so we need something else. But Linda has asked last night, “where does the word ‘meringue’ come from?” So that led to McGee’s On Food and Cooking, and the etymology of “meringue” is not very far from the section on souflées and McGee’s reminder that the souflée is neither tricky nor difficult.

Very tasty!

Try not to miss “Let The Right One In” (Låt den rätte komma in), a brilliant Swedish vampire movie. (Movie site, IMDB, Ebert, RottenTomatoes). Two twelve-year-olds meet and become friends, in a story not meant for 12-year-olds (but which many 12-years old will totally get). Dense, allusive, tricky, and complex.

A fantastic movie. In Boston, it's at the Somerville.

Let The Right One In
  • Lemon Ginger Gin Smash (in martini glasses) (thanks, AvecEric!)
  • Roast pumpkin soup, créme fraîche and candied walnuts
  • Lamb-apricot sausage, baked in brioche (thanks, MarkAnderson), with a taste of foie gras, served with sauternes (thanks, HughDavis)
  • Fennel, blood oranges, almonds, and parmesan
  • Pancetta-wrapped roast beef
    • potato gratin dauphinoise
    • Alwin’s tarragon-roasted carrots
  • Meryl’s piéce de résistance (a player to be named later)

J. A. Wilcox has just launched a site on Zombie Studies, including an attractive annotated, stretchext bibliography that was exported from Tinderbox.

The structure of the repository was built using Tinderbox. The record in the bibliography were exported from EndNote. The CSS was refined using BBEdit, CSSEdit, and Safari. Everything renders fairly well in the latest versions of Safari, Firefox (Mac and Windows), IE 7, and mobile Safari.

Annotated bibliographies are tremendously valuable to students and colleagues. They can be terrific fun to read, too, if the author has the right spirit.

Dec 08 23 2008


Mark Bittman has a nice article on adapting the classic Italian porchetta a big hunk of pork, stuffed with rosemary, garlic, and fennel and slowly roasted — to duck breast. As it happened, I had a duck breast waiting to go: Monday Night Duck has become a running household joke.

So, I cut a slit in the side of the breast, carefully expanded it with a paring knife so it became a pocket, and stuffed it with fennel top, 3 big cloves of garlic, and lots of chopped rosemary. I scored the skin, salted and peppered, and then I sautéed it very slowly, skin side down, to render as much fat as I could without burning. Very tasty; you could do this with chicken, too.

3 cloves of garlic was too much. Bittman uses a lot of Parmesan; I left it out but you should put it in. He used fennel seed, I used tops, and I think next time I'd use both.

Information Triage is the classic spatial hypertext application. You’re gathering lots of information on a new topic, you’re trying to make sense of the big pile, and you’re trying to identify the most important sources. It’s a hard problem, and spatial hypertext tools are the best known technology for helping.

Steve Ersinghaus has an intriguing post on using spatial hypertext to revise and extend his poetry.

by Robert D. Richardson, Jr.

I'm reading Richardson’s Emerson: the mind on fire . He’s an interesting fellow, and he formed an even more interesting circle. In fact, you could argue that Emerson’s fireside was the place where the real definition of “the American” was fixed.

Besides, my wife is working on a Masters in this period, so I’m bound to find it interesting.

Problem is, it’s not my period. Sometimes I need for a scorecard. Sarah Ripley: is she connected to George Ripley? Is Mary Emerson the sister, or the aunt? Just a hint of who and what people were would help a lot; sometimes, all you need is a poke to get on the right track.

Lydia Child? Oh, she's the woman who always brought lunch to her husband who was in debtor’s prison.

An encyclopedia, or wikipedia, is nice to have, but it's really too much and too slow. I’m used to having the Oxford Classical Dictionary ready to hand for Antiquity; I don’t think there’s anything like this for 1830 Boston.

But, you know, it should be easy enough to make in Tinderbox. Tinderbox could take care of lots of clerical minutiae — searching, sorting, organizing. And Tinderbox can remind you what you’re missing: who needs to have birthdates checked, who needs more narrative filled in. You don’t need a database: I fancy a few hundred people would cover the crying needs, and that’s a small Tinderbox document.

You could share the work among a bunch of hands — either a class (in which case it could be the seed of something like Landow’s Victorian Web ) or just as a study-group enterprise. I bet a grad student with a flair for witty commentary could publish this. (Another example: What Jane Austen Ate and Charles Dickens Knew ). If you’re managing an enterprise product, I imagine the same sort of information on your customers would be great to have — and building the system would be a great assignment for an intern or an newcomer.

It's not just academic. Think about all the family you know — or can remember, or about whom you remember stories. Will your niece’s children meet these people, or hear these stories? Write stuff down. And I don’t know of a better way to write this stuff down so it can be used, so it doesn’t turn into a big bunch of cards in the back of a drawer.

Want to work on ways and means? What to hear how to do it? Want to lend a hand? Email me.

Dec 08 18 2008

Angellic Cheer

This week the new New Yorker sends

Us all a brand new “Greetings, Friends!

Yes! Join us as we ring the bell

For our old friend Roger Angell

Who effortlessly rhymes to cheer

Up the entire blogosphere.

I didn’t know. I turned the page

And there I saw the white-haired sage

Of baseball had, once more, stood in

To take his swings, that paladin

Of wintry joy and festive mirth:

Godspeed, good friends, and peace on earth.

Over the weekend we attended a performance of Handel’s Messiah by a the Philharmonic Society of Arlington, a neighborhood orchestra and chorus. They did a nice job; it’s been a while since I saw a Messiah performance with full guns rather than historical instruments.

One surprising moment was the Hallelujah chorus, in which the audience usually stands. No one stood. No one flinched. This invites speculation: what makes this performance different from others? I can contrive several theories:

  1. The audience didn’t get the memo. This is a neighborhood affair, people were there to see their friends and family make music, and the don’t go to a lot of conferences.
  2. This is Arlington. Specifically, the First Parish Unitarian Universalist Church, which was originally just The Meetinghouse. On 19 April 1775, the aftermath of the battle of Concord and Lexington was fought right on the doorstep; four of the old men who stayed behind that morning and improvised an ambush to harass the British retreat are out back in the churchyard. Special case: here we don’t stand for the King.
  3. This is a church. I haven’t been to a Messiah at a church before. Does one not stand in church?
  4. This is a Unitarian church. Do Unitarians not stand for the King? Or for King George II? Friends wouldn't, but you wouldn't perform Messiah in a Quaker meetinghouse, either. But the roots of this church lie with Channing and Parker and Emerson; it’s not an impossible theory.
  5. This is Boston. I think we stood in an open sing at Harvard, but I can’t be sure. I’m pretty sure the audience stood at a Handel & Haydn performance at Symphony Hall. But perhaps Bostonians don’t stand for the King, or at least not for George III’s father. Grievances last long around here; I once heard a folk concert interrupted by a gentleman who was bitterly insulted by a ballad critical of Bonnie Prince Charlie, and who delivered a strong protest against the Hanoverian Usurpation before being invited to take his leave. Messiah was composed in 1741, just four years before Charles Stuart’s landing.

You can probably think of more theories. Perhaps you know the correct theory. I wouldn’t mind knowing.

My point here is technical: when he observed behavior of a system departs from the expected or specified behavior, it’s easy to contrive plausible theories. A skilled debugger can often hit on the correct theory. But, in practice, the test of the theory is often whether it provides a solution, and if it doesn’t, you’d better be ready with a fresh theory.

Dec 08 14 2008

Pork Cheeks

Savenor’s had some pork cheeks. I had my bright and shiny new Pork & Sons . I had a brand-new Staub cocotte, bought on impulse from Amazon for $60 but now back (alas!) at $240.

Why not?

  • Pork cheeks, braised in Gigondas (name witheld)
  • Ragout of dried cherries and carmelized onion
  • Mashed potatoes
  • Côtes du Rhône (named withheld)

The pork cheeks were tender, not fatty or tough, and their taste was distinctly different from, say, pork shoulder. Not necessarily better than shoulder, but different. I’m not certain that the flavor didn’t owe something to the Gigondas, which was bought for a price too good to be true. The wine proved not to be too good to be true when we opened it, Linda suggested that we relegate it to braising duty, and perhaps that was the problem. And the CDR we tried with dinner, also a bargain, had lots of acid and tannin but not much else

Via a Tim Bray twitter, and so to be weighed thoughtfully, Joe Gregoria argues that computer science is badly broken.

Computer Science, at a deep and fundamental level, is broken, and that applies not only to software but to hardware. One of the reasons that I have this feeling is that after programming for the past 25 years the field hasn't really changed. The conversations aren't any different. You could substitute 'Windows API' or 'Borland CGI' for 'HTML and CSS' and you'd be having the same exact conversations I had 15 or 20 years ago. We still struggle with leaks, be it memory, or file handles, or threads, or whatever. We still have race conditions. We still struggle with software that grows linearly in features but exponentially in complexity.

I've been struggling to find a way to express this concisely. The best way I've found so far is to ask:

What part of the computer in front of you is fractal?

The answer is none of it, yet in nature, which has been at this game of computation for billions of years, everything is fractal. We're doing it all wrong.

Gregorio’s commenters focused on the mystical invocation of the fractal, the hope that in some unforeseen and unactionable way The Fractal will save us. But the project is over and we are not yet saved.

The first part is wrong as well. Yes, some of our conversations are still the same. Many years ago, Jim Hammons told me about a colleague, a chemistry professor who gave up tenure and chemistry and got out. Every year he taught Chemistry, and every September he was right back where he started: the new students this year knew no more than the new students last year. OF COURSE students and amateurs and sloppy workers still struggle with leaks. We pretty much understand leaks now — we didn't understand them a generation ago, but we’ve got it now. But we’ve still got to teach it, and talk about it, and once in a while we need to check the code.

Race conditions? Same story, just a little harder. Ten years ago, we though we’d all be building applications as a bundle of threads; today, a lot of people expect that threading is something the operating system will do.

Languages? The perplexities of HTML and CSS? This isn't computer science, it’s not even software engineering. It’s Drivers’ Ed. Training wheels. People who don’t yet understand a language, any language, will always have the same sort of discussions.

Exponential complexity. It’s just not true. Lots of software grows sublinearly as you add features. Quadratic growth is experienced as, “this project is in incredible trouble: we’ve got to fix the design or start over.” Exponential growth doesn’t feel like this, folks: exponential growth in complexity feels like, “You want what? It’s obviously impossible to do that.” We’re computer scientists; we’re supposed to know the difference between O(n**2) and O(2**n).

If computer science is broken, the symptom of the breakage is simply that computer science too seldom informs actual practice. We no longer expect that every session of CHI or OOPSLA will be filled with ideas we can study today and turn into products next week. How many product managers and software CEOs read the literature of any branch of computer science? Quick: who won the Turing Prize last year? And for what? (Clarke, Emerson, and Sifakis, for automated model checking). And so we have business conference programs filled, not with computer science, but with industry gossip and speculation, for empty graphs of "Web 4.0" and predictions of tremendous growth in whatever sector the audience wants to grow.

Lots of things still perplex us about computers. Lately, the things that are easiest to study seem not to be the things we most want to know, and many things we would very much like to know have proven remarkably hard to study.

For those following along at home, let me take a minute to explain what computer scientists mean when we talk about "linear complexity" and "exponential complexity.”

Logarithmic complexity: making pancakes. The first time, it’s a little tricky, you follow the recipe with care, some get burnt or fall apart. With practice, it gets easier. After a few years of Sunday pancakes, you can do it in your sleep. After a year of working in a breakfast kitchen, you can make pancakes for 100 while discussing Flaubert with the dishwasher. (Note, though, that even the fastest, most experienced cook takes some time to make a pancake, and two pancakes always take longer than one.)

Linear complexity: Dickens or Trollope or Stephen King embark on their next novel. It’s a lot of work, nothing in this world is certain, but they’ve done it many times before.

Quadratic complexity: You embark on your first novel, the first in what you hope to be a continuing series of mysteries set in 19th century Paris. You don’t yet know as much as you should about 19th century Paris, but your French is good and so it’s off to the library for you.

Exponential complexity: You set out to write an illustrated, rhymed epic in a dead language you don’t understand and that is unusually difficult to rhyme and for which no teachers are available, when you don’t draw or paint and you’re also wrestling with a life-threatening illness and you’re a single parent and sole support of four children, ages 1 through 14. You work at the post office to support the kids. Additional difficulties of similar magnitude will be uncovered in the course of the work.

NP-complete: it’s even harder.

Aurelia’s Oratorip

Don’t miss the chance to see Aurélia’s Oratorio, a surreal circus at the American Repertory through January 3. It’s the work of Victoria Thierrée Chaplin (Le Cirque Imaginaire and Le Cirque Invisible), stars her daughter Aurélia Thierrée, and has more than a little of grandpa’s brilliant, weird humor. Amazing tableaux, including curtains in love and a puppet theater in which the puppets are on the outside, and humans and angels are onstage.

Posting has been light lately. I’ve been a bit tied up, because a Tinderbox revision that was slated to take an afternoon ballooned into a ten-day marathon. Ten very long days at that. This means:

  • I've had no time to write anything — not weblog posts, not the introduction to the anthology I’m finishing, not my Hypertext ’09 paper. Nothing. Tinderbox comes first, especially when it’s lying in pieces on the floor.
  • Even if I wrote much, I couldn’t publish it here, because Tinderbox was lying in pieces on the floor, which makes me fall down a lot.

There’s some good news on the horizon. But most important, even a big, old, and complicated Tinderbox document like this one (7,600 notes, 47 agents, 11,806 links, and 615,000 words) is working fine.

(There may be some breakage on the weblog; obviously, this is emphatically test software)

by Michael Dirda

I’ve been thinking a lot, lately, about the fantastic number of books that I sincerely intend to read right away. Not books that I ought to read eventually, or am embarrassed to admit not having read — did I mention that I just started Emma? — but books that sit in my modest, bedside pile. This pile doesn’t quite reach the ceiling, but it’s certainly a safety hazard.

I sought advice from Michael Dirda’s volume, billed as an extraordinary one-volume literary education. Thanks a lot, Dirda: I’ve just had to add three our four additional volumes that I must read immediately. (Make that five: see below. It gets worse and worse.)

The first is a biography of Ralph Waldo Emerson (“one of those exciting books that flash bolts of lightning across an entire intellectual era and up and down modern history.”) What was I thinking? I suppose I anticipated a lively, slender essay on this lively, slender man. When I get to chapter 100 (yes, dear reader, it comes in pints and there is a chapter 100), I’ll let you know.

Dirda is a graceful and attentive writer, and he’s not embarrassed to invite science fiction, light fiction, renaissance art, 19th-century correspondence, and poetry to the same party. He’s got a terrific eye for a quote. Here’s S. J. Perelman:

Our meal finished, we sauntered into the rumpus room and Diana turned on the radio. With a savage snarl the radio turned on her.

Do you know, I’ve managed to miss Perelman entirely? This passage is such a hoot, I really want to dial up Amazon and get The Most of S. J. Perelman . Yes, this would aggravate the original problem. It would be another book on the stack. But what’s another book? Then there are delicious reviews of biographies and memoirs and collections that shouldn’t be put off: Trollope and Houseman and Avram Davidson, K. C. Constantine Kenneth Tynan and The Letters of Nancy Mitford & Evelyn Waugh. And the Landmark Herodotus.

As you see, this is a lovely book, and reading it has been a disaster.

I originally argued that artisan software was desirable because it made more inspiring software, and because it made programmers less miserable. But the world changed recently, and for a while I think we’re going to need artisanal software simply to get software built at all.

While we’re on the subject of the economy, though, I wonder whether pair programming is a great idea. It’s better than huge distributed teams, and it avoids the mythical man-month problem by not generating endless, enervating meetings. But, compared to solo programming, it doubles labor costs. When is the benefit justified? (My guess is that, in the optimal case, pair programming is best for training, for maintaining dying code, and when fixing bugs will be exceptionally difficult or costly. But I used to detest having a lab partner, so perhaps those memories unduly influence me. Hard data and sabremetrics should yield real results on the question, eventually.)

Update: This post generated more reaction than the Tarte Tatin. Which is saying a lot. But (unlike that tasty apple confection) this one was half-baked and off-center. The change, I think, is that a few months ago our development baseline was “best practices”; now, it’s “everything is on hold or cancelled”.

Happy Birthday to Eastgate, incorporated on this day in 1982.

Thanks to George Landow and Elli Mylonas for the reminder that this is the 40th anniversary of The Demo, Doug Engelbart’s landmark demonstration NLS, the landmark 1968 premier of hypertext, outliners, the mouse, networked collaboration, and much else that shapes our computing world. A big celebration is taking place at SRI and at the Program For The Future.

Danc at Lost Garden talks about fast prototyping and post-it notes for capturing fresh game design ideas. He’s got a breathtaking scheme that begins with grabbing a spare programmer and artist/UI designer off the shelf. Gotta love that: imagine being able to have “an available programmer!”

Same thing when Hugh Davis twitters that “Jerez Cortado Wellington, palo cortado 20yrs VOS from Hildago ~£20. My wine of the year. Bone dry, fine yet amazingly complex.” The problem with great wine recommendations is that it seems I can almost never find the wine people like. I can’t even find cheap, mass-produced wines the Boston Globe liked.