Me, on the GPSD mailing list:
Once upon a time, I did not hate autotools. Yea verily, it was the morning of the world and all things (even autotools) seemed fresh and new). I’d say this innocence lasted until about, oh, 1995.
But autotools was a kluge. And it did accrete kluges and crocks around it, adding layers of complexity until it became sore difficult to tell which end was up. And lo, it became a festering pile of special cases and obscure semi-documented rules, leading to a combinatorial explosion of unplanned interactions and obscure lossage.
Like, say, the fact that our make check insists on running gps-makeregress twice and in spite of being a genuine autotools expert with fifteen years of experience bear-wrestling the sorry fscker I cannot figure out why it is doing this.
Oh, there’s a reason, all right. And if I were willing to quintuple the three hours I just spent poking at our build setup I’m sure I could find it. But that was three hours wasted as far as solving any real problem was concerned. Life is too short for such nonsense.
Autotools has reached the Chandrasekhar mass limit of software and become a black hole of suck that consumes endless hours of bright peoples’ time without any good result. It is well past time for it to die.
I’ve been doing some heavy work on the core code of gpsd recently, and realized it would be a good idea to explain the whys and wherefores to my co-developers on the project. After I wrote my explanation and reread it, I realized I had managed to generate something that might be relatively accessible, and perhaps even interesting, to people who aren’t intimate with the GPSD codebase.
I guess I’m aiming this at junior programmers and particularly curious non-programmers. It’s a slice of what software systems design — the thing that project leads and architects do — is like in the real world, where the weight of history is often as pressing as today’s requirements list. I think this note shows an example of doing it right, or at least not getting it too badly wrong.
If you find the technicalese in here difficult, it may be useful to refer back to some of my previous posts about this project:
GPSD and Code Excellence
GPSD-NG: A Case Study in Application Protocol Evolution
Why GPSes suck, and what to do about it
Dr. Richard Friedman’s Sabotaging Success, but to What End?, published 2010-03-22 in the New York Times, is about an instantly recognizable pattern — people who sabotage themselves so they can feel like martyred victims of an uncaring world.
The piece is insightful and even funny in a bleak sort of way, but as I read through it I felt an increasing sense that there was something missing from this story. I was nearly at the end before I realized what had been lurking unspoken in Dr. Friedman’s account. But the crucial clue had been there from the beginning, when he writes of one patient “In fact, her status as an injured party afforded her a psychological advantage: she felt morally superior to everyone she felt had mistreated her. This was a role she had no intention of giving up.” Where…now, where had I heard that song before?
I’ve been troping again. This time I found and repaired the TV Tropes page on Faster Than Light Travel. It had previously made a distinction between three subtypes of FTL drive: “jump”, “warp”, and “shortcut”. The “shortcut” category was confused and confusing, and I’ve renamed it to “portal” and fixed the definitions of both “portal” and “warp” subtropes.
I’m now looking for earliest occurrences and trope codifiers on these subtypes. I think I have one nailed down, but I can’t push the other two back very far. Instances and cites are solicited.
The Ides of March, 2010 may be remembered as the day the entitlements crash began. Social Security liabilities exceed inflow, and SSA has begun tapping its vault full of Treasury bonds. “Too bad” (as the AP story notes) “the federal government already spent that money…”
I’ve been enjoying the TV Tropes website a lot recently. Today I created my first full-fledged trope entry: the sonic stunner.
I’ve been wanting to migrate the GPSD codebase off Subversion to a distributed version control system for many months now. GPSD has a particular reason for DVCS; our developers often have to test GPSD sensors outdoors and aren’t necessarily in range of WiFi when they do it.
GPSD also needs to change hosting sites, for reliability reasons I’ve written about before. Though I’m a fan of Mercurial, I determined that moving to git would give us a wider range of hosting options. Also, git and hg are similar enough to make intermigration really easy – from SVN to either is 90% of the way to the other.
This blog entry records two problems I ran into, and solutions for them. One is that the standard way of converting repos does unfortunate things with tags directories. The second is that the CIA hook scripts for git are stale and rather broken.
I’ve had learning the computer language Haskell on my to-do list for some time. I’m actually stepping up to learn it now, thanks to a temporary lull in my other activities and a vicious cold that has left me disinclined to strenuous work. I may associate Haskell with the taste of zinc gluconate for the rest of my days; both have an astringent and medicinal quality and produce fervent claims of effectiveness about which I am moderately optimistic but which I have not yet personally verified.
Haskell is very obviously a language built by mathematical logicians for mathematical logicians. Category theory lurks behind it in the same way that the lambda calculus lurks behind LISP. The following is an effort to make Haskell’s way of carving up the world intelligible, written partly to clarify my own thoughts.
Hmm: On 24th February I wrote, in a comment on this blog:
Weâ€™re about to reach the end of the historical era that began when Bismarck first implemented state socialism in the 1880s. The changes will be huge and wrenching; I wouldnâ€™t even put the dissolution of the USA outside the realm of possibility.
Two days later, Mark Steyn writes this in Our own Greek tragedy:
The 20th century Bismarckian welfare state has run out of people to stick it to.
Coincidence or conspiracy? You be the judge.
In a previous post, How smartphones will disrupt PCs, I explained how and why I think small, ultra-portable, general-purpose computers that we’ll think of and use as “smartphones” are going to displace the PC. I promised then to explain why the software of these devices will be open source.
Go read Androids Will Challenge the iPad. It isn’t about smartphones, but the logic that will break the iPhone business model is clearly set out in it for anyone who’s paying attention. What we’re about to see in the smartphone and tablet markets is a repeat of the way the IBM PC shouldered aside the Apple II after 1980. Google’s deliberately slow-balled launch of Android via the G1 was just prelude; it’s with the Motorola Droid, the unlocked Nexus One and the generic Android tablets that the game begins in earnest.
In the horrible-inevitability department: Darwin Foes Add Warming to Targets.
My first thought when I read this was: “Creationists opposing AGW hysteria? Wow. So those stupid fucks are good for something after all.”
My second thought was: “It’d be a damn shame if AGW ends up discrediting good science with the public, but if it happens the scientific establishment has only itself to blame for not busting the AGW fraud first.”
In fact, I don’t think that bad outcome is likely to happen, for reasons I explained in Will the AGW fraud discredit science?. But this news story is a warning to all scientists: if you don’t want creationists to get traction, you can’t just treat this as someone else’s problem. You have to clean house. You have tolerated liars and rascals like Phil Jones and Rajendra Pachauri in your midst too long; you need to throw them out.
A diplomatic way for any random professional society to do this would be to demand that all climate science must be held to the strictest standards of methodological scrutiny. All data, including primary un-“corrected” datasets, must be available for auditing by third parties. All modeling code must be published. The assumptions made in data reduction and smoothing must be an explicitly documented part of the work product.
These requirements would kill off AGW alarmism as surely as a bullet through the head. But its credibility is already collapsing; the rising issue, now, is to prevent collateral damage from the scientific community’s failure to insist on them sooner. Every day you delay will strengthen the creationists and the flat-earthers and all the other monsters begotten from the sleep of reason.
UPDATE: and, in a nice bookend, ABC follows the money, suggesting strongly that the scientific establishment has failed to clean house because alarmism is just too damn lucrative.
First there was the Tea Party movement. Which I’ve been keeping my distance from because while some of the small-government talk appealed to my libertarian instincts, it seemed to have a whiff of grouchy-old-fart social conservatism about it. While I’ve nearly achieved the calendar age required for grouchy-old-fart status, I don’t want anything to do with that mindset thank you very much.
Then there was the Coffee Party movement, which smelled of astroturf and humbug even before the founder was outed as a Democratic political operative and former New York Times staffer (but I repeat myself).
Now, there’s…the Cocoa Party movement! Yeah. Sign me up!
This satire is especially personally funny to me because in sober fact I am a cocoa-drinker by choice. I don’t like coffee, and while I enjoy tea well enough, I’d rather have a big mug of Godiva Dark Chocolate any day – extra strong, piping hot, no sugar or cream but a few shakes of cinnamon for sure.
My regular readers will know that I’m sometimes fascinated by the extent to which mammalian body language crosses species lines — and, indeed, is so well conserved that families as far apart as felids and primates can communicate in ways that are emotionally satisfying to both parties. We take this for granted, but it’s really quite remarkable when you think about it; there’s a repertoire of mammalian gestures that must have maintained consistent social meanings since the earliest mammals in the late Triassic, 200 million years ago, all the way through dizzying changes in size, encephalization and ecological niche.
My wife Cathy reminded me of another one today: the Nose of Peace. “I thought you’d enjoy this photo of a kitten and a young deer exchanging the Nose of Peace” she wrote; our label for it comes from my attempt to describe to a friend over the phone the behavior of two cats who, after quarrelling for days, decided to get along. My friend understood what was intended by “the Nose of Peace” immediately, and that term for it has since spread to several other mutual friends.