Yo, San Franciscans, Bay Areans, listen up: Will Franken is coming back to town!

He’s playing at The Purple Onion on Friday, April 4th and Saturday, April 5th — two shows each night, at 8pm and then again at 10pm. The Purple Onion is at 140 Columbus Avenue.

In case you haven’t read my previous exudation on the topic of Winston Hussein Frankenbama, let me just say: you want to see this show.

Winston Hussein Frankenbama

Tickets are $20 at the door, or $15 if purchased in advance here. Either way it’s a bargain. Go, and bring all your friends.

By not covering crucial details of the Michigan/Florida delegate question, many media outlets have been doing Hillary Clinton a favor.

Here’s an article from the New York Times, for example — Patrick Healy’s “From Clinton, New Pressure For a Revote” in the 20 March 2008 issue:

With plans for new primaries in Florida and Michigan in limbo, Senator Hillary Rodham Clinton challenged Senator Barack Obama on Wednesday to accept at least a new contest in Michigan, arguing that he should match his “words with action” because a civil rights principle was at stake.

“It is a bedrock American principle that we are all equal in the voting booth,” said Mrs. Clinton, of New York. “It has been a long struggle to get to the point where barriers have been knocked down and doors opened.”

Before Mrs. Clinton spoke, the Obama campaign issued a memorandum from one of its campaign lawyers, Robert F. Bauer, who raised several questions about a Michigan do-over. “No one disputes that the election will have to be hurriedly prepared,” he wrote. “And it is further accepted that it is, in material respects, unprecedented in conception and proposed structure.”

Mrs. Clinton wants the Michigan do-over as a matter of political survival to close the delegate gap with Mr. Obama; she also hopes to finish the primary season with a lead in the popular vote. The Obama campaign has resisted and argued that Mrs. Clinton is trying to change Democratic Party rules to save her candidacy.

Unfortunately, the New York Times left out the most persuasive arguments from Bauer’s letter. If you just saw the above quotes, you might think the the problems are merely easily-solved implementation details: okay, the revote would be “hurriedly prepared” and “unprecedented in conception and proposed structure”, but surely those are not showstoppers.

Well, I don’t know why Bauer chose to lead off with his weakest arguments, but later in the memo he raises a very serious problem, one we have yet to hear the Hillary Clinton campaign address at all as far as I know. The following excerpt from Bauer’s memo is a bit long and is written in semi-legalese, but it is worth reading all the way through, especially if you’ve been tempted by Hillary Clinton’s rhetoric about voters’ rights:

Although Michigan has always run open elections, which allow voters to vote in whatever primary they prefer, voters who participated in the Republican primary in January could not vote in the June election under the proposed law. This class of voters includes Democrats and Independents who chose not to vote in the invalid Democratic primary at the time because the majority of active candidates did not appear on the ballot and the results would not be accepted under party rules.

This provision raises a significant constitutional question and, along with it, the prospect for litigation that would undermine the perceived legitimacy of the election and bring preparations to a standstill under circumstances in which such delay is effectively fatal. The claim here could also be presented to the party, under party rules, with a similar effect of putting the election and its results in serious question.

The burden on voters here is one of complete disqualification–they cannot participate in the Democratic primary in June if they voted in the January Republican primary. Their claim of a violation of their rights would rest on the fact that that the state “changed the rules in the middle of the game.” These voters’ choice was entirely reasonable in the circumstances: there was no valid Democratic primary available to them at the time, and they could not know that, when their choice was made, that they were disqualifying themselves from participating in a re-run Democratic primary this year that they could know would be held.

Moreover, the state will have difficulty justifying this disenfranchisement by reference to any legitimate state interest. Michigan cannot argue that it wants to limit the June primary to those who are genuinely Democrats, because it has always run fully open primaries. Voters, in other words, have a state-conferred right to vote in the Democratic party no matter what their affiliation. The primaries in January were fully open; and the decision to close them in June will not easily stand constitutional scrutiny. In any challenge, Michigan will be criticized for proposing a re-run without, in effect, restoring to voters the original choice they had–whether to participate in a meaningful Democratic primary.

In other words, the proposal offers a re-run for the State but not for all the voters. The state will have to assert an interest sufficient to justify this infringement on the voting rights of its citizens. Its challenge will be to show how, when the state is seeking to remedy a problem of its own making–failure in the first instance to observe party rules on timing–it can somehow discriminate against groups of its own citizens. The State is also vulnerable to challenge under the party rules. Since any Republican or independent who did not vote in January in the Republican primary is fully free to participate in the June primary, the effect of the proposal is to enfranchise a class of Republicans while disenfranchising a class of Democrats–the ones who chose to vote in the Republican primary when they correctly understood that the Democratic contest was meaningless. A challenge along these lines would consume time, when time is not available, and it is not clear that the party would or could approve this exclusionary feature even if the participating candidates were to agree to it. The DNC would subject itself to legal action if it proceeds with approval of the plan with these terms included. These voting rights issues constitute a serious vulnerability in the proposed legislation and a threat to its successful enactment and implementation.

Bauer very concretely spells out the damage that can happen when you change the rules in the middle of a voting procedure. The Clinton campaign cannot just wave away his concerns: he’s shown how a revote will actually disenfranchise voters. Suppose I were a Michigan voter and I had skipped the Democratic primary (knowing that it wouldn’t be counted, which all the candidates including Clinton agreed was the case at the time), and gone to vote in the Republican primary instead. Now they decide to have a Democratic party revote after all, but I’ll be disqualified because of my earlier decision, even though I made it assuming good faith on the part of the candidates and the national Party.

I’d be pretty mad, wouldn’t you? And out of the thousands of potential Democratic primary voters in Michigan, some will be mad enough to sue, thus tainting the revote with litigation and (correct) claims of unfairness.

Hillary Clinton is not being quite honest about her positions (first the primaries shouldn’t count, now they should) nor about the problems inherent in any revote. Bravo to the Obama campaign for standing firm.

It’s no secret that the memo has gone out among Republican pundits to start chipping away at Obama. He’s the likely nominee, he’s probably stronger against McCain than Clinton would be, and he’s a dangerously quick study. The time to cut him down to size is now, and they know it.

One of Obama’s strengths has been that people trust him (he’s been pretty careful not to lie). His credibility has held up astonishingly well, given how far into an unusually protracted primary campaign we are. To damage it would be a major accomplishment for the Republicans, and a week ago William Kristol tried to do it in a column in the New York Times. But now Kristol has had to retract the core of his argument — in fact, the only part of the previous week’s column that had any real firepower. Not that you’d guess that from reading his correction:

In last week’s column, I cited a report that Senator Obama had attended services at Trinity United Church of Christ in Chicago on July 22, 2007. The Obama campaign has provided information showing that Senator Obama did not attend Trinity that day. I regret the error.

Sounds pretty innocent, doesn’t it? A slight schedule mix-up, nothing more. You’d almost think Kristol’s column the previous week had been about the candidate’s punishing travel schedule or something.

Not at all. Look at what he was actually saying in that column:

It certainly could be the case that Obama personally didn’t hear Wright’s 2003 sermon when he proclaimed: “The government gives them the drugs, builds bigger prisons, passes a three-strike law and then wants us to sing ‘God Bless America.’ No, no, no, not God bless America, God damn America, that’s in the Bible for killing innocent people. … God damn America for treating our citizens as less than human.”

But Ronald Kessler, a journalist who has written about Wright’s ministry, claims that Obama was in fact in the pews at Trinity last July 22. That’s when Wright blamed the “arrogance” of the “United States of White America” for much of the world’s suffering, especially the oppression of blacks. In any case, given the apparent frequency of such statements in Wright’s preaching and their centrality to his worldview, the pretense that over all these years Obama had no idea that Wright was saying such things is hard to sustain.

The more you learn about him, the more Obama seems to be a conventionally opportunistic politician, impressively smart and disciplined, who has put together a good political career and a terrific presidential campaign. But there’s not much audacity of hope there. There’s the calculation of ambition, and the construction of artifice, mixed in with a dash of deceit — all covered over with the great conceit that this campaign, and this candidate, are different.

It’s perfectly clear that the real purpose of this column was to show up Barack Obama as a liar: he said he wasn’t in the church when Wright said that, but really he was, and therefore he’s not as honest as he makes himself out to be.

Except Obama was telling the truth: he really wasn’t there. And by the way, as far as I know Obama has never claimed that he was unaware in general that Wright was making these comments. In fact, he talked on several occasions about how he feels about Wright, and about the questionable things Wright said. When Kristol writes “the pretense that over all these years Obama had no idea that Wright was saying such things is hard to sustain”, that’s because there has been no such pretense. The “dash of deceit” Kristol is referring to can only be about Obama’s (true) claim that he never heard Wright say these things from the pulpit. The report that Obama was in the pews that day was intended to be the bombshell in this column; all the rest was window dressing.

Since Obama really was not in the pews, the key point Kristol was trying to make — that Obama is deceitful — collapses. Kristol should acknowledge that frankly in his correction, and apologize rather than just “regret the error”. Something like this:

In last week’s column, I used a report that Senator Obama had attended services at Trinity United Church of Christ in Chicago on July 22, 2007 (when he said he hadn’t attended) to impugn his credibility and claim he has a “dash of deceit” in his political character. The Obama campaign has provided information showing that Senator Obama did not attend Trinity that day. I regret the error and apologize for the conclusion I mistakenly drew.

That kind of correction would mean that people who read just the correction, but not the original column, would still be able to tell what happened, and would recognize the canard the next time they run across it on, say, Fox News or CNN (as I did, while watching viewer’s comments scroll by on one of those channels while on a treadmill at the Harlem YMCA the other day).

As Kristol knows full well, the main damage has already been done anyway: the lie will spread quickly (as it spread to that viewer whose comment I saw) because there are a lot of people who are eager to spread it. The correction will spread slowly and fitfully, because corrections always sound lame even when they fundamentally change the story. Humans are intrinsically biased toward what they hear first, unfortunately.

Kristol wasn’t irresponsible in printing the original assertion; he got it from the journalist Ronald Kessler, and made that clear in his column. But having contributed to the spread of a lie, both intellectual honesty and good manners demand that Kristol should at least do everything in his power to fix the situation. Instead, he did the bare minimum.

I’m not impressed.

Imagine you run a non-profit organization that does a lot of good, but you’re not allowed to tell anyone about much of it.

That’s the bind the Software Freedom Law Center finds itself in all the time. They do a lot of their work behind the scenes, heading off Bad Things before the programming public ever finds out just how Bad those Things are. Unfortunately, many of these settlements have to be done under non-disclosure agreements that don’t allow the SFLC bragging rights on their (still impressively copious nonetheless) news page.

If you’re an open source software programmer, you may well be the beneficiary of their work without knowing it. The fact that your project or its users haven’t been sued by some patent troll may be happy coincidence, or it may be that various backroom negotiations, threats of legal challenges, re-examination requests, et cetera by the SFLC and its allies have kept you safe.

The SFLC is doing the things the rest of us don’t have the time or expertise to do. They’re not doing it to get rich (and just in case it wasn’t clear, they’re not getting rich). They’re doing it because they care about freedom.

They just can’t always talk about it.

So, please: donate. I just did.

[frdm] Support SFLC

Now this is a post I’ve been wanting to write for a while…

Conversational threads on the Internet should be independent of the medium they’re displayed in. That is, mailing lists, newsgroups, and web forums are all the same thing. They’re just different interfaces to the same data structure, and that data structure is the thread: a series of messages with directional reply relationships to one another.

The thread is the fundamental unit of conversation on the Internet, and the message relationships in a thread are independent of the interface used to access it.

One reason I’m ranting about this is that people sometimes set up “web forums” that behave like mailing lists except that you can’t read them with your regular email client. This is a tragedy, because for some of us our relationship with our email client is like that of a chef with his knives. You know how chefs usually travel with their own knives, rather than use someone else’s? I like to travel the Internet with my own knives: when I’m reading threaded information, I want to do it with my threadreader, that is to say, my mailreader. I’ve spent a lot of effort making it behave in precisely the way that works best for me, and there’s no reason those behaviors shouldn’t apply to all the threaded information I encounter on the Internet. I think I’m not alone in this.

Some might object that it’s equally tragic that people set up mailing lists instead of web forums. But it’s not, really. Mailing lists at least have a mature and well-understood programmatic interface — email — that allows sites like Gmane to provide the data via different interfaces. Gmane, by the way, seems to have independently arrived at the same conclusion about threads being independent from the interfaces used to access them.

The web forums example is just the tip of the iceberg. If the lesson that threads are the fundamental units had really embedded itself deeply into the programming world, we’d have mailing list software that would allow you to subscribe to just one thread at a time (or, if the list server software wouldn’t do it, most client software would do it by filtering). Blog comment threads would be accessible via a standard thread interface that would allow them to be presented as mail, news, web forums, blog comments, or chopped lettuce. It’s all the same thing: a message and a bunch of followups, some of which have sub-followups, and so on (see Directed Acyclic Graph).

I’m not asking everyone to use my mailreader, by the way. Indeed, I think it would probably drive most people insane. I’m merely saying that it would be good for us to have an explicit understanding of threads as the unit to focus on. What is a mailing list? It’s a big thread with a lot of subthreads. The charter (the declared purpose or topic) of the mailing list is an implicit initial message, and every message posted to the list is a “reply” to it; many of those messages are also replies to each other, of course.

What’s a blog post? It’s an initial message, and the comments are replies (and some comments are replies to replies, etc).

What’s a web forum post? It’s… Well, by now you can tell where this is going. I’ll stop here.

The world needs a unified conception of The Thread, something we can write programming interfaces for that then any client software can implement. This is not completely trivial, because in most messaging systems, the threads are not explicitly recorded. Instead, metadata attached to each message just says what earlier messages it is a followup to, and the threads are reconstructed from this. There is a certain richness, a possibility of variety, inherent in doing things that way, and we wouldn’t want to clobber that by making too naive a threading standard.

I wish I had time to work on it, but I don’t. I only have time to rant. So I’m ranting, in the hope that other programmers will agree that viewing all messaging systems as manifestations of The Mighty Thread is good way to look at things. Maybe someone can turn this idea into something useful.

Obamanation! Obamanable! Obamarated! Obamatastic!

Barack Obama

I’ve been an Obama supporter for a long time. There’s no correlation between experience and success when it comes to the Presidency. Our previous least-experienced President was probably Abraham Lincoln. Most experienced? Well, Herbert Hoover ought to be in the running for that; George Bush Sr. as well. Kinda makes you think, doesn’t it?

Barack Obama is exactly what he seems: terrifically smart, well-intentioned, utterly free of the personal insecurities that drive far too much of the decision-making in the current administration, and eminently electable. He stands a much better chance of winning against McCain than any other Democratic candidate would have. The canard that he’s light on policy simply confuses a primary-season tactic for a general electoral strategy. There’s no point trying to out-wonk Hillary Clinton, but that doesn’t mean he hasn’t done his homework: when the time comes, it’s there in reserve.

I’m not unquestioningly for the Democrat in every election, by the way. It’s just that the Republican Party has abandoned all the principles that ever would have made it attractive to me or to any other conservative leftist.

“Conservative leftist” is not a contradiction, it’s just a description: someone who believes that progressive taxation has proven itself over the decades, and that the major role of government is to step in and regulate situations where individual actors trying to maximize their own benefit would harm everyone’s interests (including, in the long run, their own). In other words, the government’s main job is to prevent game-theoretical dilemmas in which we all lose because there was no one to say “These are the rules, and for society to work, the rules must be honored.”

Some of these rules are easy: don’t steal things, for example. We all understand that even though it would be to any given individual’s benefit to break into houses and steal consumer electronics, it’s better for all of us if nobody does that, because then we don’t have a situation where every homeowner has to pay the individual rate for constant surveillance over their property.

There are lots of rules like that, or should be: don’t poison the environment, even though you can manufacture something more cheaply if you pollute. Don’t put your workers in danger, even though safety measures will cost money. Don’t lie in your SEC prospectus, because even though you might make out like a bandit at the public offering, we’ll all suffer if everyone’s lying about their company’s worth all the time. Don’t chop down those trees, even though you can sell a lot of paper and construction lumber if you do, because it’s the last forest standing in this area of the state. And so on…

The Republican party somehow decided that deregulation and pushing the envelope were inherently good things, and failed to realize that we’d established the envelope for a reason. That’s the “conservative” part of “conservative leftist”: what’s worked in the past should probably be kept. Unregulated industries cost us dearly: the savings and loan scandal (remember that?) was a result of deregulation; the subprime mortgage crisis was probably a failure to regulate in time.

The conservative in me says “Why don’t these so-called ‘conservatives’ get it? Don’t they see that the idea of government regulation should be, well, conserved? That it has worked? That it has a record of successfully preventing fairly obvious problems? That collective action is cheaper than individual action, because of economies of scale?”

Barack Obama gets this. Hillary Clinton does in part, but not in her bones, and she doesn’t understand how to communicate it, how to convince people of it. She’s not going to make this particular kind of change happen, except at a small scale, in areas that she was already paying attention to and where the damage is most obvious. Obama might not succeed either, but at least he understands the task. Yes, Hillary Clinton adopted “change” as a rhetorical strategy when she saw how Obama was using it… but while she has the words, she’ll never have the tune.


Also, he was firmly and publicly against the Iraq War from the beginning, and Hillary… Well, sorry, that’s one vote I just can’t forgive. Judgment when it counts means a lot more than experience.

A lot of us in the programming community have been looking forward to the first release of Paul Graham and Robert Morris’s “Arc” language, which Graham has been talking about for a long time on his widely-read site, paulgraham.com.

On January 29th, they finally released a first-draft implemention. Although billed as experimental and subject to change, it’s still something a lot of people will want to play with. Those of us who for whom programming in Lisp is a cherished memory, a kind of long-lost Eden to which we hope one day to return, are interested to see if Arc can become what we’ve been hoping for: a Lisp-like language that’s caught up to the modern world and that gathers enough developer momentum to flourish.

Unfortunately, the Arc web site, arclanguage.org, doesn’t answer the very first question most potential downloaders would ask: is it open source?, or as we used to say, is it free software? The site not only doesn’t say what license the software is released under, it doesn’t even state clearly that the software is open source! I finally downloaded the package itself and poke around inside to find out:

This software is copyright (c) Paul Graham and Robert Morris. Permission to use it is granted under the Perl Foundations's Artistic License 2.0.

Okay. So it’s open source, albeit under the least open-source of all the open source licenses. Sigh. I normally wouldn’t even go to the trouble of downloading the software to find that out, I only bothered because I was already quite interested in Arc.

I’d post on their mailing list a comment about the hidden license problem, but they apparently don’t have a mailing list. Instead, they have low-functionality web forums, and it looks like the only way you can interact with the community is through that forum interface. This is a pity: the thread is the fundamental unit of information on the Internet, and there’s no reason to force people to use one particular interface to access a set of threads. Perhaps some people like web forums, but others would prefer to access the threads via their mailreaders. If I have to use a web interface just to talk to a community, it makes me less likely to join that community, because I’ll start to associate participation with wrist pain. Let me choose my own interface, please.

Speaking of which, how about a bug tracker? Or any of the other tools that are now standard for open source projects? Some of the forum posts indicate that there’s a version control repository somewhere (using git), but the web pages don’t point to it, at least not as far as I could see. So those looking to follow development in real time will have to hunt around.

Given that the web site says “we’d like to encourage a sense of community among Arc users”, this is all a bit disappointing, and puzzling. It’s like they don’t actually want to build a community, which would be fine (it’s their project), but then why declare otherwise?

Mitt Romney dropped out of the race for the Republican presidential nomination today, with one of the most disgusting quotes I’ve ever heard (if Talking Points Memo, my favorite political blog, is reporting accurately, and they usually do):

“If I fight on in my campaign, all the way to the convention, I would forestall the launch of a national campaign and make it more likely that Senator Clinton or Obama would win. And in this time of war, I simply cannot let my campaign, be a part of aiding a surrender to terror.”

I wasn’t ever going to vote for Romney, but I have to admit, I never expected him to sink that low. It’s so brazen, it just might backfire; one can hope, anyway.

Over and over, we hear the anti-war Democrats get accused of damaging national unity in wartime, of surrendering to terror, etc. (The “surrendering to terror” accusation is particularly insidious, because it implicitly strengthens the bogus 9/11<–>Saddam link, yet the accuser can always get out by saying “Oh, I was just referring to the terrorists in Iraq who are killing our troops!”)

What sticks in the craw is how Romney never tries to see if the blame jacket will fit any other shoulders. Leading the country into a war without a popular mandate, against a country that did not attack us, with no backup plan should the original (unrealistic) goal should turn out to be unattainable… Now that’s irresponsible, that’s damaging to national unity, isn’t it? Sorry, but you don’t get a united front for free, just by declaring war. You have to consider how popular support for the war will be sustained over the long term, even beyond your Presidency, or else don’t get into that war. Don’t blame your opponents later because you didn’t do your homework. Roosevelt made it clear for a long time that he thought the United States’ entry into World War II was inevitable, but he didn’t actually seek a declaration of war until Pearl Harbor was attacked; he knew that the popular support wasn’t there and couldn’t be manufactured.

Now that the Democrats are increasingly turning against the war in Iraq, Romney all but calls them traitors. But he never seems to think that George W. Bush might have done something irresponsible by starting a war without the full backing of the nation.