MarkBernstein.org

I just finished a big night of baking for the Markey campaign volunteers in Malden and Medford. That’s light breakfast for 100, on site for a 6am start. I haven’t done cooking like this before.

A Big Production

Some observations:

  • We’re cooking for the blue team. It’s good to prepare for vegetarians and all sorts of dietary restrictions. So we did apricot kolaches for people who don’t want sausage.
  • I think it’s a good thing to feed volunteers well, and to be seen to be making an effort. This works even for people who aren’t hungry.
  • I’m lousy at plating and presentation. Linda saved the day, but next time this needs more attention. It’s not being fussy, I think, but showing that care has been taken.
  • Campaigns here used to send beef stew around to the election workers at the end of the day. That’s an idea that might be worth revisiting.
  • Both the Warren and the Markey campaigns were very strong at getting local coordinators to pay attention to observable, objective metrics: calls made, doors knocked. That’s good. But we could use more focus, I think, on making volunteers welcome and building connection. Markey has a nice line, speaking about how his mother used to recall the Depression and how something important changed in the nation after 1932. “My mother had a name for that change. And it was, ‘Democrats.’”
  • Egullet is a terrific resource. Particular thanks to Prasantrin (member since 2003), who suggested the sausage roll, and Jaymes (member since 2002), who focused on kolaches. Thanks too to twitterers @sfkeydel, @akiva, @JamesFallows, and @PavelHadrecky for finding the definitive pronunciation.
  • Cooking at this scale can make you feel salty as hell. “Step 1: melt a pound of butter.” Or, “Weigh out 10 oz of flour from a 5lb bag. Pour the rest of the bag into the mixing bowl.”
  • Adding a half pound of top-shelf bacon (fried fairly crisp and diced) to a batch of biscuits makes a very nice savory snack. These were good cold and they didn’t get stale — both issues I worried about.
  • I used the kolaches recipe that Jaymes recommended, scaling up 4x. The stated yield was 64 kolaches and we baked 64, with 1.3oz dough left over. The orthodox Texas recipe calls for cheese, mustard, and jalapeño, which I thought might not suit New England tastes on a hot and muggy morning; I used a andouille sausage and a teaspoon of fig preserves and they came out a treat.
  • The big 6qt Kitchen Aid can actually knead 6 quarts of dough.
  • For the scale at which I typically cook, a double batch is not really more work than one. If you’re baking a pie, you can bake two and it takes no longer. But a task like this one strains resources. I realized — almost too late — that I might be over the capacity of the mixer. That turned out OK, but then I needed to let the bread rise. Even my seldom-used Big Mixing Bowl was going to be way too small for that. But — ta da! — there’s always the stockpot. Stockpot: the final frontier.
  • An energetic dough, even retarded in the refrigerator, can blow the lid off the stockpot and make quite a mess.
  • It’s humbling to think that a big production like this is just everyday cooking in the business. I did 5 dozen (plus 4 focaccia and 32 scones). The Crazy Kolache Lady does 20 dozen every day, solo.
  • On the weekend, I made my usual scone batches, which yield eight scones, and halved each scone before baking because lots of people would rather try two little scones than one big one.
  • On election day, I scaled up the scone recipe 50% and made each batch into two small cakes instead of one big one. Still generates 16 scones, but the pieces are more regular in size.
  • For the weekend, I made two kinds of scones. For election day, I stuck with currant: some days, it’s better to have fewer options.
  • It’s terrific that, in a pinch, one can fall back on eGullet and YouTube for all kinds of cooking data. When I mixed it, the kolache dough seemed far too slack; in fact, I poured it from the mixer into the stockpot, which makes it a batter and not a dough. I knew I was doomed, and my usual baking advisor was on a plane to Texas. What to do? Panic? Throw myself on the mercy of the King Arthur hotline? Then I thought to look at YouTube, where it turns out there are half a dozen demos of kolache baking, and yes, their dough looks awfully slack, too. Asking Google for advice about working with very slack dough was helpful — Google is often terrible at cooking questions but here the technical term “slack dough” weeds out link farms like Allrecipe and Food Network.
  • Answer: flour your hands and it will work out. Slack and sticky dough is very forgiving, too: separate two pieces of baguette dough and try to push them together and they’ll tell you: “We once were together but you have torn us asunder and we will never be whole again.” Do it with kolache dough and they will unite in one integrated pillow of lively dough. No worries.

by Jessica Anya Blau

Nick Hornby adored Blau’s Wonder Bread Summer in a recent column for The Believer. He liked it so much that I opted for Blau’s first book.

This is a slight but interesting book about a slight but interesting girl. Jamie’s 14. Her sister Renee, who is 16, hates her. Her parents are hedonistic boomers who annoy both girls with their pot smoking and their naked swim parties. Jamie’s mother is open and uninhibited about sex, which drives Jamie nuts. Jamie has cool friends and a cool boyfriend and Renee is headed for Outward Bound, and so everything is set up for her summer to come completely unglued.

Next Tuesday, we’re having a special election for US Senator from Massachusetts. This is the seat vacated by John Kerry’s nomination as Secretary of State, and for lots of reasons this could be an important seat to hold. Our excellent long-term Representative, Ed Markey, is running against a Republican venture capitalist.

Special elections hinge on ground game: you’ve got to Get Out The Vote, because no one expects an election in June. I’m doing morning food for GOTV for two towns. No catering facilities in the staging areas, and no equipment: everything’s got to be pretty much grab and go.

I’m thinking mostly scones — some savory, mostly sweet — and maybe some little brioches stuffed with cream cheese and smoked fish. I figure, any change from donuts has got to be welcome.

I started a thread at eGullet last night and it’s attracted some great suggestions, from sausage biscuits to farinata.

Here’s a fresh example of the complexity of making software simple.

Tinderbox has links to the Web (and other internet services) and links within Tinderbox. Internal links appear in Tinderbox maps as lines between notes. We have tools like the link browser and Roadmap View to examine, explore, and edit links. Today, we also use the link browser to delete unwanted links.

In the past, we’ve tried to make links selectable in the map. The would let you click on a link to select it, and press delete to delete it. But this turns out to be tricky; links are skinny creatures. They’re hard to click. In a tangled document, it’s easy to click on the wrong link.

Stacey Mason recently came up with a nice solution: add little widgets to the links that let you delete them.

Link Widget

To reduce visual clutter, we display only the widgets for links that begin at a selected note. The “x” widget deletes the link, and the “i” widget displays detailed information about the link. Nice, right?

Well, there’s one thing they had forgotten! Links are drawn behind notes and adornments, because in some documents you wouldn’t be able to see the notes if the links were drawn in front. But, if you click on the link widget in the figure above, you’re also clicking on a translucent adornment: which object did you intend to click? It gets worse, too, because some adornments are transparent. If you click on a clearly-visible link widget that happens to be lying underneath a transparent adornment, you probably meant to select that widget, not the adornment.

Welcome to my morning.

In general, Tinderbox follows the once-universal C/C++ convention that, when someone asks for an object that doesn’t exist, it receives nil or zero. For example, if we have a Note *note and we ask for the next note Note *next=note->Next(), we’ll get back nil if the note is the last note in the document.

This is the way C was always intended to work. Problems arise because nil isn’t really an object. We can ask a Note to draw itself, node->Draw(), but we can’t ask nil to do anything. And if we do, the program will crash. So, we habitually write if (node) node->Draw(), so that we don’t dereference nil.

The modern way to do this is to create a Null Object — a special class of Note that we might name NotANote. When you ask for the note that follows the last note, you get an instance of NotANote. If you try to draw a NotANote, nothing is drawn. If you ask for its word count, you get back “0”. You can do anything with a NotANote that you can do with a Note, and you won’t crash.

Tinderbox doesn’t use Null Object a lot. Tinderbox was written in 2002; Design Patterns dates back to 1995, but it took some time for the word to spread. Null Object makes the code simpler, and eliminates crashes.

The problem is that existing code checks for nil to know when it’s reached the end:

Note *next=start;
while (next) {
	next->Mill();
	next->Drill();
	next-next->Next();
	}

Switching from nil to Null Object means finding every place that checks for nil and replacing it with something like next->IsValid() or !next->IsNotANote(). And while Null Object is modern, the modern approach to refactoring strongly encourages incremental, testable changes, not a change that will require examining every line of code and making perhaps 10,000 individual edits, each of which must be correct, in a single leap.

C++ does provide a loophole that might help. NotANote could redefine ==, !=, !, and a bunch of casts, in order to tell white lies. For example, if we have written

if (next==nil) {….

We could arrange for NotANote to say “OK: you want to know if I’m the same object as nil. And I am! Really! Who’re you going to believe, me or your eyes? Trust me! I’m equal to nil!”

This could allow a nice, incremental refactoring. But it’s also a can of worms: this kind of chicanery with overloading has a bad reputation. It’s easy to overlook something, or to return a bool when the compiler was expecting an int — a distinction that matters only on alternate Tuesdays.

I’m betting that I’m not the only fellow looking at this refactoring question. Fowler in Refactoring and Kerievsky in Refactoring to Patterns offer sensible mechanics for a local refactoring where you can examine and replace every null test, which is what you’d typically do. But some of these classes provide ubiquitous abstractions for Tinderbox, and replacing all those tests in one fell swoop is not a great idea. Wisdom appreciated: Email me.

Over at the Tinderbox Forum, we’re exploring ways and means for importing Lotus Agenda files to Tinderbox.

It’s an interesting puzzle.

Almost all reaction to this week’s new Apple announcements has been about graphic design. It’s literally superficial. We’ve heard a lot about font choice and color palette.

That’s the surface, and the surface doesn’t matter to you and me. It matters to Apple, because some people buy phones the way they buy jewelry, and Apple needs to impress them, too. But you and I have work to do. What matters in an operating system is, simply, how it operates. What services does it provide to your applications? Are those services easy to use? How many advanced degrees do you need to get stuff done?

And, most significantly, when someone else does something wrong, how badly will your application be hit?

The big difference between iOS and Android revolves around different philosophies of law enforcement. Apple has stringent regulations and fences off lots of risky behavior. For example, your application must always be ready to respond to the operating system police immediately, whatever else it’s doing. You’ve got three seconds, top. You’re busy? Tough. The operating system police looks at you, you answer “Hello there, officer!” right quick, or it’s off to the pokey for you.

This is often a pain in the neck. It makes some things impossible, and it makes some things difficult. But it also means that you don’t need to worry that some other app is going to swerve into your lane. That other app might be crazy, or it might be misguided, or it might be some kid at the NSA: doesn’t matter. It’s not eating your time or your battery.


The big news might not even be the new operating systems. What’s going on with that Mac Pro. It’s got an intriguing physical design. It actually exists, which is interesting itself: Apple is effectively reentering what we used to call the workstation market. Oh, and it’s going to be built in the USA.

Why build in the US? Politics, perhaps, and PR. Maybe. But I don’t buy it. Apple’s built a supply chain in China. Apple’s incredibly good at managing it.

There are two reasons to move production to the US:

  • Customization
  • Faster model revision

When Timbuk2 makes computer bags in San Francisco, they’re doing it to your specifications and they’re sewing it here because it’s faster to make your bag here than to send the specs to China, explain what you wanted to a Chinese seamstress, and then ship the bag back. Even there, it’s a close call: when Eastgate ordered a rush batch of custom USB sticks last month, the sales organization was in Pennsylvania and their art desk was in New York, but the sticks shipped from Shenzen. And when Timbuk2 wants a bunch of identical bags, they run them up in China, too.

The story with the Mac Pro, I think, has got to be faster model revision: getting new chips into production with less delay. Customization makes less sense: potential Mac Pro users are accustomed to doing their own customization under the rubric of “expansion.”

Hmmm.

Jun 13 4 2013

Rewired

by James Patrick Kelly and John Kessel, eds.

A Readercon purchase, this anthology collects later work of noted Cyberpunk writers and a few post-cyberpunk notables.

Bacigalupi’s “The Calorie Man” is an intriguing first cut at the central plot of The Windup Girl. Where The Windup Girl’s Jaidee finds himself in the midst of a procedural thriller, here we have a Run To Freedom, the backstory of Neuromancer or “The New Rose Hotel.” It’s well done, though the tone is exactly like The Windup Girl and Ship Breakers.

Doctorow’s “When Sysadmins Ruled The Earth” is solid Doctorow, describing a disaster that leaves pudgy, unkempt internet maintenance people in charge of everything. Di Filippo’s “What’s Up Tiger Lilly?” is close in spirit: a mega-rich inventor who is otherwise callow and feckless is forced by circumstances to get out and do things. Both try to replace the heroic punks of early cyberpunk with credible techies, and both ultimately condescend to the unfortunate characters whose failing is that they know stuff and upon whom the writer must therefore inflict suitable torments. Elizabeth Bear’s enigmatic “Two Dreams On Trains” explores the street artist’s dilemma: you can be famous, everyone knows your work, but they’ll haul you off to jail nonetheless. It’s a fine story, but Banksy lived it already: do we need spaceships?

Mainly Positive Software News.

Tinderbox is a powerful but complex acquired taste -- a taste I have acquired.

by Michael Chabon

This novel made a great, and greatly under appreciated, movie, and I wanted to see whether the book is equally good.

It is.

The performances do a remarkable job of capturing Chabon’s voice, and the screenplay stays quite close to the novel, especially in the crucial opening chapters. The differences between novel and film are often subtle — changing a black jacket to white, adding an extra female character, cutting a transitional episode.