Personal opinion: Python's "usability" and "readability" are marketing hype

(Personal, GeekStuff)

2012-12-02 22:16
Comment [4]

People love to pitch Python as a language to learn in. I am pretty sure this is because everything you hear about Python is about how easy and intuitive it is, and how people love to pitch it as a good choice for learning.

I have an alternative hypothesis: The Python community has become deeply committed to the notion that the way Python does things is by definition the most readable, cleanest, and otherwise best to learn. So that’s what gets talked about. People remember hearing about Python as a good teaching language, and as an easy language to learn.

I don’t think it’s actually a good language for teaching, and I frankly don’t think it’s a particularly clean or legible language. I’m by no means an expert Python programmer, but I have been reading and editing Python code on and off for some years now, and I’ve certainly learned a lot of other languages. I’ve also had the distinct pleasure of watching newbies encounter Python, and found that it’s not just that I’m biased because I know other languages; they are consistently being bitten by the same things I am.

A few specifics:

Indentation as flow control is not solving a real problem.

Yeah, I said it. I know, everyone loves to point to examples of C code in which what the code does and how it’s intended are mismatched. In Python, they gleefully explain, that can never happen, because the indentation is the flow control.

This sounds good, but in reality, I’ve been using C for something like twenty-five years, and in that time, I doubt I’ve seen two cases where there was an actual bug in which possible confusion between indentation and block structure could possibly have been involved. It isn’t actually a common problem.

In reality, the problem is almost never “I misunderstood that because the indentation misled me”. It’s “I did not correctly understand what the flow should have been”.

Python doesn’t help with that. At all. It doesn’t really make it any easier to see the flow of control. Worse is what happens when some editor mishap breaks things. In languages with explicit begin/end markers which are not inferred from indentation, you can tell that something has gone wrong. If you lose a token, the code stops compiling. If you merely screw up indentation, the fact that the indentation and flow control don’t match up tells you that something has gone wrong — it serves as a parity bit, in effect.

The net result is that, whether I’m looking at my Python code or other people’s, I find more flow control problems in the Python code than I do in C, lua, perl, Ruby, or sh. In all of those languages, the begin/end pairs are explicit, and in C, lua, and perl, they are consistently conducive to automated verification that they match, and editors can pop to the beginning or end of a block a little more reliably.

It’s super easy to read, except when it’s not.

Python has some lovely tools. Consider the “list comprehension”; a syntax for describing a list as code. For instance, [x * x for x in range(10)] evaluates to the first ten squares. Easy to read, pretty. But of course, you might want to process only some of a list, in which case you get things like [x * x for x in range(10) if x % 2 == 1]. Okay, that gets us the squares of the odd numbers from 1 to 10. But it’s not quite so readable anymore, because the condition is buried at the end of the operation.

Python tends to suffer from an initial dogmatic position that a particular thing is all that is needed, after which when more is needed, it has to be managed as an addition to that syntax rather than a change. So a lot of stuff gets sort of oddly inverted. Perfectly usable for an experienced programmer, but even fairly experienced programmers may find it a little confusing, and it’s certainly not novice-friendly.

Conventions are there to be violated.

Many programming languages have encountered a desire among users to be able to concatenate members of a list with some intervening text. In most object-oriented languages, this is viewed as an operation of the array or list object. So in Ruby, it’s something like a.join(', '). Lua, table.concat(a, ', '). Python, though, does ', '.join(a). Why? I have no idea. People give answers to that question, but none of the answers I’ve seen make any sense. I think it’s mostly just because if other languages do something, it’s presumed wrong because those languages aren’t Python, so Python does something different.

Even internally, it can be a bit hard to figure things out. A newbie friend was trying to use Python, and was stuck because of the behavior of Python class declarations. Which, of course, come in two types which are incompatible. Ugh.

Change is defeat.

Reactions by the Python community to suggested changes are rooted in a deep-seated emotional conviction that the language is correct, and if you don’t like it, you are wrong. There is a persistent cultural norm of condemning any suggestion that maybe the way Python does something isn’t as readable as something else. Python is defined as the most readable language; therefore, whatever Python is doing is maximally readable, and something else you would like is evidence that you are a bad person.

I have used many programming languages and tools. The only time I’ve ever had a user community insist that I ought to have total control over my corporate mail server and all the email servers I interact with, though, it was Python. See, a lot of mail servers break messages in various ways, usually harmless. But one common failure mode is screwing up empty space, especially at the beginning of lines. Is it super-common? No. But it happened to be affecting me for a while at work (we have no idea why, but I suspect a pathological interaction with the system that was trying to forward messages to a Blackberry), with the result that Python code sent to me not as a separate attachment was consistently garbled. I pointed out that this might be considered a way in which the indentation behavior could be inconvenient to users, and was basically told that it is idiotic for me to expect a programming language to survive any software which is broken in any way.

This is the general rule: Nothing is ever a problem with Python. Users who have trouble with it are derided. Tools or environments or requirements it doesn’t handle well are defective. And this, it turns out, means that things that might have gotten changed or addressed in another language are preserved, with ever greater emotional weight placed on believing that they are inherently superior, and rejecting as unworthy people who don’t like them.

Exceptions are the norm.

The heavy reliance on exception handling as the primary mechanism for everything is … unusual, anyway. In many other languages, the idiom is either that referencing an array or table produces a non-result if an item doesn’t exist, or that you check for existence before referencing. The Python idiom is that you reference the array unconditionally, which throws an exception if the requested item doesn’t exist. This idiom permeates things, and results in code which is quite simply a lot harder to read in most cases. Explicit tests may be clutter, but they’re clutter you can see. Exception handling is a COME FROM; it’s a control object which isn’t visible at the point where control is transferred to it.

Yes, exception handling is good. It’s powerful. It is an extremely useful tool, and I think languages which have it gain significantly in expressiveness. But like many powerful tools, it’s harder to understand than many of the alternatives, can make it harder to track what really went wrong in code, and certainly makes a much more elaborate set of things to teach newcomers.


Not really trying to argue this comprehensively or anything, but… I do not think Python is a good teaching language. I do not think it is a particularly pretty, clean, or elegant language. It’s better than PHP, sure, but that’s not really saying much. Python does tend to be slightly more readable than perl, but that’s as far as I’d go. I consistently expect less effort reading either Lua or Ruby. C is often harder to read, but here we find the great failure of Python: You cannot write a code beautifier for it. C code can be reindented by software and most of the bad writing disappears immediately.

If you’re planning to make a thing for novice users, please don’t jump straight to Python because everyone says it’s the “easy” and “clean” language. It’s frankly not. I have seen nothing to indicate that Python produces particularly clean code, or is particularly easy to use, and I’ve seen a whole lot of people struggling with the language get harassed, insulted, and dismissed by members of the Python community.

Which is to say: The perception that the language is “easy to use” is rooted largely in driving away anyone who doesn’t find it easy to use. I’ve seen nothing to indicate that it’s really anything special. New users find it just as bewildering as other languages, and often moreso due to the mix between things intended to be simple and things intended to solve a problem that the simple thing didn’t solve.

Peter Seebach


Comment [4]


Media bias, media coverage, and voting discrepancies...


2012-11-25 14:43

Glenn Reynolds points out some interesting discrepancies in state and federal divisions between Republican and Democrat, which John Hinderaker says is probably not because of the national media bias, but because of differences in how people view governance.

Both start with the assumption that the only reason people would vote differently from themselves is that they are somehow lacking. Reynolds assumes it’s because they are swayed by liberal media bias; Hinderaker assumes it’s because they think Democrat candidates will “bring home the bacon”.

I propose an alternative explanation, in which we allow for the remote possibility that some of the people who disagree with us are not lying or stupid, but actually have significant differences of opinion. I bring this up because I grew up voting mostly Republican, and haven’t voted Republican in national-level races in quite a while. This time around, I did end up voting for the Democrat locally, but it was a close call; I actually liked the Republican candidate.

First, don’t assume that everyone agrees that Republican candidates stand for better fiscal responsibility. I haven’t believed that to be generally true in ages. Yes, I know it’s the nominal stance, but in practice, I see Republicans voting for all manner of expensive boondoggles, and when they do start talking about cutting spending, it’s usually in ways that I consider short-sighted at best. Or, in some cases, a thinly-veiled attempt to hide malice towards some group of people who are benefitting from help.

I urge you guys to consider a simple fact: Akin lost by 15% in a state that Romney won by 10%.

The Republican primary process tends to strongly favor candidates who are willing to espouse very strident positions on the key talking points — anti-abortion and anti-gay, in particular. And it tends to strongly favor candidates who are willing to either speak out against science or politely say nothing when other people do. This is because there’s a large voting bloc who are vehemently opposed to basic and fundamental results in biology and geology (evolution and the age of the earth) and climatology.

But, just as the state-to-national scale media tend to gloss over state and local elections in favor of national elections, so to do these voters tend to gloss over state and local elections in favor of national elections.

Which means that moderate candidates have a much better chance of representing the Republican party at a local level than they do in national races. And if you consider the possibility that the issue here is not elaborate schemes involving fiscal responsibility or pork barrel politics, but the fact that a bunch of the candidates the Republican party advances at the national level are either fucking nutjobs, or willing to pretend to be convincingly enough to make it through the primaries… well, sure does simplify explanations, doesn’t it?

If the Republicans were running national-level candidates who were not outright cruel to gays If they had not run a campaign this year in which the only rational response to “looks like the Republican rape guy lost his election” was “which one”? I think they’d do a lot better.

I love the idea of fiscal responsibility. But Republican talking points and actions of the last little bit here have included:

  • A significant increase in our military budget.
  • Scuttling our debt rating by grandstanding on the debt ceiling.
  • Many and repeated assertions that there must never be any compromise in order to reach a working deal on any topic.
  • At least one proposal to keep all the expensive provisions of the health care reforms, while dropping the unpopular provision that actually pays for them.
  • Voter ID laws, which are an expensive solution to a problem we don’t have (voter impersonation) and have no effect at all on problems we do have (felons voting, people voting more than once, etcetera).
  • Aggressive pushes to pass more laws, which will cost money to enforce, to try to restrict abortion further.
  • Various anti-gay crap, all of which is probably bad for the economy (since married couples tend to be more economically stable).

Which is to say: I don’t believe that the Republican party, in its current form, stands for fiscal responsibility. I’m not voting for the Democrats because I think they’ll bring home the bacon, I’m voting for them because they aren’t quite as repulsive as the people they’re running against.

There are real concerns to be had about people who don’t pay taxes not taking the costs of programs into account, except that the “analysis” I see from pundits consistently misses the point that a very large number of these people do pay taxes — just not income tax per se. For that matter, many of them would indeed be paying income taxes if rates went up or available deductions went down. The issue is not that these people have no stake in the issue and are thus voting idiotically out of pure self-interest; it’s that Republican thought is dominated by people who dismiss them by asserting that they are voting idiotically out of pure self-interest, and thus establish the Republican party as uninterested in listening to them no matter what they have to say.

Stop blaming everything on outside forces. Stop assuming that people who disagree with you are necessarily either stupid or dishonest. Outside of politics, if a belief is highly correlated with university-level education, that is usually taken as a reason to think that maybe there is something to it. That Republicans as a class have gotten comfortable with the notion that if most college-educated people believe something, it’s probably wrong, does not reflect well on the GOP.

Remove the logs from your own eyes first, folks.

Peter Seebach



I love the idea of having a working memory, anyway


2012-11-25 02:35
Comment [4]

So, my memory is better sometimes, not quite as good other times.

Earlier today, I was cleaning up the garage some, and I noticed something: A smoke detector hanging on the wall. Well, I’d never seen that before, and I’ve replaced the batteries in the other smoke detectors at least twice, so… probably needs a battery. Well, I was doing a thing, so I didn’t do that right away. Time passed. Later, while I was making some dinner, I remembered that I had spotted that, and thought I’d go ahead and change the battery while my pizza cooked, so I went and did that, and took the old battery back in, and dumped it in the battery-recycling bin, and so on. And I was feeling great about having actually remembered something.

And then I noticed that the pizza wasn’t in the oven yet.

So, you know. Win some, lose some.

Peter Seebach

Comment [4]


David Frum says true things. Pundits bash him.

(Politics, Personal)

2012-11-09 18:28

It says something when David Frum is described as not really a conservative, or as someone unimportant and uninformed. The man has credentials. I don’t like everything he says or does, but I have read his writing and found it persuasive more than once. Not always, but more than once. And a speechwriter for George (H. W.) Bush is almost certainly not reasonably considered some kind of leftist.

Last year, David Frum wrote an article in which he openly acknowledged that he had been wrong about gay marriage. He granted that the evidence was in, and the things he had believed would happen if gay marriage became legal had not happened. And at that point, to many Republicans, he ceased to be a conservative. His more recent effort, a short ebook entitled How Romney Lost (link is to a Huffington Post review; yes, there’s a reason for that) has gotten him even more thoroughly condemned. He is viewed as a traitor.

Throughout comments on many sites, conservative and liberal, we see a flood of people who identify strongly as conservative assuring us that David Frum is a fool, that he doesn’t know what he’s talking about, that he’s unimportant. And there, I think, is what went wrong. This ties closely to the way in which conservatives, even otherwise rational ones, explained that Nate Silver’s polls were wrong and Romney had a good shot at winning the election. And no, Silver didn’t just “get lucky”. It’d be conceivable to say that it was just luck if only one prediction had been right, but the bulk of the statistical work based on actual state-level polls consistently agreed, and Silver in particular managed to call at least 49 out of 50 states. (He listed Florida as a slight lean for Obama, but it hasn’t been called yet as of this writing; last statistics I saw showed Obama ahead by around 60,000 votes out of over eight million, which is a slight lean indeed.)

And here, I think, is the thing: Conservatives tend to perceive group loyalty as a value in and of itself, and humans in general tend to conflate “good news” and “support”. Which is why Jennifer Rubin was popular with many conservatives — they preferred systematic dishonesty to accurate reporting, then made decisions based on information which had been chosen to be pleasant rather than true. For a long time now, “conservative” in the US hasn’t meant “small government”, it’s meant “refuses to change mind on an issue because that is a sign of weakness”.

So when Frum quips Horrible Possibility: If The Geeks Are Right About Ohio, Might They Also Be Right About Climate?, he gets attacked, demonized, and ridiculed by the Right. When he gets positive and respectful reviews and commentary from liberals (such as a review on the Huffington Post suggesting that he raises interesting points), it proves even further that he isn’t really a conservative; that something, somewhere, must make his opinions wrong and unimportant.

Changing your mind based on new evidence isn’t something that the modern American Right can respect; their underlying model is that you start with ideology and select facts based on that. Even the ones who are doing their personal best to use accurate facts have been gradually dragged down by a large pool of conservative-oriented media who make their money saying what conservatives want to hear. You can dismiss the gap between conservative outlets and everything else as the “liberal bias” of the mainstream media, but reality is what exists whether or not you believe in it. Voters in Ohio weren’t an artefact of some misleading polling, but a reality which the Romney campaign disregarded because they would rather listen to people telling them they were winning.

My question is, when did this start? I think it started being a problem for the Republicans in the 80s, but that’s not when the actual pattern started. No, I’m putting my money on the Scopes Trial. That was when it became clear that you could get a lot of very vehement support by denying science. Vehement support means money and votes. So when the Republican party, in the 80s, realized that there were money and votes to be gotten by rejecting reality, they did it. And it worked; it worked brilliantly. It won elections, because they had a large base of voters who would never, ever, consider voting for people who didn’t say things they wanted to hear. The only reason it’s not still working is that the population in question is declining. They’re dying of old age, and too many of their kids have gone to college now.

College, the famed bastion of “liberal bias”. We all know academia is “liberal” in the US. But what if that weren’t a bias on the part of academics, but rather a reflection of the huge portion of the Republican party platform that relies directly on a rejection of substantial hunks of basic modern science? What if it’s not that academics have a bias towards the Left, but that the Right has a bias against things that educated people tend to accept? It is about time to confront the possibility that angrily rejecting science does not work.

This would have a couple of effects. First, it would wipe out a large portion of the Republican party’s current base. Or would it? The people who insist on voting only for anti-gay, anti-abortion, anti-science candiates are not going to vote for a Democrat no matter what. They might become a third party, but while they’re a “large” portion of the Republican vote, I don’t think they’re big enough to win elections on their own. Secondly, it would convert a large number of undecideds and Democrats into a new kind of “moderate” Republican, by which we mean “a Republican who is willing to admit that science works.” I suspect they would get more votes, in total.

Losing the fanatic fringe would eliminate the bulk of the party’s anti-gay stance — a stance which is starting to hurt them some in elections, and that’s only getting worse. (Some observers note that some Democrats vote for anti-gay stuff, concluding that it is helping the Republicans, but I don’t think that takes into account the people who now identify as Democrats or Independents because of the issue.) Losing the fringe would eliminate the bulk of the party’s thinly-veiled anti-woman stance, too. The remainder might actually take steps that could reduce the number of abortions, like making contraception widely available, or making prenatal health care consistently available even to poor people. Fine by me. I would love to vote for a candidate who wanted to reduce the number of abortions by reducing the frequency of the circumstances under which they are most often sought, rather than acting to punish women and not caring how many abortions there are.

Such a transformation of our politics might even save marriage. As Mr. Frum points out, allowing gay marriage doesn’t seem to destroy the instutution of marriage. So why is it that the harder people try to “defend” marriage, the worse things get? Maybe it’s because the self-described defense of marriage is actually the attack on it. Reducing the creation of enduring family bonds to “one innie, one outie” has been a devastating assault, and the continued tolerance of that rhetoric among allegedly mainstream Republicans may or may not help the party, but it certainly hurts our society as a whole.

That Romney got fewer votes than McCain ought to be some kind of wake-up call. It won’t be. And the same people who ignored all the signs, polls, science, and evidence leading up to this are going to be continuing to demonize and marginalize Mr. Frum. And that sucks. But I think, from what I’ve read of his writings, that he would rather be honest than popular, so I think he’ll survive.

That being the case: Mr. Frum, you do yourself a disservice when you ask when Romney insulted gays. You might ask around to see whether you can find a token gay friend you could ask questions like this of, so people wouldn’t have to publically point out Romney’s surprise that gay people have families, or his dismissive reference to a woman’s “adopted” daughter immediately after hearing that she’d given birth to the daughter in question (same link). Or to explain that when you say that a group of people are what is wrong with society today, some of them may take offense. His superficial politeness does not come close to making his comments and statements somehow “not insulting”. I really feel like I can, and should, expect better of you.

Peter Seebach




Minnesotans for Marriage: Thank you.

(Personal, Politics)

2012-11-07 15:07

Thank you. I think it would have been entirely possible for the recent attempt at an anti-gay constitutional amendment to succeed. Minnesotans are, by and large, a little inclined to tradition, to a sort of comfortably midwestern view of family, to be cautious about change.

What it took to defeat this amendment was to put those values up against something stronger: Minnesota Nice.

Had you not been quite so blatantly malicious, I think the amendment would likely have passed. If your press releases had not dripped with insincerity and venom, I don’t think quite as many ordinary Minnesotans who had never really thought about the issue would have come to the conclusion that they cared more about being basically decent than they cared about their own comfort zones.

Just look at this lovely headline: Stolen sign- Actions like this show it won’t be live and let live if marriage is not protected in Minnesota.

The notion that vandalized signs are proof of some general trait of all the people who feel a given way is ridiculous. I am well aware that people who have “Darwin” fish on their cars and park near some kinds of churches tend to get them vandalized, but I don’t for a minute imagine that Christians in general are vandals. Every group has jerks. We know that, and in general we tend not to try to generalize about groups from a few jerks; indeed, we try very hard not to generalize about groups like that.

But what you guys did is establish that, in your case, it wasn’t “a few” jerks; it was the entire operation. You taught us all that not only did you have people who were malicious and dishonest, but that it was so uniform throughout your organization that nothing you published would ever have a shred of charity or kindness in it. You showed, very clearly, that this amendment was completely rooted in dishonesty and malice. You wrote things that made people look away, embarassed. Things that made people feel ashamed to be in any way associated with you. You reminded people that what is truly disgusting is not other people’s sex lives, but treating other people with contempt.

Thank you. Because of your tireless efforts to remind us that this was fundamentally about the desire to marginalize and exclude people, you made Minnesota the first state to reject an anti-gay constitutional amendment at the polls. By keeping your dishonesty shallow enough that your real motives were obvious, you reminded Minneostans that kindness is one of our cultural values, won the day for the American dream of equality and liberty for all.

Please don’t disband. Please continue spewing your disgusting filth and vitriol, slandering good people, and engaging in rhetorical dishonesty that would be a good example for a fourth-grade level class in critical thinking. When it comes time to legalize gay marriage in Minnesota, we will be relying on you to make the anti-gay position so repugnant that people aren’t willing to vote for it either.

Peter Seebach




Not a real fan of the options this year, but...


2012-11-05 20:01

Okay, here’s the thing. In general, my intuition is that Republican candidates tend to advocate economic policies which are more likely to work decently than Democractic candidates. And for a long time, that was enough for me to vote for them even when I had to hold my nose on social issues.

A few things have changed.

First, the Republican party has moved more and more towards Ayn Rand’s model of what freedom is, which is “I got mine; fuck you.” The systematic and widespread contempt for the poor is a serious problem; it’s not sound economics, and I don’t think it’s good governance. Romney’s famous “47%” remarks highlight a number of key flaws with the way prominent Republicans think and talk about “the poor”.

1. Just plain fuzzy thinking; Romney and the people at that event saw nothing wrong with the assumption that the sets “people who pay no federal income taxes”, “people who are relying on government support”, and “people who will vote for Obama no matter what” are the same set, even though it’s quite obvious that no two of them were.
2. Confusion about the many taxes we pay. Many Republican candidates and voters seem to believe that people who don’t pay federal income taxes aren’t paying taxes.
3. Confusion about the stake people have. There is a repeated assertion that people who aren’t paying federal income taxes don’t have anything personally at stake if federal income taxes go up. This is, of course, not always true; many people who don’t currently pay income tax would be paying it if the rates were higher. Furthermore, many of them have paid in the past, or will pay in the future.
4. A mix of dogmatism and inconsistency. The whole thing is magnified by two things; first, Romney’s insistance that he stands by those remarks, even though they were “inelegantly stated”, and second, his later complete retraction of them. Retracting them immediately would have been a sensible and reasonable course of action; people often say things that sound right intuitively, then reject them when confronted. Standing by them for several days despite criticism shows an unwillingness to check your work, and that’s a very bad sign. Retracting them completely later is nice, but plays into…

Second, the interaction between party primaries and general elections makes it impossible to meaningfully find out what many Republican candidates actually stand for. There’s huge pressure during primaries to be as vehemently anti-gay and anti-legal-abortion as possible, followed by huge pressure to stop talking about those issues in the general election. Politicians being what they are, we get a little of everything and no way to tell what candidates really believe. Okay, that’s par for the course, but we also don’t know how they will really vote. And that sort of matters.

Third, the recent behavior of Republican candidates on issues related to abortion, contraception, and so on is simply not one I can live with. The so-called pro-life movement isn’t, at any level, actually about preventing abortion or saving lives. Now, I can to some extent live with people pushing things that I think are harmful when they do so in good faith. These people, however, cannot possibly be acting in good faith. Recent remarks by multiple Republican candidates on topics related to rape highlight a wudesoread complete lack of interest in women’s well-being. And laws like the moderately famous Texas “sonogram” law make it clear that the purpose of these acts is not to save lives, but to punish women for being sluts.

Yes, I’m aware that many candidates (and voters) don’t support these things. But they condone them, which turns out to have similar effects. When I see a Republican candidate condemning these things unambiguously, I’ll give that candidate a pass on these issues.

Fourth, gay rights. Seems pretty straightforward. While Romney’s positions on many issues are sort of hard to read, his position on gays is absolutely unambiguous, and absolutely reprehensible. He’s not just vaguely talking about “preserving marriage” to appeal to the base. No, he’s acting to punish kids for having gay parents. He’s telling gays that he didn’t know they had families, and referring to a lesiban’s “adopted daughter” within minutes of hearing the harrowing story of how she gave birth to the child in question. Here, he’s far from the worst the party has to offer, but he’s not even close to the best. He is, in fact, fairly typical.

When I wrote a local candidate (Mike Dudley) to ask about this, he said he’s in favor of one-man/one-woman laws, but that it’s “not a big part of his platform”. I certainly have to give him credit for taking the time to respond; that’s more than most people would do. But the fact is, it may not be a big deal to him, but then it wouldn’t be — he’s not one of the people being denied basic civil rights. And that, I think, is my general objection:

Fifthly, and most generally, the Republican party seems to have committed to a party-wide view that things that happen to other people are not our problem. Romney doesn’t care about the “very poor”, and it’s not his job to care about “the 47%”, unless you believe him when he says it actually is. Time after time, groups of exclusively male Republican legislators argue that they shouldn’t be including the views of women on issues related to pregnancy and contraception. In short, there is a consistent general pattern that Republican legislative choices are rooted in the effects of that legislation on those present and maybe on the people they think will vote for them. That is not a decent way to run a country.

Sixth, the Republican party has become more and more vehemently unwilling to cooperate. This has drawn significant commentary in the last year or two, because it’s something of a change. Prior to the Obama administration, Congress might oppose the president’s views, or opposing sides in Congress might gridlock, but there was a general understanding that, at the end of the day, there was work to get done. No longer the case — and it is not remotely plausible to blame this one on the Democrats, tempting though it might seem. The Republican party, thanks to the newly-energetic “Tea Party” base, has a much higher than usual density of people who are unwilling to consider compromises. More generally, there is a consistent distinction in fundamental values between American “conservatives” and “liberals”, in that most liberals do not regard loyalty to a group as a moral value, while most conservatives do. This results in a party much more willing and able to guarantee a strict party-line vote, and to do so even when the obvious and immediate result is disasterous.

Seventh, the ideological commitment to science-denial of various sorts has gotten utterly ridiculous. The Republican party continues to, in general, present the notion that there is no real scientific consensus on whether our climate is changing, or whether those changes are related to things humans have done. The consensus there isn’t quite as solid as the consensus on evolution, but it’s okay, the Republican party as a whole steadfastly denies that there is a consensus there, either. There are plenty of open questions that scientists are legitimately disputing and studying to do with climate change, but the Republicans have worked hard to create the illusion of a serious dispute where none exists. “Even die-hard skeptics have long since conceded that point.“

I like the idea of smaller government, but the Republican party hasn’t been about smaller government for years. They’ve been about smaller social services, based on a consistent delusion that “welfare fraud” is a huge problem which dominates welfare costs; that’s cost us millions in lost productivity, and millions upon millions in extra paperwork and bureaucracy, but it hasn’t saved us enough money to notice. They’ve been all about making the government larger and more intrusive when it comes to marriage (state’s rights? Not on this issue, say the Republicans), drugs, and the like. They have spent many, many, millions promoting Voter ID laws which are carefully crafted such that of all the examples of vote fraud out there in the world today, not one is on offer that would have been prevented by such laws. At least one strategist, realizing that his career was over due to other problematic behaviors, finally came out and admitted that the goal was to suppress poor, minority, and elderly voters, who are disproportionately affected.

The Republican party in its modern form relies on the Big Lie, and relies on it heavily. Ads for voter ID trumpet “over a thousand” fraudulent votes cast in MN’s recent election; the Hennepin County attorney responds that the number of fraudulent votes was much, much, smaller. Furthermore, the letter points out, the problem which permitted any of those fraudulent votes was unrelated to ID, and has already been addressed; voter ID wouldn’t have had any impact, because all the fraudulent votes were cast by people who were in fact who they said they were, lived at the address given, and so on. From “death panels” to the assertion that Stephen Hawking could never have lived in a society which had socialized medicine, to robocalls to Democratic voters telling them they have to vote on Wednesday, the modern Republican party has committed wholeheartedly to this. The cluster of bad actors around Rush Limbaugh, Fox News, and so on continues to be a spectacular source of epic dishonesty — and highly popular with the party’s voter base. Multiple pundits insisted that Obama hadn’t called the embassy attacks acts of terror, and did so in ridiculously flimsy ways — but Repubican voters and supporters accepted this testimony in droves. (Not all, mind; I’ve known several who rejected that one as Too Ridiculous.)

It needs to stop, and it’s not going to stop while these tactics work, and it’s not going to stop while people who sort of disagree or disapprove continue to vote for them anyway on the grounds that they’re “better”. Ultimately, the difference is this:

When Republicans are told of Republican politicians and the like doing sleazy things, they totally disregard the criticism, claiming that the Democrats did it worse. No action is taken, because it would not be Playing To Win if you were to stop cheating when you think someone else is cheating.

By contrast, time and time again, I have seen Democratic voters and politicians step up and condemn such actions. When some wit on tumblr announced that she’d filled out her nana’s absentee ballot, and “She hates Obama, but little does she know she just voted for him”, there was an immediate dogpile of people who are voting for Obama, one describing Romney as “a sucking chest wound of a person”, who condemned this in no uncertain terms.

That’s what it comes down to. One party believes you should play fair. If we were to ditch the psychopaths and get back a party that believes you should play fair, but that the government should be smaller, we might have more interesting elections again.

Peter Seebach



Autistics Speaking Day: Predictably relatively quiet

(Autism, Personal)

2012-11-01 19:50

So, there was some idea floating around that people ought to pick a day and not talk in honor of the communications difficulties faced by “people with autism”. Which, of course, helps cement the stereotype that we generally can’t communicate, and supports the idea that other people ought to speak for us. Which, it turns out, isn’t super popular with a lot of autistics, so some clever folks came up with the idea of Autistics Speaking Day. Of course. A lot of autistic people don’t particularly enjoy talking to strangers, or talking about themselves. Or are a little shy.

But hey, I’m always up for an excuse to ramble a bit.

I was diagnosed pretty late; I was 35 or so. This is in no small part because, when I was a kid and the schools were trying to figure out why I lacked social skills, they didn’t have a word for this. Hans Asperger had published his paper, but it hadn’t been translated into English. So in the US, people working with kids thought “autism” meant “probably can’t talk at all, randomly hits self or others”. (It’s since been discovered that many “non-verbal” autistics are quite capable of using language, they just have a hard time making mouth noises.)

Growing up, I was definitely a weird kid. I got in a lot of trouble. I had trouble with things that no one could explain, had trouble making friends, and found lots of things obvious or trivial that would have been expected to be hard for me. (Some of this may be the fairly severe ADHD, admittedly.)

I got pretty lucky, though. My parents may not have been autistic (although I suspect my dad was), but they were mathematics teachers. The thing is, if you’re going to teach math, there are two things you have to be good at. One is just answering the damn question instead of second-guessing people. The other is second-guessing people when the question shows that they are confused.

That may sound contradictory. It’s not. The problem most people have is that they can’t do the first; they not only can’t answer the literal question asked, they can’t even tell you what it was. They didn’t hear that question, they heard a question similar to it which made sense to them. There’s a number of jokes on the topic of how mathematicians think, but the punch line “there is at least one sheep in that field, at least one side of which is black” pretty much encapsulates the category.

The other problem you get is that people can’t do the second; they haven’t got the habit of trying to infer and check premises from what someone’s saying. Math teachers (well, good ones) tend to have that habit.

When I first learned about doors, I had a problem with them. If I knew a door was a pushing-type door, I would push it. If it didn’t open, I’d then try to turn the knob. Thing is, the weight on the door could wedge the latch so I couldn’t turn it. So my mom observed this, and taught me a ritual: Pull the door, turn the knob, push the door. Problem solved.

So I grew up being allowed to be me. My dad generally gave me a hard time about being a picky eater, but not all that much compared to what a lot of kids I know had to deal with. But if I wanted to sit around reading, no one was yelling at me to go play outside. If I wanted to ask my dad for explanations of what he was doing, he’d make a game effort to explain them. Note: He was the chair of the committee that did the subject-specific math GRE tests. He would make a reasonable effort to explain the questions, and their answers, to me. I was in my teens. Maybe it should have seemed strange to him, but he was more interested in getting a chance to talk about math then he was in deciding whether his kid was sufficiently normal.

One of the things I find really frustrating about the various anti-autistic propaganda sources, like Autism Speaks and the like, is that their basic premise is that autistic children are bad because they do not cope well with “normal” things. I’ve commented on this kind of thing before, at length. The thing is… I don’t think that’s a reasonable framing. Complaining that kids are dysfunctional in an environment hostile to them strikes me as unfair. Imagine the unfairness of complaining that kids behave in crazy and maladaptive ways when left in a room with hundreds of books on only one fairly advanced topic several years above their nominal reading level. Who would do that? That’d be insane. But the fact is, I could happily sit in my dad’s office at the college and read math textbooks. I might not get everything in them, but I enjoyed looking at them, and trying to puzzle things out. So are kids who weren’t like that defective? Do they need to be “fixed”?

In short, I reject the habitual conflation of “normal” in the statistical sense and “normative”. I don’t think we need to find a cure for kids who are unmanageable when treated poorly nearly as much as we need to work on education for parents so they don’t create that problem in the first place.

The cure thing has all sorts of possible issues; the main thing is, if there were a “cure” for autism on offer, a whole lot of parents would probably use it on kids who were in no way capable of consenting. (In fact, I’d be sort of shocked if any “cure” which came along were even capable of working on people developed enough to give consent.) Thing is… I’m not sure I like the idea of the category of people sort of like me being eradicated. Bleh.

School was, well. It was school. I did erratically well or badly, depending on what I felt like paying attention to. I was never much good at making friends, but gradually developed habits that allowed me to avoid making enemies. I went to college early and had a lot of fun, although I continued to have characteristic ADHD problems.

Overall, I stand by my basic analysis: Autism and non-autism are both perfectly viable human states, but I think that a culture which contains members of both sets will be much, much, richer for the interactions.

Peter Seebach




Polls and predictions


2012-10-30 10:58
Comment [2]

The election season is fascinating for math geeks, because it’s full of numbers, and numbers about numbers, and numbers about numbers about numbers.

Now, all the people who did statistics will find this boring, but I know a lot of people don’t really have a stats background, and some of this stuff is interesting and worth knowing more about, so I’m gonna ramble a bit on what statistics mean and why they work the ways they do.

Statistics is the art of trying to get a good guess as to the overall traits of a group without having to examine everything in the group. This is useful, because sometimes you can’t examine everything. For one thing, it may take far too long. For another, if you’re trying to find out how strong a material is, you really want a way that lets you guess how much force it would take to break a given object, rather than breaking everything to find out how strong it was. Consider bridges; building a bridge, loading it up until it collapses, and then writing up a sign that says “the bridge that was here would have had a weight limit of 40 tons” does not actually help you very much.

Statistics are still guesses. There are two common ways this uncertainty is expressed. One is a degree of confidence; we are X% sure that the value of something is at least Y. The other is what’s called a margin of error. You’ll see this a lot in polling; pollsters will say that 44% of people support X, and 39% oppose X, and the margin of error is 3%. In fact, a margin of error is a fancy thing on top of a confidence interval; what “3% margin of error” usually means is “we are 95% sure that the true values are within 3% of the reported values”. It’s usually 95%, says Wikipedia; it could easily be other values, but usually people pick 90% or higher. The margin of error for a given level of confidence is sometimes called a confidence interval.

In general, the higher the confidence you want, the broader the margin of error. The margin of error will go down as your sample size increases, and up as it decreases. So a survey of only a small number of people will tend to have a larger margin of error.

So when a poll says that candidate A has 49% of the vote, and candidate B has 47%, with a 2% margin of error, that means that they are about 95% certain that the actual values are somewhere between 47-51% for A, and 45-49% for B. And that, in turn, means that it is entirely possible that B is actually more popular, by a small margin. (And indeed, it’s possible that the real margin is outside that range; it’s just not very likely.)

In the US presidential elections, considering the vast majority of states which assign all electoral college votes to a single candidate, it may seem strange that predicted electoral college totals are often not the result of any combination of states voting for a candidate. Rather than predicting each state, then summing the totals, pundits are more likely to assign weighted values for each state. So, Nate Silver assigns a 71% chance of Iowa going to Obama this year. What this means is that he’ll probably assign about 71% of 6 votes to Obama in his predicted electoral college vote total, and 29% of them to Romney. This is why you have predictions like his current 294.6:243.4; obviously, neither candidate is getting .6 of an electoral college vote, but the predicted average is in there. The margin of error, however, is huge; the same site gives about a 72.9% chance for Obama to win. That means a 27.1% chance that his total is 25.6 votes lower than expected, so a 90% or 95% confidence interval is presumably somewhat further out.

As a general rule, human intuition about statistics is dismal; we tend to heavily overrate the accuracy of small samples, and most people simply ignore “margin of error” values mentioned for polls. The other common mistake is to assume that the true values must be within the margin of error of every poll (which is obviously untrue; they should be outside the margin of error of about 1 poll in 20 usually), or that failure of polls to agree proves that one of them is biased.

There are probably 5-10 polls on the election occurring per day in the US, maybe more. Given that, you should expect that every two to four days, there will be at least one reasonably major poll where the “real” values are outside the margins of error listed for the poll.

Note also that polls, in general, are subject to systematic biases, which is one of the reasons that pundits tend to use multiple polls, and give them different weights. You can typically get a better value by comparing many polls than you can from any one poll. It’s probably not generally the case that the biases are particularly premeditated or malicious, but methodology will affect things. Polls done to cell phones will get you a very different set of people than polls to land lines. Polls will understate the votes of people who don’t have phones at all or don’t talk on them. (For instance, I know many autistic people who have consistently hung up on phone polls. Of course, that’s a tiny minority, and probably statistically insignificant.)

It is interesting to note that people are much more likely to think a poll or commentary site biased when it goes against their preferences. There are clearly some systematic biases floating around, but it’s hard to be sure which ones they are. Add in the general background flood of allegations that votes are being fixed, and you can have the argument over whether the polls didn’t represent the outcome due to bias in the polls or due to fraud.

You might want to know what happens when you try to use multiple samples to accumulate a better sample. Long story short: People make a ton of mistakes doing this. I actually don’t know how to do it correctly, but I am aware that simply averaging statistics does not give you better statistics.

So long story short: It’s a fancy word for guesses, but the guesses can be extremely good with careful attention to methodology, etcetera.

Peter Seebach

Comment [2]


Wow, thanks. It really is wonderful to be understood and appreciated.

(Autism, Personal)

2012-10-25 16:49

Okay, this is a year old and all, but I only found it today. Apparently, according to someone who has letters after his name and is thus more important than I am, Teaching empathy to someone with autism/Asperger’s is almost like teaching a pig to sing – it is a waste of time and annoys the pig (at least most of the time).

There’s a pretty basic question of definitions here. There are a couple different things that people sometimes mean by “empathy”. One is the general sense of thinking about how other people feel, which is also called “sympathy”. Another is relatively direct experience of other people’s emotional states. If you see someone you hate looking sad, you may experience schadenfreude, but you’ll also probably feel sad — because your brain tends to hand you emotional experiences it has detected. Most autistic people don’t have that (although I know a few who do), but many are at the very least aware of other people’s emotions; in fact, some autistics find social interactions troublesome precisely because they are so consistently overwhelmed by other people’s constant broadcast of emotional states.

But the fact is, this piece doesn’t make any sense using such a precise definition; time and again, the author stresses examples that show clearly that he’s talking about the more colloquial sense of “empathy” where we are talking only about some degree of awareness or concern about other people’s states. He is talking about “feelings of empathy and compassion”, which he graciously allows we might be able to “at least approximate”.

At which point, is is pretty hard to understand how on earth someone could come up with this glorious paean to completely missing the point and libeling a large group of people in a way that practically has to be malicious.

His stories of teaching “Frankie” to express empathy highlight the essential disconnect. Mr. Sanders appears to be unable to distinguish between experience and expression. He talks about circumstances where Frankie should be “expressing” empathy. Well. Hang on. Why should you express something you don’t feel? And what makes you so sure that he doesn’t ever feel things he doesn’t express? I frequently decline to express emotions for any of many reasons. I am aware that sometimes they’re socially expected, but I have been blessed with the option of deciding whether or not I want to do things that are socially expected.

The notion that autistics are incapable of empathy (in the general sense) is frankly idiotic. Temple Grandin’s amazing success relies in no small part on her ability to correctly consider and anticipate the feelings of others — something she does quite well.

What really comes through about this is that, while Mr. Sanders bemoans Frankie’s lack of empathy, the only person we see showing absolute disregard for the feelings and experiences of others is Sanders himself, who appears to have never considered the possibility that people might have internal lives or experiences which they do not always broadcast in the usual way. Relying so heavily on his much-vaunted social instincts, he fails to make even a tiny effort to understand people when their emotional states are not handed to him nicely packaged with a bow on them. The idea of thinking about how people feel, rather than relying on automatically knowing, has been rejected out of hand; why on earth would you think that someone else’s emotional state could be significant, if you don’t have that immediate and direct reminder?

And therein lies his confusion; since he would never put any effort into understanding people if it were not automatic, he can’t imagine that autistic people might have put in that effort. Where others might talk about how and why to evaluate other people’s emotions, focusing on principles rather than rote memorization, he abdicates all responsibility for doing the challenging thing, and relies on rote memorization, and vigilance for “teaching moments”. So he demands adherence to a script without any logical structure or basis to it, then castigates his victim, who “began to respond to situations in which he should show some empathy but in a very scripted way.” Well, if you didn’t want a “very scripted” response, maybe the thing to do would be to talk about theories and general patterns, rather than focusing entirely on specific instances?

But of course, he can’t; being non-autistic, he is of course incapable of abstract or symbolic thought. (What, you say? That’s not actually true? I’m overgeneralizing from a shallow stereotype? I learned it from you, Mr. Sanders. I learned it from you.)

So, on behalf of the millions of autistics out there, let me come forward and thank Mr. Sanders for his diligent effort to preserve harmful stereotypes in the most condescending and insulting way available, while demonstrating near-total incompetence.

And also, Mr. Sanders, thank you for demonstrating that “people with autism” is a fairly reliable cue that the speaker does not actually consider autistics to be people. See, if you were talking about a person, not a “person with autism”, and you were unsure of whether they were feeling something, you would always have the option of asking. That it didn’t occur to you that this could be a possibility really highlights the failure to consider your victim to be a person.

p.s.: The above thanks are actually not intended sincerely. Unfortunately, since autistics cannot use or understand sarcasm, I probably can’t communicate that. If someone non-autistic could repeat that to the guy for me, but totally not mean it, that would be helpful.

Peter Seebach




Standing room only...

(GeekStuff, Personal)

2012-10-24 11:20
Comment [1]

I’ve seen one too many news stories about how it’s bad for us to sit all the time. I now have a standing desk. It’s a little wobbly, so I’ll have to add some supports to it, which means a hardware store trip. Planning to add four corner supports to it. Initial feedback, yes my feet hurt, but I feel otherwise quite a lot better. I’ve always liked to pace when thinking, and this gets me some of the benefits of pacing without the difficulty reaching the keyboard.

Peter Seebach


Comment [1]


« Older Newer »