Author: Karl Fogel

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,

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,, 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.

Bobby Fischer has died at the age of 64. One year lived for each square on a chessboard. (Was he thinking about that?)

I wonder how he felt about machines taking over the game. Chess is now a “solved” problem in the sense that no human can win reliably against the machines anymore. Of course, it’s not “solved” in the sense of there being a machine that can always at least draw given the advantageous color (assumed to be white, but that doesn’t matter for these purposes). Probably Go will become machine-dominated within a few decades too, though so far it’s proven a tough nut to crack, which is somehow pleasing.

RIP, Bobby Fischer.

New Jersey has become the second state to pass the National Popular Vote Interstate Compact, following Maryland. (Yay, New Jersey! In an odd coincidence, I heard this news while in a hotel room in New Jersey. I will give the state a big kiss when I head out tomorrow.)

The National Popular Vote Interstate Compact is not a highway maintenance agreement. It’s a plan —  a workable, entirely constitutional plan — to replace the electoral college system with a true popular vote. In a nutshell: each state in the compact agrees to give all of its electoral votes to the national popular vote winner (regardless of the winner in that state), and the compact only goes into effect after enough states have signed it to decide elections (that is, the members must control at least 270 votes in the electoral college).

Now we’re one state (more importantly, 15 electoral votes) closer to real democracy in the US. Thank you, Governor Corzine. In California, the state legislature passed the compact only to have it vetoed by the incomprehensible Governor Schwarzenegger, who said “I cannot support … giving all our electoral votes to the candidate that a majority of Californians did not support.” Okay, so you’d prefer to give the presidency to a candidate that a plurality of the country did not support, Arnold? (I think he meant “plurality” not “majority”, but English is not his native language so we’ll give him a break on that one.)

I’ll balance this out with a complaint about New Jersey: they have the funny you-can’t-pump-your-own-gas law (seen that in Oregon too, but nowhere else). All gas stations here in NJ are “full service”, meaning that an attendant has to come pump for you. But, just like pumps everywhere in the United States, the gas pumps in New Jersey have stickers saying “Do Not Leave Pump Unattended While Pumping Gas”. In practice, though, that’s exactly what happens: the lone attendant dashes around from pump to pump, running credit cards, making change for customers, asking people what kind of gas they want, all while leaving unattended the pumps he’s already started. So as far as I can tell, the full-service-only law actually results in reduced safety at gas stations, or else those stickers are pointless.

But the gas thing is a minor quibble compared with passing the NPV Interstate Compact. Who’s next? It’s pending the governor’s signature in Illinois…

Is it just me, or does Barack Obama consistently do much better than polls project? I seem to recall this happening in Illinois, too, both in the Democratic Senate primary contest, and then again in the general election (yes, he was expected to win the general election by a lot, but he did even better than that). Now he’s done it again in Iowa, and I’ll bet a nickel that he does better than projected in New Hampshire as well.

What could it be? Could people be telling pollsters one thing and then voting another? Or was this time just an artifact of the Iowa caucus system (but… I thought the effects of the caucus system would have been taken into account by pollsters, since they do ask about peoples’ second choices as well).