MarkBernstein.org

by Gail Monaghan

Linda was less than cheerful, because she didn't get nearly enough done yesterday, and because her current project specifies snappy introductory paragraphs. “I don't do snappy!” she snapped.

I wasn't in a terrific mood myself, because I'd started a Tinderbox bagatelle (improving the text window's contextual menu) that ought to have taken an hour and, two days later, found it had swallowed yet another entire day. (And, as I type here, I see two more problems: farewell, Saturday!) This left me behind on the end-of-year accounting, conference organizing, and editing — not to mention myriad other things that need doing.

So, after a (comparatively) early and healthy dinner (swordfish, salsa verde, fresh peas), did we buckle down to work? No, we did not: we made home-made butterscotch from Gail Monaghan's Lost Desserts .

Lost Desserts is an odd and interesting book: much of it recreates desserts that have been lost because they're wildly unfashionable. Showpiece soufflés from New York's "Four Seasons", circa 1972. Flaming ice cream from "Trader Vic's". Butterscotch sundaes from Schrafft's. Linda remarked that she herself had loved those butterscotch sundaes, back in the day.

Schrafft's Butterscotch Sundae
"Penn Station. New York City. Library of Congress LC-G613-70502")

And so we spent a merry hour

This makes a fine lesson in the dynamics of caramelization. Recourse to McGee was frequent. Polymerization is fun, and tasty.

Dec 07 23 2007

Fennel Dinner

  • Crab ravioli cooked in fresh, just-made fennel broth
  • Fennel and celery-root salad, with apples, hazelnuts, and Meyer lemon
  • leftover chocolate-hazelnut tart

Tasty! And healthy!

Alice Waters' The Art of Simple Food has made me want to cook more pies and tarts, from savory quiche to all-American berry pies. But then I look at the crusts, and wonder how our forebears — those heroic cooks who baked a dozen pies a week — survived while using all that butter? I know, I know: fat is not bad in the way your mother told you. I know: even out the strain. And yes, there are things you can do with focaccia dough and biscuit dough and whatnot.

Now, to spend some quality time with my copy of Gail Monaghan's Lost Desserts (thank you, gentle reader!) and work on writing in the mode of "thoughts on the love that got away on the plate that time forgot".

Dec 07 20 2007

Christmas

From Torill Mortensen:

I have made cakes, 6 types, 5 of which are edible.

As I understand it, Norwegian academic women are expected (required?) to pass an examination in which they prepare a curriculum (Latin: little race track) of six or seven kinds of cakes for assessment by their friends and neighbors.

But when the night falls I light candles and wish, greedily, for more - warmth, light, the blessing of summer. In the north seasons are not just things on the calendar. In the north seasons are painful truths, changing your body, your comfort, your hormones, your activities and the patterns of your life, until you live by the rhythm of the changing year.

Got yul.

by Scott Rosenberg

"Software is hard," Donald Knuth wrote many years ago, when software seemed much simpler. This brave book tries to explain how hard software is, to an audience that knows nothing about software and believes their ignorance to be a virtue and a right. People don't know exactly how their cars work, but everyone has opened the hood and seen the engine whir and watched wheels move. Lots of people have no real idea what programming is, or why it's hard.

Rosenberg clearly planned this to be the software Soul of a New Machine, Tracy Kidder's memorable exposé of life on the cutting edge of computer design. He chose for his target a sure thing: Chandler, a personal information manager instigated and funded by Lotus founder Mitch Kapor. With ready access to ample funds, management expertise, the power of open source, and some of the best software minds in the industry, Chandler must have seemed the place to be.

Chandler sure scared me, since it was announced shortly after Eastgate committed to Tinderbox, stems from one of the same inspirations — Kapor's agenda— and sought to address some of the same problems. Because Chandler overlaps so much with Tinderbox, I find it difficult to write about the project with confidence.

Vexingly, Chandler didn't work out: by the time Rosenberg decided to finish the book, Chandler had bogged down in protracted code thrashing. But we don't know that there are no second acts in software; perhaps Chandler is going to emerge next week and be terrific. Or perhaps someone will fork it and save the project. Or perhaps Tinderbox made better technical tradeoffs and created a useful modern agenda and that's really what was needed.

Rosenberg makes clear that Chandler suffered from a baked-in incoherence: it was a successor to Kapor's agenda and so it was about agents and lexical properties of notes, but it was also supposed to leverage ubiquitous email and calendaring, and so wound up being about dates and places. That's too much to fit into a product, and there's a Microsoft blockage astride the calendar/email track. Not recognizing this was probably an irremediable mistake. The hybrid Python/C++ architecture always looked dicey to me, as did the premature commitment to be cross platform at launch. But hindsight is easy (and that hybrid architecture looks better now than it did in 2001).

On this framework, Rosenberg hangs a masterful and engaging survey of the thinking that underlies contemporary software engineering. This overview will have lasting importance, as I think it's destined be the textbook that introduces a generation of students throughout the world to the professional practice of software and to its founding voices — Brooks and the Mythical Man Month, Parnas, Joy, the postmoderns, the agilists.

What Rosenberg doesn't capture — because Chandler seldom captured it — is the way software actually gets written: in slow, steady segments, in dashing sprints, in long nights of inspiration, in weeks of staring at the screen, but always — in the end — by one or two people working to get something to work. In practice, this usually means one or two people imagining how it might work, and then making it happen. There wasn't enough of this in Chandler, and when it did happen, it too often happened to infrastructure, deep in foundations that were expected to underpin grand structures that were never built.

Business writers tend to attribute corporate success to the genius of a CEO, and to blame losses on that executive's personal foolishness and depravity. This is sentimentality, not journalism, and its prevalence is a symptom of the corruption of our business press.

Rosenberg set out to emulate a terrific book about hardware in order to explain software. He chose wisely. He had terrific access. He was spectacularly unlucky; instead of covering a technical revolution, he had the inside story of a project that fizzled. He brilliantly avoids focusing on the failure, the consequences, the recriminations; instead, he explores the underlying needs and explains why failures like this happen all the time. To have carved such a fine, generous, and useful book out of the debris is a very fine accomplishment indeed.

by Michael Bywater

I read much of this book while being coddled, delayed, fed, and delayed some more in Heathrow and then flying home to Boston. That's the best and the worst way to read this delightful, insightful book. It was such a good environment that I didn't trust myself to write about it. And then I procrastinated. And now it's another season, and the paperback has come and gone, and you're going to have to work harder to get a copy of this book.

Which you should do right away. Bywater has hit upon a knack, of late, of attaching titles that seem preachy to books that are light, witty, and far more thoughtful than you expected.

Big Babies addresses our propensity to behave like infants. In the street, waiting in line at the bank, dressing for work, choosing our school curricula: we act like helpless victims and we want an Authority to protect us and reassure us and to redress our complaints. We play dress-up.

So the pilot watch on the non-pilot wrist first of all says 'pilot' which in turn says 'make-believe pilot', which in its turn says 'lost epitome of manliness which never really existed.’ The watch is an icon of saudade, that Portuguese musical genre which sings of yearning for something which never was.... There is nothing authentic in the entire charade; and yet we still do it; and at the far extreme of this idiocy I take my place. Let me remind you: (1) I am a pilot, and (2) I wear a pilot watch.

A few pages later, the author returns from a pleasant lunch with an old friend, the distinguished Jesuit Fr. Joe Christie. His wife, a set designer, has left a large block of polystyrene in the living room; the two lunchers, "slightly illuminated", see a polystyrene altar and hilarity ensues. Naturally, this involves old dressing gowns and the Great God Reborzo bin j'Ja'abli. At this point, Mrs. Bywater returns.

"What," she said after a while, "the hell are you doing?"

There was another pause, then Joe — Father Joseph Christie,SJ, orator, administrator of the sacraments, clerk in Holy Orders and a priest forever according to the order of Melchisedech — said with commendable dignity:

"We are pretending to be priests."

What is the source of this strange impulse to pretend, to dress in underwear, to rely on Someone Else to cook your food, to entrust our government to political dynasties and to rely for our safety on kabuki theater that confiscates perfume bottles shaped like pink hand grenades but has no particular objection to the employment of private mercenaries?

Best point: Bywater points to the virtue of commensality. "The art of dining together," he reminds us, "is one of the great cornerstones of civilization."

Dec 07 19 2007

Censorship

The MPAA turned down a movie poster for Taxi To The Dark Side because it depicts two soldiers escorting a hooded prisoner. Apparently, Americans don't do that. Or at least, you can't show it. Thanks, John Gruber.

No, not that one.

We've been watching John Milius' Rome, and as one thing leads to another my bedtime reading of late has been The Cambridge Ancient History: Volume X. The Augustan Age. S. A. Cook, F. E. Adcock, and M. P. Charlesworth, eds.

The used book world has become a lot more efficient since ALibris, AbeBooks, and Amazon got involved. But there are still spotty areas, and this is one: you can find copies everywhere from $40 to $300. Here's the Amazon listing.

It's easy to forget just how good the story of the Caesars is, or how well we still know all these people. When I was in college, I used to tell myself, "If I didn't have all these papers due next Tuesday, I'd sit down and read the CAH." But I never have. Volume X alone weighs in at 1000 pages. It's probably out of reach this month, too, but I can indulge in a few delicious chapters.

But what fun it all is, and how well we know all these people after so many centuries.

Cruel enough when roused, he soon returned to his usual good-nature; sometimes great in adversity, in prosperity he preferred luxury and amusement; straightforward and often loyal himself, he trusted others and was easily flattered and deceived. His worst trouble was women; they existed, he believed, for his pleasure, and they had given him ample reason for this belief.

This, of course, is Antony. And here's his second wife:

Had Antony been a different character, we might have seen a different Cleopatra— perhaps the friend of philosophers, perhaps the business woman who ran a wool-mill with her slave girls; as Antony loved pleasure, we see too much of the Cleopatra who, legend said, wrote a book on coiffures and cosmetics.

Two thousand years, and we know these people. Lots of these people: Cicero, Caesar, Cato, Pompey, Sextus Pompeius, Octavian, Octavia, Livia, Julia. Even what they looked like, more or less: there are dozens of people, maybe hundreds, who've seen enough of the statues that they'd have a decent shot at recognizing any of these people walking down the street, stopping at a hot dog stand.

J. Nathan Matias has just published his Tripos lecture, Tragedy in Electronic Literature. Here's the overview, and here's the stunning Tinderbox export that uses Matias' clever javascript Spatial Hypertext Publisher. It's a thoughtful discussion of an important and overlooked topic.

Tragedy In Electronic Literature

Yes, that's a live Tinderbox map in a browser window.

Dec 07 17 2007

Validation

People spend way to much time worrying about HTML Validation. It's easy to understand why: when the client knows just a enough to be dangerous, the valid benchmark resolves disputes.

But, for most sites, what you want is just that the damn thing work in the major browsers. Lots of mildly invalid HTML works just fine. And it's quite possible to write valid code that doesn't.

Still, for one brief shining moment, the cover page of markbernstein.org is 100% valid. This is mostly a stunt: I wanted to be sure there wasn't anything in Tinderbox that keeps you from building an absurdly elaborate page that is still 100% valid.

Validation

Just before Tinderbox shipped, nearly five years ago, I measured it and found it had 88,000 lines (excluding blank lines, libraries, and framework). Today, it has about 74,385 lines (though it does a lot more than it used to). This surprises me, and might be an artifact: I'm not completely certain that I'm using the same methodology. My guess is that it's grown a little, but not much.

There are currently about 940 classes of objects in Tinderbox. I used to know the 2002 number, but I can't find it today; I think the number of classes has likely doubled.

by Kent Beck

Though we have not found the silver bullet that would cure the software crisis by making programming teams vastly more productive, the last decade has seen a tremendous revolution in programming. The difference: while teams are only incrementally better, individual programmers can do vastly more. The largest programs that we can write have only grown modestly, but the largest programs that one or two people can write -- which is to say, the largest programs that an individual can understand -- have grown dramatically.

The kind of program that was a stunning achievement in 1967 -- a solid and efficient interpreter for an interesting new language, say -- was still a solid MA thesis in 1987. Today, we give that project to the summer intern.

The way this was expected to work was that programming languages would improve, gaining bigger and better abstractions so that programmers could avoid all that detail. The way this worked in practice, though, was not quite what we expected: languages did improve, to be sure, but the key change is that people mastered a new style of programming. It's not just object-oriented programming; it's small methods on small objects.

Right now, about half my readers are scratching their heads because they're expert programmers themselves and they have no idea what I'm talking about. Small methods?

If you're in this crowd, go to your bookshelf and grab your copy of that wonderful collections of Software Tools by Kernighan and Plauger. You know the one I mean — the critical step in explaining UNIX to the world, one of the greatest examples of tech writing and programming style in history. Look at that battered cover, and remember what wonderful code you learned from it.

Now, open it to a random page — say, something in chapter 5. Read the code examples. Try to resist the impulse to refactor — to simplify the conditionals, isolate the loop bodies, clarify the iteration. If you came across this in code you were working on, you'd say, "there are Code Smells here." But this is monumentally fine code — the very best of 1981.

Want to cry? Grab volume 1 of Knuth. Open it to p. 264: topological sort. If you're like me, you learned about topological sort right here. (Toplogical sorting is what we do when we've got a path of links in a hypertext and we want to unroll them into some sort of a sequence; it's what happens in Path View in Storyspace and Tinderbox and I've written it a dozen times over the years). You won't be able to read the code. This used to be a model of clarity; now, it's like reading the Latin you learned in school and haven't touched since.

Kent Beck is one of the leading voices on the subject of small methods programming. Much of his work is situated in the context of methodologies for programming teams, Extreme Programming and Test Driven Development. This volume is all about coding: writing clear and sensible code to do what you want. It's the clearest explanation of small methods style I've seen.

Small methods programming is especially well suited to NeoVictorian Computing, because it assumes that the coder is free to design and refactor objects on the fly. Small methods, in the end, mean that you have to give developers a lot of design autonomy, so your design has to emerge from the hand of the artisan, rather than having it imposed by the grand architect or the design committee.

by Judith Jones

Judith Jones broke into publishing when, as a junior editorial assistant, she plucked The Diary of Anne Frank off Doubleday's slush pile. She joined Knopf in 1957 and she's still there, fifty years later, though Knopf's purchaser has itself been sold and resold. At Knopf, she launched a cookbook revolution, starting by the discovery of Julia Child. She edited Child, Elizabeth David, Claudia Roden — the whole modern cookbook revolution. She's bright and witty and she remembers everything and knows how to craft a book.

It's wrong to criticize a book for not being what it doesn't seek to be, but still I read this wonderful book and sigh for a companion volume: My Life In Books. This is an instructive memoir for the historian, not only for the wonderful details and coincidences, but also for what's left out.

  • Jones was at Bennington when Bennington was remembered to be its best and most distinctive. A couple of decades later, David Mamet recalls that Bennington was little more than "Sex Camp”. Was it always so? Jones knows, and remembers, and could tell us.
  • Jones went to Paris after the War, chaperoned by Mrs and Mr. John Gunther and armed with letters from Arthur Koestler. She worked for gangsters, cohabited, breakfasted with Truman Capote. We hear a lot about the meals they ate; I'd love just a little more about what they talked about.
  • Jones moved to New York at the perfect moment. She spent the sixties as an important (and increasingly-influential) editor at a major press, moving from French to fiction to cookery. She must have known everyone; she certainly cooked a lot of dinner parties. I'd like to know a little more about those parties. Did they all drink as much as it seems? She was probably at Capote's Black and White ball: what was it like to be there, on a salary?
  • Jones' crusade to give dignity to women's kitchen work begins just as American feminism was gathering steam. How did she think Mastering The Art of French Cooking fit with The Second Sex? I imagine she thought about this a lot: de Beauvoir was a Knopf author, her editor was Jones's boss, and perhaps the difficulties in acquiring and translating this title was part of the reason Knopf hired Jones in the first place.
  • The middle part of the book is filled with memories of long days in a cookbook writer's kitchen, thrashing out details and perfecting the books. I'd love to hear how, exactly, this worked. How much editorial time and travel could her company expend on a new ethnic cookbook? How did she approach the task of crafting a book? What does she really think about ghost writers? How much structural editing did she undertake?
  • We spend a lot of time at the table, but almost none in the office; time begins, in this volume, when we get home from work. I'd like to know a little bit about the office. How much of her work was acquisition scouting? How much time was spent soothing aggravated writers? How much was spent drinking lunch with Dottie and the gang? She says that, when Knopf decided to "let Mrs. Jones have a chance" by acquiring Mastering the Art Of French Cooking, her boss Blanche Knopf walked out of the meeting (chaired by her husband Alfred!) in protest; did people really do that?

Once again, we launched a party in the face of a blizzard.

  • Squash soup (the squash roasted over a garlic head and a small handful of thyme; the garlic and squash pureed and stirred into freshly-made chicken stock, enriched with a little butter). Could have used some creme fraiche, but how to serve it at the stove?
  • Picadillo (pork shoulder, boiled with onions and spices, cooled in its broth, shredded, then sauteed with onions and a freshly-made puree of chipotles, roasted garlic, and tomatoes). A lot of work spread over two days, but a big hit.
  • Savory almonds (sprinkled with salt water, roasted with thyme and savory). I think they're a yawn -- and they never did brown as expected. Linda says, "yummy".
  • Vanilla walnuts. Also a big hit. Haven't made them in ages — since 1986, I think. From the Frög cookbook. Those were the days.
  • Bourbon pecans.
  • Meyer lemon tart. Also known as Mrs. Pedicaris's tart, thanks to its obstreperous pate brisée crust. I thought, “perhaps too lemony”; Linda says, “no such thing.” Two lemons gave enough more juice than expected for the four lemons originally specified, but everything came out OK in the end.
  • Chocolate tart with hazelnuts. Valrhona Caribe this time. I got the cream really hot — OK, I forgot it for a minute and it nearly boiled over — and this time there was no problem with setting and subsequent chocolate soup.

This page is rendered in a new, experimental Tinderbox release that's intended to make the HTML export even more standards-compliant. But this is a very complex case (when last I counted, the main page of markbernstein.org was assembled from about 200 separate notes); advance apologies for breakage until things settle down.

T-Mobile's decision to block Twitter could just possibly be the end of the internet.

Here's the end-game. T-Mobile blocks Twitter, and Twitter gets big enough that they pay T-Mobile a few million dollars a year a modest fee to add them to the service. T-Mobile then chooses an official search engine, and lets the other search engines buy "sponsorships". AT&T and Nokia each block Twitter, and Twitter pays them a modest fee. Backbone carriers do the same thing. Pretty soon, it's exactly like cable television, where if you want to watch tonight's NFL game you need to buy a special NFL channel, except for the places where you can't buy that channel for any price because the carrier that negotiated the monopoly for your town (or apartment building) doesn't carry it. So, you can wait for the baseball season, or vote for the other party at the next election.

Of course, the likely scenario is that T-Mobile gets creamed, and changes its mind. Or T-Mobile offers the T-Mobile Web, and then Apple/AT&T offer the real Web. Some people like free speech.

But the signs are not good.


Update: Perhaps the signs were better than they seemed. Initially, when users asked T-Mobile to explain the outage, customer service simply pointed out that their terms of service allow them to block anything they like. Later, though, T-Mobile said they weren't blocking Twitter, and it was all just a technical glitch. So, the kerfuffle might have simply been a combination of a bug and lousy customer relations.

Jack Baty is really happy with Tinderbox and with Eastgate's order desk.

Last Call: San Francisco Tinderbox Materials

Last call for Remote Memberships for Tinderbox Weekend San Francisco. Get the CD while you can.

Remote Membership
Tinderbox Weekend Remote Membership: $75

You can always remove it later.

And while we're thinking about Tinderbox Weekends, let's consider some possibilities for Spring. Cities we've been thinking about include:

  • Dublin (perhaps following Blogtalk)
  • Paris
  • Chicago
  • Pittsburgh (colocated with Hypertext '08)

If you'd like to endorse one of these cities, or suggest another one, or if you'd like to propose a session, don't hesitate to Email me.

This list of the twenty ugliest college campuses in the USA is interesting. The writer doesn't like unfashionable colors, doesn't like modern brick, and hates concrete. Some of the nominees make a lot of sense.

But, seriously: IIT?

They need to get better architects at these schools. The low-rise buildings are so nasty and dull that they feel like a blast from the past. Some serious renovation is in dire need at this school. Only the Main building is okay, but the rest just falls short with its flat, square-ish design that feels like an office complex.

Excuse me! The reason it feels like an office complex is that this Mies van der Rohe campus has been the touchstone for every Modern office complex since World War II. It's got Crown Hall, which is among the best of Mies and a Great Building, and it's also got a remarkable Koolhaas building. How many US colleges have two Great buildings? Harvard, maybe: two important Richardsons and the only Corbusier on the continent. UVa with its Jefferson complex.

On the "beautiful" side, I detect a tendency to embrace kitsch and climate. Face it: it's a lot easier for UC Santa Cruz to look great than it is for Yale or Texas A&M. (They do get Swarthmore, though, so points there!)

I want to call your attention again to Costikiyan's daily game reviews at Play This Thing. I seldom read game sites, but this one is for real — not least because it reviews old games, obscure games, paper games, and good games in esoteric or wildly unpopular genres. Intelligent, critical writing.

I might be more interested in Flight Paths, the new online novel project of Kate Pullinger and Chris Joseph, if the license terms did not insist that

Hotlinking to any materials on the Site, including but not limited to, images and videos....is not permitted without the Writers prior written consent.

This passage has three blunders.

  • I have no idea exactly what "hotlinking" is. (Meyrowitz used something like it in a 1989 keynote for transclusion, but I'm not sure that's the intended meaning here.) I think I may safely claim some expertise in this area — more expertise in the literature, I think, than any US or British judge currently possesses. So the passage is probably nonsense.
  • It is unlikely that the Writers have authority to permit or prohibit linking to the site by anyone, for any legal purpose. It is still more unlikely that they have authority to permit linking to brief excerpts for the purpose of criticism, instruction, or education. Nothing here or elsewhere in the License reveal the theory under which the Writers claim this privilege.
  • There's an apostrophe missing from "Writers'". Professors of English, novelists, and lawyers should each punctuate with care.

The story seems to involve a grocery shopper whose car is struck by the body of a stowaway who had flown from Karachi to Heathrow in a jetliner's wheel well.

Flight Paths seeks to explore what happens when lives collide — an airplane stowaway and the fictional, suburban London housewife, quoted above. This project will tell their stories.

The writing of this crucial introductory passage strikes me as loose. Is the housewife fictional or fictitious? Is the stowaway not fictitious. As we are exploring what happens "when lives collide", are we telling two stories or one? And, most pertinently, why are we talking about this dramatic collision when so many casual encounters raise the same questions? Look at In America; a family leaves Ireland with almost nothing, enters the US through the Canadian border, and here they are. Look at the sanctuary movement in US and British churches. Look anywhere on the Continent during WW2, or anywhere in Iraq today. Trouble need not fall from the sky; it can ring your doorbell.

None of this is a fatal defect, and it all can be corrected.

Cathy Marshall lost her office.

I’d tell you that I lost my office gradually, except that doesn’t make any sense. How can you lose an office gradually? For one thing, no matter how big that hole in your pocket is, or how careless you are about where you leave things, you aren’t going to be able to lose a whole office.
Dec 07 7 2007

Twenty Five

Sunday was Eastgate's 25th anniversary. We'll be celebrating all year. Stay tuned.

Twenty Five
  • tart with spring onions, applewood smoked bacon, sheep's milk cheese, and ricotta, on puff pastry
  • homemade onion soup, with surprising quantities of onion sweated for 2.5 hours, then cararelized and deglazed four times with water and twice with sherry.
  • braised short ribs of beef
  • homemade clementine ice
  • chocolate tart with pecans

The tart is a bit fussy but it's a keeper. The jury is still out on the onion soup, which really needs to be great since it (a) consumes 6 cups of precious homemade stock and (b) all that sweating and caramelizing and deglazing is a lot of trouble, Mrs. Pedicaris. I thought it was underseasoned the first time, Linda thought it was salty, and I'm having a tough time with my croutons. But it was oniony, anyway.

The homemade ice (juice, a little syrup, tossed in the freezer and stirrer occasionally) is a win. It's a nice idea from Alice Water's nice new book about The Art of Simple Food . And I'd forgotten how easy that chocolate tart is.

Dec 07 4 2007

Small World, II

In one section of the NeoVictorian talk, I talk about the Romantic strain in programming, reflected in our tales of the age of heroes.

In the beginning, so our myths and stories tell us, the programmer created the program from the eternal nothingness of the void. Whether it is Stallman typing teco macros and wearing out the shift keys; Chuck Moore typing backwards at Kitt Peak; Goldberg, Deutsch, Robson et. al. in the parclands of California; billg hunched over Allen’s Altair emulator; Bill Joy’s VAX crashing and deleting vi multibuffer support for the next ten years; Gabriel doing The Right Thing at Lucid; or Larry Wall doing whatever....' -- Biddle, Martin & Noble: No Name: just notes on software reuse' 

Here's one of the slides from the sequence, showing Guy Steele (the keynote) and Doug Engelbart (the demo).

Small World, II

There was one thing I didn't expect: that I'd eventually find myself reprising this talk at SRI, in the building where Doug Engelbart built NLS/Augment and so much else, with Engelbart in the audience.

Small world, an honor and a privilege.

A maxim of Agile Programming is that You Aren't Gonna Need It, abbreviated YAGNI.

Conventional designs and specs tend to be too general and too elaborate. You start out with a data structure to hold a couple of People. Someone suggests that it would be better to have a vector, so you could have more than two if you need to. Then someone else wants to put it in a mySQL database. And then we're gonna run it on a remote system, on rails. It's easy to add generality to a spec. It makes you look really smart, especially when someone else is going to do the coding. But too much generality too soon makes the code age prematurely; you can get old, brittle, confusing code that looks like it's yellowed with age, even though it's not even finished yet.

Much of the time, this generality won't turn out to be needed. Even if it is needed, building it later means that you defer the development and testing cost, and that saves money. In the past decade, as we came to understand refactoring better, we have become much more comfortable with deffering these costs.

In the NeoVictorian workshop, YAGNI is balanced by the opposing sentiment: Go Ahead, You're Entitled.

Also known as 'Go ahead, live a little!' It's what your aunt might tell your mom when she can't decide if she should have some apple tarte with crême anglaise and a cute little glass of spätlese, when mom thinks she really should go fold the laundry.

Sometimes, it's worth building the good generality early, because it will open new vistas and new opportunities. You might, for example, see a place where you could get by with a pair of Peoplee> but the code would be really elegant if you went right ahead and used a Composite. GAYE says, "if it's really cool, go ahead and invest now." It makes the code better, opens new vistas, new opportunities. It lets you try new things, because you've got a better, more general starting point for quick experiments.

If it doesn't work out, you can always refactor back to the simpler YAGNI plan.

What's the difference? The guy in the spec meeting is trying to look smart, or maybe just trying to look like he's paying attention and contributing to the team: the excess generality will be water for someone else to carry. The NeoVictorian is probably going to carry the water himself. It might be a little more work to carry that pail, but if it makes our part of the system better, that work is little to ask. Perhaps it will open new vistas, and perhaps it will let us build something else tomorrow, something that will matter.

Worst case, a little GAYEity might be an economic wash. On the one hand, if YAGNI applied then you've spent some development time building something you didn't need. But that time might have gone down the drain anyway, because the alienated coder with no opportunity to build a proud and soaring thing might take the afternoon browsing and brooding, or polishing her resume. Thou shalt not muzzle the ox when he treadeth out the corn, or fence the thoughts of your programmers when they're turning bits and rust to gold.

by Joshua Ferris

An engaging, likable novel about working in a Chicago ad agency. The agency is located a few blocks from my Mother's apartment, and my mother worked in a Chicago ad agency right near there, too, in a brief strategic hiatus between leaving New York magazines and moving up to newspapers. Ferris gets it right, and he writes about work, and he's funny without being silly.

Gradually, it sneaks up on you that this is a curious formal experiment: the entire novel, except for one chapter, is written in first person plural. The exceptional chapter is third person, and if you think that's a curious lapse then you're properly set up for the closing twist. It's quite a trick to generate suspense through a strange formal device, but Ferris pulls it off.

The book is being reviewed everywhere. I never go anywhere in distant cities without a book in hand, and so when I showed up for a lunch with a hot Web CEO in SF and he wondered what the hell I was carrying a book for, I explained it's the novel of the moment. I'm not convinced this will hold up to Great Novel expectations, but if you're hoping for a serious and thoughtful little story about work today, executed by a writer who is paying attention, then this will cheer your day.

Via Linda, a fun video song of "Here Comes Another Bubble" by The Richter Scales. They're a San Francisco a capella men's group, and they understand the marketing principle of explicit value propositions. They offer

Good to know!

At the DeYoung Museum, I saw a nice show of the photography of David Seymour, the pioneering photojournalist who worked under the name of CHIM.

The exhibit was made possible by the photographer's nephew, Ben Shneiderman. At the museum, I was startled. Ben Shneiderman, the hypertext pioneer, inventor of treemaps and UI guru?

Yep, the Ben Shneiderman.

Nov 07 29 2007

Work out

I believe I just figured out a much nicer way for Tinderbox to generate HTML and XML.

The change isn't something you'll see: it's under the hood. The new code would be at once simpler, more expressive, and more standard-compliant. And it will be smaller and more testable, and so easier to support across platforms. (But it needs to be written and tested in the first place, so I don't think it's actually a way to shorten the TinderWin development schedule significantly.)

I've been working on the issue for ages, and then, there was the answer. That's how it works.

The first day of Tinderbox Weekend here in San Francisco was mostly about theory. I started off with the "director's commentary" for NeoVictorian Computing, looking at how my thinking on programming and software design has been shaped by the ways people use Tinderbox. Big surprises:

Michael Fitzhugh did a star turn on Tinderbox and the reporter's notebook. Keeping track of experts in all sorts of field is just part of the Business beat. Keeping track of story ideas is essential, too. So you've got to have a completely inhomogenous data store with all sorts of objects — sources, budgets, stories, pitches, beats — all of which may need to be connected, and all of which need to be findable. The Tinderbox framework Fitzhugh has evolved for himself is fairly simple, I think, but it evolves gracefully as he needs it: I think this is a much more pleasant solution than unpacking a complex solution someone else wrote, where you pretty much need to adapt your practice to the toolkit.

Bill Humphries has a nifty look at Second Life. "What would it mean to blog from Second Life?", he asked. And then he showed how simple it could be: a little tool your character carries around says, "I'm blogging this", and when you tell it to, it emails Tinderbox with your character's world coordinates, a screenshot, and a short blog post. Again, off the shelf tools in Second Life and Tinderbox let you glue the tools together to do unexpected things.

Finally, Cathy Marshall did a wonderful retrospective on spatial hypertext, and probes the fascinating question of how we are going to keep track of all our digital artifacts. We have a lot of stuff on our disks. We don't need to throw anything out. You take maybe ten photos a day, get an album or two a week, read a book and a couple of magazines every month, you're just getting started. Do this for a decade, you've got maybe 100,000 things. How do you find stuff? How do you know what you've got? How do you know what you don't have — the dog that isn't barking? Perhaps spatial hypertext tools like Tinderbox can work on this scale, too.


And now, back to work. Sunday is all about practice, technique, and details. How to pick things up and do them in Tinderbox, starting with a tour of the latest (and next) batch of new features. Show time!