Archive for April, 2006

Orwell rolls in his grave

April 30, 2006

This George W. Bush quote (via the indispensible Billmon) actually physically startled me:

“There will be more tough fighting ahead in Iraq and more days of sacrifice and struggle. Yet the enemies of freedom have suffered a real blow in recent days, and we have taken great strides on the march to victory.”

I had to blink my eyes and say, “Wait a minute, isn’t that almost a direct quote from “1984″?” It sounds like something Orwell would have had Big Brother spouting on the telescreen in the background of some scene or another. It is “duckspeak”.

Having once had a career in marketing– and having read Orwell’s great essay on political propaganda– I know bullshit when I see it, and this little quote is just packed with it. Actually, there’s nothing else in it.

“tough fighting” — unspecified: where, how?

“more days of sacrifice and struggle” — again, unspecified. How many days? What kind of sacrifice? Struggle for or against what?

“the enemies of freedom” — Ah, against them, of course. Could this be any more vague and ambiguous? It’s a catch-all: Eastasia, Eurasia, it’s all “enemies of freedom”, of course.

“suffered a real blow”– what blow, specifically? What is this, excellent news from the Eastern Front? Eurasia defeated Eastasia!

“great strides”– bullshit, just pure bullshit. What strides, specifically? How are they great?

“march to victory”– just creepy. I feel like I should be smoking a Victory Cigarette and drinking Victory Gin. And marching, don’t forget the marching.

I mean, read the quote again. How much of it sounds like Stalinist rhetoric? There’s no information content in Bush’s little quote, it is all bullshit, which would be funny, except it’s too scary to be funny.

Like a mini-CT

April 27, 2006

The front-page bloggers at Daily Kos have started creating their own mini version of Crooked Timber by "rescuing" diaries as part of the open thread postings. 

It's kind of nice; a smaller, more intellectual and analytical, "elitist" blog-let right in the middle of a huge, populist, partisan blog: a sheltered cove of wonkery and navel-gazing amidst the storm of netroots politics.

In praise of CADT

April 9, 2006

I found jwz's rant about the CADT model funny when I first read it years ago, and I accepted his conclusion that the CADT model was a weakness of Free Software. I'd spent 10 years in product management and product marketing in the tech industry, so I sympathised with jwz's complaints.

But now I understand the advantages of CADT. In order to rewrite an application, you have to largely abandon old features and code, and generally do things that users, engineering managers, product managers, marketing people, and especially salespeople (under intense quarterly quota pressure) would abhor. I've nearly completed a set of CADT-style rewrites which each have had no visible effect to the users except for the addition of new bugs and user-interface complexity– at least for the long periods until the rewrites have been completed.

When I started this particular project, I was under pressure to deliver something very quickly, which had to look good to the users rather than be good in its design, and on top of that I had no idea what I was doing. The old codebase was fragile and ridden with bugs. There is no way I could have broken free of it without a CADT-style rewrite, which I couldn't have justified were the "customer" paying me. My users have been annoyed for the last few years, but then I'm doing this as a volunteer project, so they have been very patient.

I expect this CADT behaviour is respobsible for the success of jwz's own progeny, Firefox. The 1994-vintage Mozilla code that he stayed up nights blasting out the door under intense commercial pressure was, AFAICT, crap, and has reportedly been more or less completely replaced. Mozilla was not the greatest thing jwz has created, the Mozilla project was the greatest thing jwz has created. By putting it into the Open Source community, and thus freeing it from commercial pressure, he enabled the "CADT's" to largely ignore the old codebase and instead create Firefox. I think that's a long-term good.

Sure, Free/Open Source developers can be rude, fickle, arrogant, and prone to short attention spans, but so can customers, managers, and salespeople: the main drivers behind commercial software. I'd argue that F/OSS neither creates nor eliminates "attention-deficit" behaviour, it simply redistributes it. Call it the Theory of the Conservation of Capriciousness, if you like.

As a user, I have always found it frustrating that so many Free Software and Open Source projects are evolutionary dead-ends. But some codebases really are evolutionary dead-ends, and should be allowed to die. They can't be allowed to die as long as the pressure of sales quotas and job security for maintenance engineers and PHB's keeps them alive, well past the date of brain-death, comatose and with feeding tube inserted, and still breeding "new! improved!" versions. Ugly metaphor, but what can I say? Maybe CADT is a tool for software euthanasia– software eugenics? In other words, maybe the whimsy of the "market" isn't always as efficient as the whimsy of the developers.

I toiled long enough in the tech industry to witness the very common phenomenon of crappy products succeeding commercially, and well-designed products failing miserably. I have managed products of both types. At the time, I didn't know of any alternative to that model. And now, having written a fair amount of software myself, I can see how, despite its weaknesses and frustrations, a Cascade of Attention-Deficit Teenagers can in at least some cases be a more efficient means of producing quality software than its alternative: the Cascade of Attention-Deficit Salesepeople, Managers, Customers, and Stockholders.

Of course, that’s how it works

April 9, 2006

Enjoyed Hofstader's essay on computer-generated music. His perception seems entirely correct to me, as someone who has spent a lot of time both composing and improvising music.

Most music genres have very rote, rigid formats, and are essentially random variations bounded by the rules of that particular genre. Pop and rock songs are almost entirely formulaic. The rules of classical harmony are quite rigid, and forms like sonatas, symphonies, ballets, and fugues are excruciatingly well-defined– so much so that violating them caused famous scandals (c.f. Beethoven's Ninth, Stravinsky's Sacre du Printemps, etc.). This hasn't changed very much– good luck getting something on the radio that doesn't fit the "format" of that station. Even "experimental" music has gone through phases of rigid trendiness: serial music and minimalism were formulaic and mechanistic almost by definition. Even "free" 60's jams were extremely programmatic: drums, bass, guitar, 2-chord or 3-chord vamps, and a random assortment of the same old tired blues licks and modes. Same goes for modal jazz. I've spent my life improvising, and the old jazz cliche holds true: "If you make a mistake, just play it twice". I was known as a damned good soloist, and  all I did was let my fingers do random things within the confines of a key or chord progression, and try to visit the dominant note of the chord when it changes, so that it sounded like I meant to do that.

So why can't a computer write music just as well as a human? The things are already writing poetry anyway.

April 9, 2006

Well I got this blog stuff to look at some examples of good GUIs, and instead here I am using a Python XML-RPC API to post. If emacs atom-mode worked with WordPress (which it does not), I’d use it. I’ll have
to build a little command-line tool using this library, which uses the emacsclient, or something.

Time sink

April 4, 2006

This blogging thing looks like it'll be a tremendous time sink.

Turns out I'm the kind of person who endlessly tweaks and edits stuff. Obsessively rewriting, condensing, etc. Blog posts are supposed to be one-off, forgettable stream-of-consciousness things, but I can't write like that. I could spend all day rewriting the same blog post… yecch.

Finally figuring out WordPress's UI though. Each web app– indeed each sub-module of some web apps– seems to invent its own GUI metaphor. I'm sure I'll compile a long list of reasons why Web GUI's suck, and that'll be one of them.

Death by irony

April 4, 2006

In 1988's The Real Frank Zappa Book, FZ muses that in addition to the world ending in fire and destruction, one other possiblilty is the world ending in 1) nostalgia or 2) paperwork.

I can see why: up until the 1980's nostalgia was an emotion that old farts felt towards times in their distant past. But, by the 80's, as Zappa notes, the cycles of nostalgia kept getting shorter and shorter. The 70's included nostalgia for the 1950's, and nostalgia for the 70's had already appeared by the 1980's. Zappa predicted that soon people would be having nostalgia for things that had just happened, were happening, or hadn't happened yet.

And now we can add to this list of possibilities the world ending in irony. Take for example Snakes on a Plane. The Internets are convulsing in paroxysms of ironic glee over a film that hasn't even yet been released. Used to be, back in the 90's (yes, I'm feeling nostalgia for only 7 years ago), one would intentionally expose oneself (and others, regretfully) to 1970's or 1960's pop culture in order to enjoy it with a deep sense of irony. I even gave in to this fad on occasion: I recall actually sitting down with friends in the 90's to watch a double-bill of "KISS Meets the Phantom of the Park" and Styx's "Kilroy Was Here"– truly awful, steaming peices of shit enjoyed with thorough dollops of irony. But now, what can we callthe Snakes on a Plane buzz except perhaps "pre-release irony hype".

One of my favourite modern prophets was again ahead of his time: with Snakes on a Plane, Cheepnis has finally graduated from the thrift stores and midnight shows to the first-run googleplexes. Wowie-zowie.

PHP is not a language

April 4, 2006

“PHP is not a language. PHP is a thin wrapper around C library functions” — Jeff Wheelhouse

What happens when you learn lisp and/or Python

April 4, 2006

And then have to go back to doing real work in an inferior language:

$this->obj->query(
                preg_replace(
                    array_keys($queryfix),
                    array_values($queryfix),
                    implode('',
                            file(
                                implode('/',
                                        array(
                                            COOP_ABSOLUTE_FILE_PATH, 'sql',
                                            $filename))))));

Oh yeah, another example:

$this->obj->whereAdd(
         sprintf(
             'coalesce(%s) = %d',
             implode(',',
                     array_map(
                         create_function(
                             '$i',
                             'return($i . ".family_id");'),
                         $last)),
             $this->page->userStruct['family_id']));.

Yes, I've been corrupted by functional programming and s-expressions… and parentheses.

And these beasts could each be rendered in one or two compact, almost beautiful lines with Python list comprehensions (I wuv list comprehensions!).

Bah.

Ugly People

April 1, 2006

"If I were President, if I were Queen for a day,

I'd give the ugly people all the money"

– Laurie Anderson ("My Eyes" from Strange Angels)