Nov 29

Other peoples’ money

“The trouble with socialism,” Margaret Thatcher once famously said, “is that sooner or later you run out of other peoples’ money. This observation is the key to understanding the wave of government bankruptcies that has already begun to break over us.

Continue reading

Nov 29

The smartphone wars: Symbian Foundation folds its hand

Some drastic change of direction is about to take place in Nokia’s smartphone strategy. We can predict this because Nokia has shut down the Symbian Foundation. What we can’t tell yet is what direction they’ll jump, and there are at least four somewhat plausible scenarios. I’m going to list them in what I think are roughly decreasing order of probability and then explain my reasoning.

Continue reading

Nov 25

If RCS can stand it, why can’t your system?

I’ve written software for a lot of different reasons besides pure utility in the past. Sometimes I’ve been making an aesthetic statement, sometimes I’ve hacked to perpetuate a tribal in-joke, and at least once I have written a substantial piece of code exactly because the domain experts solemnly swore that job was impossible to automate (wrong, bwahahaha).

Here’s a new one. Today I released a program that is ugly and only marginally useful, but specifically designed to shame other hackers into doing the right thing.

Continue reading

Nov 23

First impressions of the G-2

As a very happy user of the G-1 back when it was the only Android phone available, I was keenly looking forward to what HTC and T-Mobile would do for an encore in the G-2. Especially when T-Mobile promised it would run stock Android with no skin and no unremovable crapware. I was seriously planning a first-day upgrade when the G-2 came out, just to get the higher data speeds.

Great was my disappointment when they shipped a crippled phone. T-Mobile kept the promise not to add crapware, but they disabled tethering and hotspot – two absolute must-haves for me. By the time these features were un-disabled in a firmware update, I’d discarded my plans to upgrade. The Nexus One is still a very nice phone and a pleasure to use.

But, quite by accident, I now have a G-2 for evaluation. No, T-Mobile didn’t send me one; I ran into a friend at the Philadelphia Science Fiction convention who’s replaced his G-2 with an Android tablet and wants to sell the former. So he lent it it to me to try for a while; the theory is, if I like it after a couple of weeks, I’ll give him fair market minus 15% for depreciation and we’ll both be happy.

The surprise is that, rather to my own bemusement, I’m leaning towards giving it back.

Continue reading

Nov 18

I join the not-flying list

Count me with those who will not be flying until the TSA procedures requiring either a full-body X-ray scan or a grope are rescinded. This is meaningless security theater taken to a Kafkaesque extreme, and I won’t consent to it even passively. When the airlines feel enough pain from refuseniks, they’ll push back faster than we can.

Continue reading

Nov 17

Bleg for info – Linux backup tools and services

One of the comments that got lost in the recent database restore was a pointer to a backup program I can’t offhand remember the name of. I remember that it’s a command-line tool written in Perl (alas) and meant to be done by a cron job; what it does underneath is rsync with hardlinks to the remote target, so you get a Time-Machine-like effect for not much beyond the space requirement of the initial dump. Can someone remind me what this is. please?

Also, I’m in the market for a dropbox-like service that I can rsync to and from, for off-site backup. Any suggestions?

UPDATE: rsnapshot is what I was trying to remember. A very elegant little tool, thoughtfully written and handy. I may go with for offsite backup.

Nov 17

Why spamrape happens

One of my regulars writes, re the recent spam-raping of the blog

>I’m still trying to figure out what the attack was. All the comments were replaced by spam?

No. What happened was that on Sunday night I caught a bot in the act of replacing real comments with spam, oldest first. It was working its way forward in time, apparently limited by the spped at which the PHP in WordPress could respond. It was very lucky that I caught it as soon as I did; I happened to need to look at a post from 2002 twice within minutes and saw the comments had changed.

I think the purpose of replacing oldest comments first was to delay or prevent me from noticing what had happened until the whole blog was corrupted. And corrupting the blog wasn’t the actual aim, anyway; what they were actually trying to do was boost the Google ratings of various shady marketing and scam sites by stuffing a fairly high-ranked blog with links to them.

Nov 16

Three cheers for Daniel Radcliffe, geek

When the photographer from People magazine showed up to do a spread on me in 1996 (yes, 1996 – pre-open-source, it’s from my first 15 minutes of fame as a lexicographer), he taught me a useful term – “face people”. Face people are people who are famous for being famous, the vacant icons of celebrity narcissism who throng the pages of magazines like, well, People. The photographer observed that he found dealing with someone who is not a face person refreshing.

In a similar way, I always find it heartening when I discover someone who by position ought to be a mere face person but is in fact one of us. And by ‘us’, I mean a geek. Er. Reads science fiction, likes computers, enjoys challenging games, is generally into bright-person stuff. This is especially nice on the rare occasions when the putative face person has made a show-biz reputation acting like a bright geeky sort.

And today I learned that Daniel Radcliffe, the kid who played Harry Potter, went on British TV, described Tom Lehrer as the cleverest and funniest man of the 20th century and his hero, and then sang The Elements. Badly, but with feeling..

Now I’m not going to say that I know Radcliffe has the whole constellation of geek traits. But after seeing that YouTube clip, I know which way to bet.

Nov 16

INTERCAL justifies its existence

(This is a repost. The original went of on 2010-11-14, a few hours before the spambot rape.)

Last night I made a classic n00b mistake. I was in a rush to get a test finished because my wife had just gotten home and it was time for us to haul off for the weekly Friday night with the regulars at our friendly local game store. I typed the rm -fr * to clear a scratch directory in the wrong window.

“Huh…” I thought, “that’s taking longer than it should have…” then realized with horror that it was clobbering my home directory and hastily interrupted it. Fortunately, I had a full backup on my laptop. Unfortunately, the full backup was ten days old; I stood to lose a lot of recent email and work.

Instead of gaming, I spent the next couple of hours recovering from this. I pulled the backup onto a scratch directory on my main machine, made file lists of the damaged $HOME and the backup with find(1), diffed them, and braced myself to discover how much I had irretrievably lost.

Nothing, as it turns out. I interrupted the rm -fr as it was still chewing through the alphabetically low directories under $HOME. The big one was dead.projects, my archival graveyard of superannuated stuff. When I killed it, it was busily munching on the huge directory full of tarballs and archives that I pulled together during the great INTERCAL Reconstruction Massacree.

Yes, that’s right. INTERCAL saved my butt, preoccupying the grim reaper rm just long enough

In the end, no harm done except Cathy and I didn’t get our weekly gaming debauch – I urged her to go without me but she went all wifely and supportive and stuff.

Lessons: Make backups early and often. And instead of throwing old code away, archive it where rm -fr will hit it first – because you never know, someday it might interpose its body between you and the deadliest typo.

Nov 16

The Rape of the Blog

(Part of this is a repost. The problem it described have been solved, at least until someone finds the next hole in WordPress. I have restored it to keep the record complete.)

Sometime late Sunday night or Monday, I wrote:

My blog is being raped by a spambot. I first noticed about a half an hour ago that some older posts had become inaccessible through search. Then I actually accessed an old post (“Women With Guns”) twice, a few mnutes apart, and saw that the 8 comments there originally had been replaced by one spam comment.

What’s probably happeniing is some sort of SQL attack on the database behind the blog engine.

I don’t recommend commenting until after we can close the hole and restore from a backup.

My rm -fr blunder on Friday proved to be but the entr’acte of a four-day descent into system-administration hell, from which I shall not even yet say I am delivered lest the dread god Finagle and his mad prophet Murphy laugh at my presumption and turn their awful gaze upon me. The aftermath of the spambot rape was actually mere a divertimento, playing as several different unrelated hardware and software snafus delivered a finely orchestrated attack upon my sanity.

Did I say merely my sanity? The consequences actually drew blood, which has done a pretty good job of soaking through the bandage over the laceration on my thumb. I have learned several different lessons which are unlikely to grow dim or doubtful.

1. Do not trust KVM splitters. They are flaky and can interfere with your diagnostic process, especially if you are having boot-time problems.

2. Ubuntu 10.10 is fucked up. I mean really fucked up, as in I have seen it hang during install on four different machines in the last 24 hours (and that was trying two different media). I had to drop back to 10.04 to get anywhere.

3. Ancient optical drives are an insidious horror. They can cause installations to fail in un-obvious ways. I replaced three today. It helped, but didn’t help enough by itself.

And most generally…if you are you one of those people, like me, who tends to never throws away superannuated hardware until it fails catastrophically, recycling old drives and cases and cables through multiple motherboard upgrades…stop now. You’ll feel virtuous and thrifty right up until the day you have a system emergency that snowballs into a major nightmare because some of your fallback hardware is marginal-to-the-point-of-near collapse and more of it is obsolete.

(Memo to self: Both PS/2 trackballs get replaced with USB devices as soon as I can get to MicroCenter. Who knew a brand-new motherboard would refuse to see them on the port?)

I’ve learned my lesson. I bought my way out of this disaster by paying $400 for a shiny new mailserver/webhost/DMZ machine. The machine it’s replacing is going to the recyclers. No parts are going to get saved to be built into Frankenboxes this time.

Now I gotta go wrestle with more consequences. My mail isn’t back up yet. The new machine needs configured.

Nov 16

After the spamraping, there has been some loss

This blog was badly raped by a spambot on Saturday. Recovery from the problem required restoring from a backup made early that morning. Lost in the restore were two posts and about a dozen comments.

It is possible I may be able to rescue some content by looking directly at an SQL dump, but I can’t guarantee anything. Apologies to anyone who was inconvenienced.

Nov 09

Lessons learned from reposurgeon

OK, I’m officially coming out of my cave now, after what amounted to a two-week coding orgy. I’ve shipped reposurgeon 0.5; the code looks and feels pretty solid, the documentation is written, the test suite is in place, and I’ve got working repo-rebuild support for two systems, one of which is not git.

The rest is cleanup and polishing. Likely the next release or the one after will be 1.0. It’s time for an after-action report. As usual, I learned a few things from this project. Some are worth sharing.

Continue reading