Designing Interfaces

OK, it’s geek time again. This time the topic is how to write code that can withstand change. It’s very common to have one function X call another function Y with a pointer argument which is expected to be non-NULL. Those of you who only program in languages without pointers can skip most of this article, though the general statements at the end might still be of interest. Those who don’t even program probably left already. ;) The question here is: how should the “contract” between these two functions be defined and enforced?

More Pictures

Some of Amy, some of other things.

Gouging Again

We should all be thankful that the winds of Hurricane Rita don’t seem to have killed anyone, but, according to the LA Times, price gougers did.

“They keep saying that we didn’t go anywhere for the storm,” Quaneshia Haynes, Coleman’s 25-year-old daughter, said Monday, tears streaming down her face. “We left. But we had to come back, and we didn’t have any choice.

“Let me tell you what they don’t tell you about evacuating. They don’t tell you that if you’re poor, you’re on your own. They don’t tell you that people will charge $100 for a hotel that has dirty sheets, where the toilet doesn’t even work. We didn’t want to come back here, to live with no lights and no water. But we had no help up there. Nothing.”

Would somebody like to remind me how gouging will lead to an efficient allocation of resources, and solve all of our disaster-recovery problems?


In the context of a very sad story illustrating the specific dangers of not recognizing pseudo-science and anti-science for what they are, hilzoy at Obsidian Wings (by far the best blogger out there IMO) hits on a much more general truth.

The combination of wishful thinking and the seductions of thinking that you have uncovered an important truth that the scientific establishment is just too blind, or too invested in its own hypotheses, to see, are clear. I’ve always thought that recognizing that contrarianism is an unworthy use of the human intellect is an important part of growing up, but I know enough people who haven’t yet learned this lesson not to find them surprising.

Just as I can understand getting addicted to crack, I can easily understand being contrarian even in the face of what ought to be convincing evidence, enjoying being the embattled advocate for what I took to be an unpopular truth, not being responsible enough about what I say in public, not wanting to admit my mistakes, and so on. And just as I can’t really understand ignoring all the lines, the boundaries, the warning signs that say: hilzoy! Pay attention! Your life is going completely, horribly out of control! that stand between me as I am now and me combing through a carpet looking for little rocks of crack, I can’t understand Christina Maggiore letting things go so far that she was willing to gamble with the life of her child.

I think that almost everyone wants to have their intelligence and insight appreciated. It’s part of why I maintain this site, I admit, and that’s something I share with every other blogger in the world. Unfortunately, some people expect more recognition than the actual uniqueness or originality of their insights will bring, and they lack the capacity for self-validation that allows them to settle for less, so they try to raise their profile with deliberate provocation. This phenomenon is apparent in everyone from in-your-face queens at gay rights parades to trolls on internet forums. It accounts not only for anti-science attitudes like Maggiore’s, but also anti-economic and anti-cultural ones as well. The appeal of referring to the “virtue of selfishness” (a.k.a. “greed is good”) is not just that it’s an interesting argument but that it’s an in-your-face rejection of Enlightenment principles such as utilitarianism and as such it gets people’s attention. Its value is not intellectual but social. “I have recognized this insight which the unwashed masses (and you specifically) have not, therefore I must be smarter. Worship my intelligence.” In Men Are From Mars, Women Are From Venus I think this kind of hierarchy-creating (as opposed to peer-bond-forming) use of words and ideas is portrayed as classically male, but I think that way of looking at it is a bit anachronistic. It’s a distinct (ab)use of communication, but it’s not tied to one gender.

People who employ this tactic know it’s high-risk. They know that they’re likely to be proven wrong, and appear even dumber than before. That just doesn’t matter, because as far as they’re concerned all levels of recognition below that they desire are equal so the only thing that matters is that contrarianism offers some small chance of reaching that level whereas “following the crowd” (even if it’s a smart crowd) does not. They also know that they can sneak quietly away when they are repeatedly shown to be wrong and foolish, but they can shout from the rooftops on that one occasion when they achieve some sort of vindication. That one moment of glory is one more moment than they expect otherwise. Again the internet provides myriad examples of this behavior, as does the Bush administration’s loud braying about a few successes and sullen silences about its more numerous failures.

Contrary does not mean independent. Blind opposition to something makes one as much its slave as blind support does. Anti-fashion is just another kind of fashion. What the world needs is not more contrarian thinkers but more independent ones, who have developed the critical faculties necessary to recognize when an ideological enemy is right and when an ally is wrong, and who have the courage to say so when it happens. Of course an affected eclecticism is no better than an affected contrarianism, but at least it provides more variety. Real eclecticism, though, should be everyone’s natural state. It beats being either a mindless drone or a Rebel Without a Clue.

Dinner With Amy

Here’s a quick video of Amy’s new trick during dinner (118K WMV). No thumbnail this time because I want it to be a surprise.

Biggest Time Sink Ever

As though playing Civilization IV won’t be bad enough, I found this little snippet in an interview.

Civilization 4 will be the most moddable version of Civilization ever. Players can edit basic stats and attributes in XML files. On a higher level, much of the game will be exposed to Python so modders will be able to edit events and have more control over how the game works. On an even higher level, we are planning to provide an AI SDK to allow experienced programmers to dig very deep into customization.

Wow. I’ve always thought it would be great fun to create a new AI for Civilization or some similar game, and the fact that the SDK might be Python-based is just gravy. I can see having a ton of fun with this if they actually follow through on this plan.

Blogger is the new AOL

What is the deal with all of these people on Blogger disabling anonymous comments? I’m not talking about the popular blogs that might actually have had a troll problem; I’m talking about the small-timers who don’t have that excuse. Spam should already be taken care of by the CAPTCHA system, so (even though that also excludes sightless people) that’s not an excuse either. Nonetheless, three times in the past week or so I’ve meant to leave a comment on a Blogger blog, only to find that I couldn’t because anonymous comments were disabled and no other identity option provided. Well, sorry, but I – like thousands upon thousands of others who either use real blogging software themselves or don’t have their own blog – am not about to create a Blogger identity just so I can comment on your blog. You can restrict comments to the small pool of other Blogger users if you want, but such cliquishness seem pretty contrary to the spirit of dialog that I thought modern blogs were supposed to be about. Get some backbone, and let people who can do more than click on a couple of buttons comment on your blogs.

Catching Up

Here are some more pictures (mostly of Amy) from the last few weeks.

Judicial Activism

Cass Sunstein has a review of Supreme Court justice Stephen Breyer’s new book up on TNR. While I do pay the sort of attention to their decisions that I feel all citizens should, I’m not a particularly avid watcher of the court and I have to admit that Breyer was one of the justices I knew least about. Maybe I should work to correct that, because it looks like he has a lot of interesting things to say. The first thing that struck me about Sunstein’s review is that Breyer is, by one reasonable-seeming measure, the least “activist” justice, while the conservatives tend to be the opposite.

In his own judicial work, Breyer might indeed be seen as the most consistently democratic member of the Rehnquist Court: among its nine members,
he has shown the highest percentage of votes to uphold acts of Congress and to defer to the decisions of the executive branch.

Some of the most noteworthy decisions of the Rehnquist Court have attempted to limit the power of Congress. Here Rehnquist himself was the leader, and the Court has, since the 1990s, adopted positions that he began to press in the 1970s.

So much for the conservative whining about liberal activist judges, I guess. Now, on to the really good stuff.

Political Colors

Many of you are probably familiar with the Political Compass, which replaces the traditional liberal vs. conservative model of political belief with a two-axis version – economic left vs. right, and authoritarian vs. libertarian. The World’s Smallest Political Quiz is essentially similar. The more I’m involved in political conversation, though, the more I think these miss the mark. Why, for example, is the “libertarian left” much emptier than the other three quadrants? These would be people who believe in significant government intervention in the economy but not elsewhere. Since the economy touches so many other things, this can be a difficult position to sustain; some would even call it self-contradictory. Why are most liberals authoritarian, and most libertarians on the right? Similarly, what of those who want the government to stay out of the economy but in our bedrooms? I think the best way to explain this is by considering that there might really be three rather than four groups, forming a triangle instead of a square. Those groups are defined by who they focus on:

  • Blue: the state, or people acting through the state
  • Red: capital or its holders, which translates to big business
  • White: the individual, including the small businessperson

The choice of colors are based on the now-common “red” vs. “blue” political division, plus one other. Normally I’d go for one of the other primaries, but “green” has a different political meaning and “yellow” is somewhat derogatory so I decided to complete the set of colors in the US flag (and several of our nearest cultural neighbors’ flags) instead. Enough of the color-symbolism; what does this mean?