MarkBernstein.org
Jul 15 1 2015

Rainbow Dinner

Hooray for the Supreme Court, which (surprisingly) decided not to make things worse this week.

  • Pickled rhubarb with ginger and star anise ❧ pickled carrots with dill ❧ onion dip
  • Focaccia with ricotta, goat cheese, mozzarella, and lots of caramelized onion
  • Sandwiches of grilled salmon, crusted in aioli and parmesan
    • home-made potato break rolls with election-day seeds
    • burnt onion and cilantro salsa
    • grilled peach, red pepper, and chipotle salsa
  • salad
  • clafoutis

Dominique Renauld looks at note-taking practice from Barthes to Arno Schmidt in a presentation about Tinderbox.

Jun 15 27 2015

SummerFest

There’s still time to head over to SummerFest: the 2015 Festival of Artisanal Software For Writers.

Save 25% on some of the best artisanal tools for writers for a few days more. Tinderbox, DEVONthink, Scrivener, Nisus, Aeon Timeline, Bookends, Take Control Books.

Also: MicahJoel writes about using Tinderbox and Scrivener.

SummerFest

by Stephen H. Lekson

Newly revised and expanded edition of Lekson’s daring and irreverent manifesto which proposes a historical framework for the American Southwest. The traditional view of the Southwest before Spain has been scrupulous to avoid history: as Lekson says, “no states north of Mexico” has long been dogma. Lekson argues that Chaco (900-1100) was a state (or, more properly, an altepetl) with princes and palaces, that it first moved north to Aztec for a generation, and then jumped South all the way to Paquime/Casas Grandes. In the second edition, he extends the trip further, proposing that after Paquime fell, its elites relocated due South once more to establish Culiacán.

Strikingly, Aztec is almost exactly due north of Chaco, and Paquime and Culiacán are due south. They're the biggest and strangest sites of their time. The alignment is embarrassing, but it’s real, and it turns out that ancient travelers could in fact have surveyed the route this accurately.

There’s lots of interesting news in the fifteen years since the first edition. We now know what those weird, distinctive Chaco cylinder pots were for: they were for drinking cacao! We know because Crown and Hurst grabbed some fragments fresh out of the trash heap, ground up a thin layer of the interior, and ran the extract through a mass spec: theobromine — the stuff in chocolate! So those dudes at Bonito drank hot chocolate that was harvested somewhere in south-central Mexico and hand-carried, across mountains and deserts, for their ritual enjoyment. (This stuff must have cost far more than the most costly wine.)

Whether or not Paquime is Aztec relocated (or, perhaps, the faction of Chaco that couldn’t live with the guys going to Aztec one day more), it's now clear that the Southwest knew about, and participated in, Mesoamerica. Lekson is surely right, too, in thinking that they knew about Cahokia. Even if you have to carry every scrap of your food, and even without horses or carts, you can walk hundred of miles. Sacagawea wasn’t the first native American to take a long walk.

Lekson is an irreverent and radically informal writer, and among the great stylists of contemporary historical writing.

Jun 15 24 2015

In The Woods

by Tana French

A well-paced and intriguing police procedural, winner of an Edgar Award and formally interesting because the narrator is an investigator but not the focus or, really, the protagonist. Rob Ryan of the Dublin Murder Squad investigates the body of a child murdered near his own childhood home; twenty years before when he was 12, Ryan had gone out to play in these very woods with two friends. Only Ryan came home from that adventure, he could not (and still cannot) remember what happened, and the police investigation went nowhere. The new investigation seems likely to follow the old case into the capacious storage racks beneath Dublin Castle.

Just received a copy of Alexandra Glavanakova’s Posthuman Transformations: bodies and texts in cyberspace. It’s a study of three works: Pat Cadigan’s Synners, Shelley Jackson’s Patchwork Girl, and Talan Memmot’s From Lexia To Perplex. Fascinating.

by Eric H. Cline

By the 12th century BC, late Bronze-Age civilization had climbed many technological summits. People had cities, trading fleets, and caravans. People had built tall towers, elaborate palaces, complex bureaucracies and smoke-filled taverns. People had pickles, onions – our word “shallot” comes from the Canaanite city Ashkelon – and sesame-seed buns: “sesame” in English is a loan-word from Akkadian.

But in 1177, give or take a few years, everything fell apart. Egypt, Mycenae, Knossos, Babylon, Hattusa, Ugarit, Troy: – just about everywhere you look, there are fires and wars and devastation and disaster. Centuries would pass with people telling stories about the age of heroes, the age before the end of Western civilization.

The cause of the disaster has been extensively discussed in recent decades, and Cline nicely summarizes what we know. A rash of earthquakes didn’t help at all. A shadowy group of warrior-migrants called the Sea Peoples caused plenty of havoc; it’s odd that we know so little about them, but then, we know shockingly little about the Huns and the Huns are 1,600 years closer to us. Ideology may well have played a role: people everywhere may have been getting tired of the whole business of palace culture, or merchant-adventurers (or pirates) may have cut into the profit margins that kept those palaces running. Climate change may have been a factor. Commodity shocks may have wrecked the economy; the entire word depended on one mine for weapons grade tin. There are signs of fiscal turmoil in Greece, where Mycenae played a pivotal role in international trade. The Sea Peoples might have been Greek or Italian. Perhaps the first Grexit brought down a multinational economy already weakened by climate change, ecological mistakes, financial shenanigans and social upheaval.

Jun 15 5 2015

Tinderbox 6.3

Tinderbox 6.3

Tinderbox 6.3 is now available. Highlights include ❧ gorgeous and informative treemaps ❧ a fresh walkthrough about agents, actions, and dashboards – some of Tinderbox’s most asked-about features ❧ big speed bump in large and complex maps ❧ dozens of small fixes and extensions. See the upgrade page for all the details.

The built-in walkthrough for agents and dashboards covers should be especially helpful for new Tinderbox users. Here’s one tab from the example:

Tinderbox 6.3

That’s keeping track of expenses during an impromptu business trip. We’ve got running totals, expense distribution, category totals – even a dashboard to remind us to write up the boring daily summaries for which Accounting always pesters us.

As usual, updates are free if you’ve purchased Tinderbox or a Tinderbox upgrade in the past year. You can upgrade from any version of Tinderbox for $98, or subscribe to automatic renewals for just $83.

Tinderbox 6.3

Another tab of the example: an agent plucks out each major city in our heroine’s epic business trip.

How Not To Crash #7 sounds like a nifty cocktail -- perhaps something you’d enjoy after finishing your Corpse Reviver #2. But it’s the latest installment of Brent Simmons important series of notes on avoiding crashes in contemporary software.

This one concerns “Dealing With Nothing” or, more precisely, coping with situations where the object you’re processing is nothing at all. For example, you might have methods that display selected objects; what happens when nothing is selected? Or you might be displaying a shopping cart at checkout: what happens when the shopping cart is empty?

One technique Brent doesn’t mention is the null object pattern. In his example, we might call

[self doStuff:thing];

If doStuff: expects thing to be an object and you give it nil, you might well crash and that’s a very bad thing to do and deplored by all right-thinking folk. Brent suggests that doStuff: should both assert that thing isn’t nil and guard against nil things, e.g.

NSParameterAssert(thing);

if (thing) {menuItem.title=thing;}

This is often a good idea. The first time I saw it, in John Daub’s PowerPlant, it seemed exorbitant: who could remember to include all those guards in every method? Soon, though, it becomes a reflex and you write (and read) the guards without needing to think about them.

If you do find yourself writing lots of if(thing)... tests, though, you might be better off passing a Null Object -- a subclass of the expected class that does nothing, and does it quickly.

For example, Tinderbox has a class for LayoutPolicy -- objects that know how to lay out maps, or outlines, or treemaps. In the old days, before using the LayoutPolicy, we’d carefully check that the layout policy actually existed. This solves problems when you're building a new window, or closing an old one, or changing the view right in the middle of a screen update, but it does lead to an awful lot of code that simply makes sure the layout policy is where it ought to be.

So, instead of checking, Tinderbox initializes views with an instance of NoLayoutPolicy. If a view is being constructed and isn't quite ready to do real work, we can still call layoutPolicy->Prepare() in perfect safety. If we’re about to disassemble a window, we can replace its layout policy with a fresh NoLayoutPolicy, confident that if someone tries to refresh the window we’re demolishing, there will be a NoLayoutPolicy standing ready to do nothing. Because there’s always a layout policy -- even if it’s only a NoLayoutPolicy -- we can take all those null check and dump them all in the trash.

We’ve got NoLayoutPolicy, NoDrawingPolicy, NotAnAttribute, NotANode. We’ve got plenty of nothing.

by Mira Grant

Mira Grant continues her newshounds vs. zombie romp, picking up where Feed left off. Unfortunately, Feed left off with the death of its best character, teenage newsie Georgia Mason, and leaves us in first person with her haunted, daredevil brother Shaun. Not only is Shaun less attractive than his sister, but he is by design less involved, a slacker-daredevil who doesn’t care deeply about anything. Georgia was obsessed with getting the news out, and that gives us a lever for moving the world; Shaun is obsessed with the memory of his dead sister, and that’s a more slender reed.

But it’s enough: there’s something here, though we really have no idea at this point exactly what it is. Our gang of teenage newshounds is now running one of the world’s top news sites, an organization nearing open war with the CDC, that ruthless and powerful zombie-control agency. Our kids our rich and they’re restless and even if it might be the end of the world, they’ve got each other – in a sense, anyway.