A glint of grim humor in the sniper story

I’ve been too blown away by the horror of the sniper story to post a lot about it (I lived for six years in Northern Virginia, just a few miles from the last killing in Seven Corners). But the Slacktivist has provided some grim perspective on the identity of the killer:

“…one thing we can be pretty sure of: the sniper isn’t a black man.

…. How can we be sure of that?

The killer’s vehicle is described as ‘a white, Chevy Astro van with a burned-out or broken left tail light.’

No black man could drive around for two weeks with a busted tail light without getting pulled over by police.”

Thanks to Evan, whose blog I’ve inexplicably not been reading, for the pointer.

More bugfixes coming

After the big release of 1.0.3a on Tuesday, a reader in England found some bugs I had missed in the first go-round with Manila Envelope on Jaguar. Specifically, people using the software for the first time can’t post!

The problem was a result of two things. First, the problem with Jaguar requiring plain text for XML-RPC extended into an additional function call that I hadn’t investigated, one that passed a URL as one of its parameters. This particular call only happens if no successful calls to the server have been made before, so I didn’t catch it in my haste to release 1.0.3a. Once again the importance of thorough testing…

Second, I made a big fuss about the importance of separating user interaction from business logic back in February, but didn’t catch all the problem areas. This particular problem was caused by a function that returned a string value. In the first implementation, I had the calling functions make the assumption that an empty string meant an error had occurred. Only problem: if the calling function in the UI is handling error notification and I’m returning a single empty string parameter, there’s no way to provide detailed error information.

This is where I miss “pass by reference” in other programming languages. It then becomes simple: you pass in a variable to be transformed by the method, and you check a return value for success or failure. Instead, I am using multiple return values:
return [Macro error: Can't compile this script because of a syntax error.]

which means I have to use AppleScript’s copy syntax instead of a simple set. Ah, growing pains.

How many weblogs are there?

I’ve been digging for stats on the weblog phenomenon. It’s harder than I thought. There are no directories at Blogger.com of all the Blogger sites. Even if there were, there’s no guarantee that they update regularly, or at all, or that they haven’t moved on to greener pastures elsewhere. I think trying to count blogs is like trying to take a census, with all the potential statistical irregularity that is implied.

There is, though, one good source of data for weblog activity: Weblogs.com. I decided to look at the historical record of high water marks that Dave has kept and see what it looked like.

Here’s the graph:

weblogs.com high water mark growth is linear at abt 2.8 weblogs a day

If you peeked at the alt text on the image, you got the punch line: according to the data, overall weblog update activity has been increasing since last December at a rate of about 2.8 weblogs a day. And that’s not taking into account the blogging systems that don’t ping Weblogs.com, or that require a manual update and the blog authors don’t do it.

Next question: what’s the driver? And what does this picture look like in the long term? If there’s a network effect created by content syndication and RSS, shouldn’t the curve be exponential? Or is it too early to see that yet?

I’d love to have a better dataset to try to answer those questions. If anyone has any ideas on how to get it, let me know.

Heads down; Mario returns

It’s been a pretty busy morning today. I’m still glowing from last night’s meal: grilled salmon on a bed of pureed fava beans with a lemon and chive citron-oil sauce. From the Babbo cookbook. I have to confess that I winced a bit at the price when we bought it (the day we met Mario), but so far it’s been worth every penny. Er, dollar.

My Dad, local TV celebrity

One of the family’s newer traditions, now that everyone is back on the farm in Buncombe County, is to spend a day after the apple harvest making apple butter by hand the old fashioned way — in a cast iron pot over an open fire outdoors with lots of people on hand to stir. My uncle Forrest has a trout pond down the hill from his house, in a little dammed-up river valley he calls “Quail Hollow” (random aside: the second word is generally pronounced holler), and they meet up to do the work there.

This year local TV got wind of the event and did a spot on it in last night’s news. The transcript will linkrot tonight, but I’ve transcribed the text in its entirety (lowercased for everyone’s sanity).

Dad (Olin), as always, hits the tone just right:

I’m a retired aerospace engineer.
Is this rocket science?
I think it’s harder.

Also, trust my uncle to claim that he had to go back to the family farm to be important–this is a guy, after all, who’s had pictures taken with presidents over legislation that he got lobbied through Congress.

One note: my mom was a little miffed they didn’t interview her–she was the only woman participating. Mom, if you have anything you want to add to the story, shoot it over and I’ll publish it…

Printing without wires, part II

Over a year ago I figured out how to connect our Laserjet to our wireless network. A few minutes ago I installed our new SMC base station, which comes with a built in print server—with a parallel port (what is it with all the obsolete hardware interfaces that won’t die?).

I took the opportunity to try hooking up our color HP DeskJet 842c to the print server, which can provide an LPR-style IP interface to the connected printer. I installed the printer as an LPR printer using Print Center and printed a test document from TextEdit. The first page had a PostScript job header, and it went on from there. Apparently the Print Center printer only could do PostScript—and the DeskJet doesn’t speak PostScript.

I was about to give up when I decided to try CUPS. As I wrote in August, Apple includes CUPS but doesn’t configure it by default—but you can enable it. You can also use it to provide more options than Print Center gives you for configuring the printer. Specifically, you can tell Print Center that an LPR queue is a DeskJet:

  1. After configuring CUPS and adding your DeskJet as an LPR printer through Print Center, point your web browser to
  2. Click on Manage Printers.
  3. Under the LPR printer, click on Modify Printer, then continue through the next few screens accepting the defaults until you get to the option to choose the Make of your printer.
  4. Choose the correct make of printer and click Continue.
  5. Choose one of the two DeskJet models—I’m using HP New DeskJet Series CUPS v.1.1 (en)—and click Continue.

You should now be able to print through your SMC wireless router to a DeskJet. So much for SMC’s claim that “the printer server is only compatible with x86 based Computers”.

Now if I could just get the LaserJet back online. It isn’t working and I can’t telnet to it again…

Heads down and racing the aggregator

After a productive day getting Manila Envelope 1.0.3a out yesterday, I haven’t done much blogging at all today because of a full workload. I am still alive though. There’s a lot to write about and only a little time in which to do it.

Dan Shafer at Eclecticity calls it “racing the aggregator.” Do you stop to write about something you see in the aggregator, knowing that you’ll fall behind as you do so and that there will be lots more things that pop up to write about?

Weekend catch-up

Lots of stuff this weekend. Friday Lisa and I went to Szmania’s in Kirkland. Ludger was doing his annual Oktoberfest “German soul food” weekend. It was pretty darn good—pleasant, professional service and excellent pork products.

Saturday we spent most of the day outside. There were a bunch of tree branches that we had pruned off then stacked under the pines in front, so I cut them up to go in recycling bags. Lisa and I both took turns killing moss in the lawn. She also built a new bed in front of the sidewalk, where our grass had died long ago. Saturday night we went for Thai with Ed, Gena, Catherine and Peter at Orrapin in Queen Anne. The food was excellent; my eyelids sweated.

Sunday we had just finished removing a dead hornet’s nest from 20 feet above our front walk when our neighbor from across the street came up. He was looking for commiseration. His basement had been flooding since yesterday; they had been unable to do more than keep up with the flooding with two pumps. We commiserated and said that we hoped it got fixed soon. When we came back from running some errands, the city was digging in front of our house. Apparently the feeder line that fed both our houses had ruptured, so they had to cut off our water until they could lay new line. They were able to give us water temporarily by running a hose from our neighbor’s house into one of our spigots (I didn’t realise those could go both ways!!). Eventful weekend.

Manila Envelope v.1.0.3a Released

The release notes are here. This version adds Jaguar compatibility. It has not been tested with pre-10.2.1 versions of Mac OS X; feedback is appreciated. Also noteworthy: this version now uses XMLRPC exclusively. You can download the software here; source code is also available.

I’ve deliberately avoided adding new features in this release since it took me so long to get the Jaguar bugfixes figured out. But there may be a couple of new features coming soon.

NWOSX dinners, anyone?

Brent: NW OS X Dinners. “I was thinking of starting an informal thing, not a users group or anything, but semi-regular dinners with other people here in the Northwest who are OS X developers. I mean ‘developers’ in the broad sense–not just people writing desktop apps but webloggers, scripters, designers, writers, system admins, power users, and so on.” Right on!


Jenny the Shifted Librarian riffs on DRM and computer priorities.

“I’ll bet that’s what really drove Hal crazy. Think about it. He probably just wanted to sing ‘On A Bicycle Built for Two’ (‘Daisy, Daisy, give me your answer do….’) but the embedded DRM wouldn’t let him so his circuits blew, thereby causing the deaths of the crew.”

I can just see it. “I’m sorry, Dave, I’m afraid I can’t play that file. I You know I have the greatest enthusiasm possible for the music, but there is an imminent failure in your DRM-35 unit.”