Why I love Talking Points Memo.

May 15th, 2008

My favorite political blog, TalkingPointsMemo, is usually insightful on policy, and even more so on politics. But what really distinguishes it from the competition is the quality of its writing, even in short, ephemeral posts. For example, this is from an item posted today:

“Many of our foreign policy thinkers seem to be developing the kind of character damage suffered by children who can buy the best toy every time their parents go to the mall — the inability to distinguish between necessities, simple wants and the mere desire for kicks which is born of pervasive moral boredom.”

Read the whole post if you have time — it’s excellent, especially given its brevity.

Boy Scouts and Open Source?

May 9th, 2008

I was never a member of the Boy Scouts myself, so my understanding of what they’re about is limited to what’s seeped in from popular culture, but this looks like a winning idea:

Friday May 9, 2008

The Boy Scouts have joined the Open Source Community.

The Boy Scouts of America National Council in Irving, TX has announced the release of their Open Source Initiative. The OSI Project represents a significant commitment by the Boy Scouts of America to the Open Source Community.

This project represents a “complete embrace of Open Source by the Boy Scouts”, says Greg Edwards, OSI Project Manager. Through the OSS Website (http://opensource.scouting.org) the Boy Scouts are not only committed to becoming users of Open Source Software, but teachers, producers, and advocates as well.

(See Greg Edwards’ open letter for more.)

If this means actual scouts are going to be encouraged to get involved in open source projects — say, it will be considered an official scouting activity that you can (I guess) earn merit badges for — then it seems like a great chance for a lot of kids to experience the open source process.

(Er, I guess that should say “boys”, not “kids”. Why aren’t the Girl Scouts doing the same thing? Why weren’t they doing it first, actually?)

Of course, only a small percentage of scouts will flourish in open source, in the sense of having the temperament and discipline to make useful contributions to the projects they participate in. But that’s okay: that ratio is the norm in open source projects. There’s no reason to expect more or less from Boy Scouts. What’s more important is that all the scouts who participate will be exposed to the cultural norms of the open source community: sharing, respectful technical discussions, taking the time to express oneself clearly in writing, fixing things instead of complaining that they’re broken, etc. For every Boy Scout who gets involved in open source, or who hears his friends talking about their projects, that’s one more person who understands what open source is all about. (I’m using “open source” synonymously with “free software” here.)

I’ll close with this beautiful story from Jim Blandy:

Back in 1993, I was working for the Free Software Foundation, and we were beta-testing version 19 of GNU Emacs. We’d make a beta release every week or so, and people would try it out and send us bug reports. There was this one guy whom none of us had met in person but who did great work: his bug reports were always clear and led us straight to the problem, and when he provided a fix himself, it was almost always right. He was top-notch.

Now, before the FSF can use code written by someone else, we have them do some legal paperwork to assign their copyright interest to that code to the FSF. Just taking code from complete strangers and dropping it in is a recipe for legal disaster.

So I emailed the guy the forms, saying, “Here’s some paperwork we need, here’s what it means, you sign this one, have your employer sign that one, and then we can start putting in your fixes. Thanks very much.”

He sent me back a message saying, “I don’t have an employer.”

So I said, “Okay, that’s fine, just have your university sign it and send it back.”

After a bit, he wrote me back again, and said, “Well, actually… I’m thirteen years old and I live with my parents.”

That is: on the Internet, nobody knows you’re a Boy Scout.

Precipitation in Google Chicago Office

May 7th, 2008

I had no idea Brian Fitzpatrick was behind me. Ben Collins-Sussman did, but apparently he wasy too busy filming to shout a warning. Thanks, man. I’ll remember this.

Will Franken in San Francisco, tomorrow and Saturday!

April 3rd, 2008

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.

The Michigan Primary Problem is Deeper than Hillary Clinton Admits.

March 30th, 2008

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.

Here’s How It’s Done, William Kristol.

March 26th, 2008

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.

What To Do With That Hundred Dollar Bill You Just Found Under The Couch

March 8th, 2008

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

Thread Theory

March 6th, 2008

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 conversational information on the Internet, and the message relationships in a thread are independent of the mechanism used to access that thread.

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’d 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 is most useful for me, and there’s no reason those behaviors shouldn’t apply to all the threaded information I encounter on the Internet.

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 separate from interfaces.

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 naïve 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.

Obama-rama!

February 20th, 2008

Obamanation! Obamanable! Obamarated! Obamatastic!
Obamanothermiddleeasterncountryfornogoodreasonidontthinkso!

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.

Obamalicious.

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.

How Not to Release Software

February 19th, 2008

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?