Feb 28

Plug for a worthy project: Softbound

When I do my ESR-the-famous-geek road show, I get two kinds of questions: the public ones from my auduence, and the private ones from people who buttonhole me afterwards because they politely don’t want to burden the audience with their particular concerns. Of these, the single most common one is probably “How do I attract developers to my project?”

Last Wednesday I was giving a talk at University of Pennsylvania, which I do once in most years because it’s near me and one of the professors there, Dr. David Matuszek, is an old friend who likes to have me in once a year as a treat for his students.

One of his colleagues approached me with the familiar question. There isn’t a good general answer to this one, because how you attract developers depends in subtle and complicated ways on which developers you actually want. But this particular pitch interested me because it could be part of a significant change in the open-source tools infrastructure that I see coming down the pike.

Continue reading

Feb 25

How smartphones will disrupt PCs

I never bought the hype that laptops were going to obsolesce the conventional desktop PC, nor do I buy today’s version of the hype about netbooks. The reason I didn’t is simple: display and keyboard ergonomics. I use and like a Lenovo X61 Thinkpad happily when traveling, but for steady day-to-day work nothing beats having a big ol’ keyboard and a display with lots of pixels. I have a Samsung 1100DF, 2048×1536, and it may be a huge end-of-lifed boat anchor but I won’t give it up for a flatscreen with lower resolution and less screen real estate.

But now I’m going to reverse myself and predict that smartphones — not today’s smartphones, but their descendants three to five years out, will displace the PC. Here’s what I think my computing experience is going to look like, oh, about 2014:

Continue reading

Feb 24

Marginal Devolution

The recession got personal for me today, when I learned the reason a man I’ve been gaming with at my regular Friday night group hasn’t been showing up lately is because he’s broke and in a homeless shelter. I’m going to ask the Friday night gang for help for the guy — not money, but the job lead he needs much more. And it got me to thinking, about the two people I know who’ve actually been dragged under by the crappy economy.

You might wonder what took me so long. I knew it was getting bad out there, with the nominal unemployment rate at 10% and the actual hitting 17% and 6 applicants for every job. But my friends are mostly university-educated professionals in high-skilled tech jobs — last fired, first hired, and bright enough that if they had to change careers or found their own business they could probably hack it. Except…except for these two, who I’ll call A and B. What’s happening to them is bad. Very bad. And it illustrates a problem that’s going to get worse barring some drastic changes in the system.

Continue reading

Feb 19

On being against torture

I’m against the horror of therdiglob. All right-thinking people should be against therdiglob; civilized societies have long abandoned the practice. Therdiglob makes us look bad in the eyes of the world. If you’re not against therdiglob, someone may do it to you someday.


The above statement is meaningless, because “therdiglob” is undefined. It has the form of moral indignation, but it is not morally serious. Actually, it’s vacuous except as a way of conveying the speaker’s desire to sound high-minded and morally superior. As read, it is actually faintly ridiculous — indignation without substance, tone without content, pure posturing.

Everything depends on the extensional meaning of “therdiglob”. If “therdiglob” were defined as “flaying the subject alive”, it would be difficult to object to the above. On the other hand, if “therdiglob” were defined as “giving the subject cotton candy”, it would become utterly rather than faintly ridiculous.

Now consider this:

I’m against the horror of torture. All right-thinking people should be against torture; civilized societies have long abandoned the practice. Torture makes us look bad in the eyes of the world. If you’re not against torture, someone may do it to you someday.

Continue reading

Feb 18

How you know you’ve made a difference

I received this a few seconds ago in my mailbox. It’s not especially unusual for me to get wow-you-changed-my-life email, I see two or three in a typical month, but this one is…well, I’ll say a bit more intense than usual. Also, 34 is an unusual age; they tend to be teenagers. Sender’s name masked and one bit turned into a live link. Otherwise unedited, typos and all.

I just finished reading your [Hacker HOWTO] for the second time in as many
days. All of my life I have wanted to be a programmer. I have never
done it. I dealt with the failure of that by downloading cracked
software and telling myself that I was a “hacker.”

When I clicked on the link to your guide, my intention was to get
started on the road towards what I envisioned a hacker to be.

By the end of your guide, I was wallowing in humiliation. I felt…
well basically I felt like a jack ass. I never even knew what a
hacker was. I wasn’t even a cracker, just some poser with no

Your guide showed me that any of my few contributions to the cracker
community were meaningless, juvenile ploys for attention with no
progressive merit. They won’t matter in 6 months because I haven’t
‘built’ anything.

After reading your guide, I began to research and really appreciate
the open source community. I saw that the degree of separation
between us wasn’t to huge of a gap and I realized that I could,
through dedication and hard(but fun) work, be part of something that
is growing and giving. A place where individual contributions aren’t
lost in the grand scheme of things, but help shape that scheme.

I am 34 years old and I have no problem admitting to you that your
guide made me feel like a complete ass. It also directed me to an
ideal I will be proud to contribute to.

For that, I thank you Sir.


I replied by quoting “I saw that the degree of separation between us wasn’t to huge of a gap” and said “I’m glad you got that far. Good luck on your journey.”

And that, ladies and gentlemen, is how you know your life has made a difference.

Feb 18

Being an oracle is weird

In some areas of computer science, “oracle” is used as a term for a magic box that delivers solutions to undecidable problems. Or, sometimes more generally for any machine that generates answers by a process you don’t understand. One of the roles I play with respect to the Battle For Wesnoth fantasy game is as an oracle that generates plausible fantasy names on demand.

Here’s a (very lightly edited) transaction of this kind that I took part in a short while ago. There’s something going on behind it that is odder than will be immediately apparent.

Continue reading

Feb 16

Who bears the costs of moral vanity?

A high-ranking Taliban commander is captured in Pakistan, and the (now entirely predictable) dance begins. Says the Guardian:

Mullah Barader has been in Pakistani custody for several days, with US and Pakistani intelligence officials both taking part in interrogations, according to the officials. Though Barack Obama has banned US agencies from using forms of torture such as waterboarding, Pakistani questioning techniques are frequently brutal.

That’s right. Because the American chattering classes have their panties in a bunch about acts of “torture” that don’t do any permanent damage to the victim, Barader is in the hands of Pakistanis who are likely to fuck his shit up the old-school way, with knives and cattle-prods and blowtorches. And yet, this is supposed to count as a moral victory.

Continue reading

Feb 13

When you see a heisenbug in C, suspect your compiler’s optimizer

This is an attempt to throw a valuable debugging heuristic into the ether where future Google searches will see it.

Yesterday, my friend and regular A&D commenter Jay Maynard called me about a bug in Hercules, an IBM360 emulator that he maintains. It was segfaulting on interpretation of a particular 360 assembler instruction. But building the emulator with either -g for symbolic debugging or its own internal trace facility enabled made the bug go away.

This is thus a classic example of heisenbug, that goes away when you try to observe or probe it. When he first called, I couldn’t think of anything helpful. But there was a tickle in the back of my brain, some insight trying to break into full consciousness, and a few minutes later it succeeded.

I called Jay back and said “Turn off your compiler’s optimizer”.

Compiler optimizers take the output stream from some compiler stage and transform it to use fewer instructions. They may operate at the level of serialized expression trees, or of a compiler intermediate representation at a slightly later stage, or on the stream of assembler instructions emitted very late (just before assembly and linking). They look for patterns in the output and rewrite them into more economical patterns.

Optimizer pattern rewrites aren’t supposed to change the behavior of the code in any way other then making it faster and smaller. Unfortunately, proving the correctness of an optimization is excruciatingly difficult and mistakes are easy. Mistaken optimizations that almost always work are, though rare in absolute terms, among the most common compiler bugs.

Optimization bugs have a strong tendency to be heisenbugs. Enabling debugging symbols with -g can change the output stream just enough that the optimizer no longer sees the pattern that triggers the defective rule. So can enabling the conditioned-out code for a trace facility.

When I told Jay this, he reported that Hercules normally builds with -O3, which under GCC is a very aggressive (that is to say somewhat risky) optimization level.

“OK, set your optimizer to -O0,”, I told Jay, “and test. If it fails to segfault, you have an optimizer bug. Walk the optimization level upwards until the bug reproduces, then back off one.”

I knew of this technique because I’ve been in this kind of mess myself more than once – most recently the code for interpreting IS-GPS-200, the low-level bit-serial protocol used on GPS satellite-to-ground radio links. It was compromised by an optimizer heisenbug that was later fixed in GCC 4.0.

This morning Jay left a message in my voicemail confirming that my diagnosis was correct.

I said above that optimizer bugs have a strong tendency to be heisenbugs. If you are coding with an optimizing compiler, the reverse implication is also true, especially of segfault heisenbugs. The first thing to try when you trip over one of these is to turn off your optimizer.

You won’t hit this failure case very often — I’ve seen it maybe three or four times in nearly thirty years of C programming. But when you do, knowing this heuristic can save you many, many hours of grief.

Feb 12

LORAN, we hardly knew ye

There’s been some upset in the blogosphere over the shutdown of the LORAN system of radionavigation beacons. This post at Chicago Boyz is representative (hat tip to Instapundit). The author worries “I’m not totally sure that this was a good decision.” and various commenters are much more emphatic, bemoaning the lack of a backup for GPS.

In my capacity as lead of the GPSD project I’ve been required to become a topic expert on the strengths and weaknesses of GPS and various competitors to it, including LORAN. So here’s the straight scoop: yes, a backup for GPS would be a really good idea. No, LORAN was never plausible as that backup, so angsting about its passing on those grounds is just silly.

Continue reading

Feb 10

The Great Blizzard of 2010: It’s Baaaack!

So, if you entertained any thought the Great Blizzard of 2010 was Gaia dancing a mocking reel on the heads of the AGW crowd…she’s back to tread out a hornpipe, a polka, and a rigadoon. The mid-Atlantic coast is now experiencing a second record-setting snowstorm just five days after the first one. Once again: we are snowed in, we are OK, the fridge is still well supplied, and the cat is still fuzzy.

Washington D.C. is now long past seeing its seasonal record for snow shattered. City authorities appear to have plain given up. The Federal government is shut down. (Yay!) Philadelphia is pretty much shut down too and nobody thinks it’s going to be any better off tomorrow. As I write we’ve got three feet on the ground in Malvern and more coming down fast; the trench I dug from our door to the driveway this morning has already filled in.

Last time around Malvern was 30-50 miles north of the worst-hit areas. This time, if I can go by what I saw on the weather maps, we had the bull’s-eye painted on us. The wind’s not as stiff as it was in Round One, but I think the snow is actually accumulating faster this time. Between the weekend’s snow and the new stuff I think we might crack the five-foot mark here.

The serious-damage threshold has already been crossed. Some friends of ours about a mile and a half away own a hot tub that sits under a light wooden-and-plexiglass gazebo. Used to sit under it, I should say; the roof collapsed today. Internet service is getting slow and flaky; I’ve had a couple episodes of being unable to reach even Google today. Pandora Radio is, unsurprisingly and with no blame to them, dropping out a lot. I’m thinking some of the core routers in the D.C./Baltimore area have probably crapped out.

I made another ginormous pancakes-and-bacon breakfast for us this morning. Wasn’t as much fun this time. And had to do almost all the shovelling myself, as Cathy slightly pulled something in her right hip over the weekend and I was not about to let her re-injure herself. Not that shovelling’s done a lot of good, anyway; as I noted, the snow has filled already in this morning’s trench to the driveway, Getting all the way to the road isn’t going to be pleasant.

Overall, this is starting to suck. Not seriously, yet, but the trend is not good. Um, about that global warming, could I actually have some, please? The cocoa is holding out, but we’re down to our last slice of pumpkin pie here, man!

Feb 10

If God is dead, is anything permissible?

One of my regular commenters asked, in a previous thread, “If everyone was truly released from the shackles of religion, and got beyond the false moral codes imposed on them, would society collapse in a heap of nihilism?” This question needs a longer answer that will fit in a reply comment.

The shortest summary is “No!”. The less short answer is: “No, because religious moral codes are epiphenomenal.” And it is on point to add that the question reveals serious ignorance of the actual traits of most religions over most of history.

Continue reading

Feb 09

Don’t Dis the Wiccans, Tea-Partiers!

A few minutes ago I read Bill Whittle sneering at “mass-produced members of bused-in wiccan nihilist anarcho-Maoist lesbian eco-weenie anti-war protestors”. I tried to leave a comment there; it went into moderation, and I lost my original in the browser shuffle. I can’t guarantee that the following is a word-for-word copy, but it’s pretty close.

Hey! Hey! Don’t lump all Wiccans in with the left-wing rent-a-mob crowd. It’s true that some our more vocal people fit the stereotype, especially in the Dianic wing of the movement. But there are lots of quieter Wiccans who are gun-toting libertarians like me; for us, the rejection of monotheism and “faith” is continuous with the rejection of One-True-Wayism in all its forms. Thomas Jefferson might say of us that we have sworn on the altars of our gods eternal hostility towards every form of tyranny over the mind of man.

Wiccans are potential allies for the Tea Party movement, as long as it remembers that America was founded on religious dissent and doesn’t fall into an unholy alliance with bigoted religious conservatives as the GOP did. That choice didn’t play well with the general population of independents and moderates, either; heed the lesson.

Here’s the disturbing part. There are now two comments on that post, and mine isn’t either of them – suggesting that Bill Whittle did a moderation pass and shitcanned it. If true, that’s deeply disappointing news about both Bill Whittle and the movement in which he claims to be a principal figure. It puts some point on the left-liberal accusation that Tea Partiers are a bunch of reactionary know-nothings wearing fiscal conservatism as mere camouflage.

Mr. Whittle, I’m making a noise about this because I think your attitude about Wiccans — whatever it actually is — is a good proxy for your movement’s ability to see beyond tired stereotypes and fratricidal culture wars. Are limited government and individual liberty your actual goals? If so, can you recognize potential allies from wherever they hail?

Much — including the future of the Tea Party movement, and perhaps the future of our country — may turn on your answer.

UPDATE: It now appears that the apparent disappearance of my comment was due to technical difficulties. I apologize to Bill Whittle for entertaining dark suspicions of him personally, and note that he disclaims being a spokesperson for the movement. The larger question about the willingness of the Tea Party movement to (sorry for the PC phrase…) embrace diversity, is still open.

Feb 07

Opening Pandora’s Music box

I’ve been meaning to experiment with Pandora Radio for a while, and finally got to it today. It’s based on something called the “Music Genome Project” that categorizes music by how it expresses a large number of “genes” — traits that describe features like song structure, instrumentation, genre influences, and so forth. According to Wikipedia these are used to construct a vector, and similarity between tunes is measured by a simple distance function. You give Pandora a seed artist; it then apparently random-walks you through tunes and artists similar to that artist’s style.

Continue reading

Feb 06

The Great Blizzard of 2010

This is a bulletin for those of my regulars who know that I live smack-dab in the middle of the mid-Atlantic-coast region of the U.S. that’s just been hit by epic snowfall. We’re OK. It’s dangerous outside and we’re not planning on stirring out of sight of the house until the blizzard is over, but we’re OK.

Continue reading

Feb 03

Naming and shaming the AGW fraudsters

James Delingpole, in Climategate: Time for the Tumbrils, noting the public collapse in credibility of AGW “science” utters a fine rant summed up in this wise (parochial references to British political figures and organizations omitted):

I’m in no mood for being magnanimous in victory. I want the lying, cheating, fraudulent scientists prosecuted and fined or imprisoned. I want warmist politicians booted out and I want fellow-travellers who are still pushing this green con trick to be punished at the polls for their culpable idiocy.

For years I’ve been made to feel a pariah for my views on AGW. Now it’s payback time and I take small satisfaction from seeing so many rats deserting their sinking ship. I don’t want them on my side. I want to see them in hell, reliving scenes from Hieronymus Bosch.

I too long to see the frauds and the fellow-travellers in the hell they’ve earned for themselves. But revenge, while it’s a tasty dish that long-time public “deniers” like Delingpole and myself are now thoroughly enjoying, isn’t the best reason to hound them and their enabling organizations out of public life. The best reason not to relent, to name and shame the fraudsters and shatter their reputations and humilate them — ideally, to the point where there’s a rash of prominent suicides as a result — is this:

If we don’t destroy them, they’ll surely ramp up yet another colossal, politicized eco-fraud to plague us all.

Continue reading