The last time we were here it was much the same

I am sell­ing off my col­lec­tion of 1990s zines, includ­ing issues of Ben is Dead, Might, Bru­tar­ian, Whole Earth Review, Gaunt­let, and bOING bOING, among oth­ers. Expect about 300 issues in excel­lent condition.

All funds will be used to launch the 1990s Polit­i­cal and Social Chaos Fund, specif­i­cally some projects that I have in mind that involve vis­it­ing you per­son­ally.

Coincidentally

It is no coin­ci­dence that I’m read­ing Steven Moore’s The Novel: An Alter­na­tive His­tory. Yes, I hap­pened to jog quickly into the Ann Arbor Dis­trict Library the other day to pick up my Mom’s eight weekly mys­ter­ies. And for no rea­son at all I stopped to browse, and there it was in the oft-​​regarded but under­pop­u­lated 000–002 shelf of New Acquisitions.

I’d never heard of it. Has a naked lady on it, which I admit is a plus. It’s a lovely crinkly brown, under its acetate. It’s got heft. The bas­ket was mostly empty.

So grab; into the bas­ket it went.

Yeah, that sounds like coin­ci­dence. It’s not. I insist.

Because I’ve been at the Bloom again lately. And the Rorty. And the Prag­ma­tists more gen­er­ally, and think­ing about that peren­nial soap­box of mine: What’s wrong with all those stu­pid smart peo­ple over on the other side of Divi­sion Street?

And that very self­same day, I crack this ink-​​stained mother open (fore edge stained no doubt by a prior New York Times sub­scriber, not the local fish­wrap folks; cov­ers shaken; cor­ners lightly bumped), and right there on page one (1) Moore launches right in and pro­vides more than an echo of the thumps my soap­box makes: a par­al­lel line of attack, as ’twere. His intro­duc­tion alone is worth your read­ing time, espe­cially if you are a lit­er­ate book­ish library-​​infected per­son like those I seem to accu­mu­late in my imme­di­ate social network.

[Aha: and here the point begins to gleam through the random-​​seeming chance.]

Because I’ve been think­ing about an eight-​​year-​​old project, one I framed but have been too bro­ken to imple­ment for near a decade. And it’s about crit­i­cal engi­neer­ing. Not crit­i­cal as in “cru­cial”, but more the wordy and lit­er­ate and com­mu­nica­tive reflec­tion that lit­er­a­ture has enjoyed and frit­tered away these last few years. Not more straight­for­ward or tele­graphic, but rather lit­er­ate itself, and inspir­ing and poetic.

Where is the lit­er­a­ture of engi­neer­ing? Where is the lit­er­a­ture of sci­ence? Why is it so stul­ti­fied, as if the cul­ture were a pack­age offered by the fuck­ing cable com­pany, and you had to buy those chan­nels of illit­er­acy with your Dis­cov­ery Network?

And why do we stom­ach that other antipa­thy, the I don’t do math crap that human­i­ties majors and Great Lit­er­ary Minds proclaim?

All right, all right. Don’t get me started.

Nah, fuck it.

It’s not a zero-​​sum game, peo­ple. How dare the human­i­ties go into closed ses­sion and block out all mak­ers of this stuff we have? How dare the mak­ers of this mess of stuff we wrap our­selves within ignore mil­len­nia of beauty and pro­mote their history-​​blind notion of con­text­less progress?

And here Moore traipses into my bath­room [What? Tell me you don’t read in the bath­room; if you don’t you don’t love it enough.] with his amus­ingly tar­geted argu­ments against the foun­da­tion­al­ism in lit­er­ary crit­i­cism, and I’m like, “Hey, this man he is the dude. He has afforded me a big brown acetate-​​wrapped brick of com­ple­men­tary insight into the self­same prob­lems I face in a vaster, more mal­formed lit­er­a­ture than even those expen­sive bottom-​​shelf lit­mags limn.” And then I’m like, “Hey, we should totally invite this dude to come to town and ride the teeter tot­ter!” and “I should totally throw a copy of this at Cosma Shal­izi and see if it sticks.”

And me, lik­ing all these things, I flip to a rear flap, and there he is.

In town.

A use­ful sen­si­tiv­ity to coin­ci­dence is not a trait engen­dered by a broad and rang­ing mind (which I dis­avow hav­ing one of, any­way, being nor­mal), nor of a super­nat­ural mys­ti­cal gulli­bil­ity, but rather it is a prac­ticed and tar­geted response to that web of social net­works in which we all walk. A fos­ter­ing of ben­e­fi­cial coin­ci­dence comes eas­i­est to those with feet in many cir­cles. From ignor­ing the bor­ders most other peo­ple sense as walls. From pass­ing notes between the brain and hands: He likes you.

One draws a cir­cle begin­ning any­where. But you also have to keep the pen mov­ing, is all I’m say­ing. Elliptically.

What? You want suc­cinct and tar­geted prose?

This is a book. He is a local author, this lit­tle bald man I expect to meet some­day soon. I had no idea he was a local author when I started tout­ing his book. But it’s good enough that I’ve started tout­ing it after read­ing three chap­ters. Thus, it’s a good book. Go and buy it and read it.

And me, I am going to invite this gen­tle­man to lunch.

@cucumber should_​behave like “I want”

When I first heard about test-​​driven devel­op­ment, it not only made per­fect sense, I real­ized it was some­thing I had been try­ing to imple­ment (with­out the ben­e­fit of dynamic auto­mated tests) by had in weird-​​ass lan­guages like Pro­graph and R. Hear­ing about it just made sense, though it took me some time to climb on board the lan­guages in which it was (back then) sim­plest to implement.

But I never got over the ass-​​backwardsness of assertion-​​driven TDD’s work­flow: the sense that every unit test is a lit­tle magic trick. “Observe, as I cre­ate this NewOb­ject. [applause] Noth­ing inside, noth­ing out­side! I assert that NewObject.inside is aValue. No? It is not? [amused laugh­ter] But where is aValue? Ah… but watch, watch care­fully as I type, and… voila! My asser­tion is now cor­rect!”

Close. I under­stand, I under­stood, I had been try­ing to do some­thing like that in many ways, back long long ago.

But not quite. Espe­cially, I’ve found, for the accu­mu­la­tion of unwrit­ten tests. Yes, as you move for­ward with tra­di­tional test-​​driven devel­op­ment you will think of other things you should do. It should check for errors. It should fail grace­fully when it can’t con­nect to the pipe. It should be an inte­ger, not a float. &c &c

A while back (more than a year?), I installed and worked for a while with rspec and cucum­ber. I had been lured to Ruby years back by Ron and Chet, but never really got too far along my path that way. This was… different.

And then, a big bunch of Python. That’s slowed down, and now with Bar­bara I’m com­ing back to Ruby (and Rails, but not so much as Merb). And BDD is there, ready for me, and greatly improved.

No, really: rspec is exactly how the small­est incre­ment of auto­mated test-​​driven unit test­ing should work. Cucum­ber is [almost] exactly the way the small­est, sim­plest incre­ment of auto­mated accep­tance test-​​driven project man­age­ment should work.

The prob­lem? The rit­u­als of file link­ing. You have a specs file; you have a fea­tures file; you have a steps file; you have your actual code; you have your helper files.… Some­where in that mess, you have a mesh of spaghetti, all sorts of stuff refer­ring to other stuff. And that’s con­fus­ing. A lit­tle, teeny bit dis­ap­point­ing, even.

Don’t get me wrong: the lat­est rspec/​cucumber release is the next res­o­nant “yes” in a chain of sub­stan­tial improve­ments in the way code can be writ­ten. Because with rspec you can grace­fully and com­mu­nica­tively catch those inci­den­tals: “it ‘should check for errors’… it ‘should fail grace­fully’” You can say that in rspec’s cun­ning frame­work; you can let the cus­tomer say what it is they want, with Cucumber.

Because he’s a good man who’s actually written a good book

A few days back, I was flat­tered to have Dave Pol­lard ask me to read his new book, Find­ing the Sweet Spot: The Nat­ural Entrepreneur’s Guide to Respon­si­ble, Sus­tain­able, Joy­ful work.

My review copy came today because of a mixup down at the Post Office, but I’ve had access to an ear­lier online ver­sion for a few days and looked that through in some detail. Here’s the sim­plest thing I can pos­si­bly say about it:

It’s an act of high hubris to ask a vit­ri­olic critic of print pub­lish­ing, and of pro­fes­sional advice-​​giving, and of mind­less entre­pre­neur­ship to read… what? Your forth­com­ing book. Of advice. For entre­pre­neurs. Unless it’s a good and use­ful book, like this one. No advice can change the world, if you leave it on the shelf. But if you read this you can see the cru­cial threads Dave Pol­lard has woven together. And then maybe you can change the world. Go do that.

You want advice? You want to under­stand things about work, about life, and about some of the real­is­tic, friendly, pur­po­sive lifestyles your habits and prej­u­dices blind you to?

Go get a copy and read it. I don’t do this as a habit, and even when I do most folks regret ask­ing me.

But I’m tired of peo­ple ask­ing me for spe­cific, pre­scrip­tive advice on what to do with their lives. Not because I don’t value their searches, but… come on, people—as if I was any­where near as well-​​spoken and philo­soph­i­cally apt, let alone friendly, as Dave. I’m not. He is.

Go. Get it.