The parting

I sit in a hallway in Terminal D in Atlanta’s Hartsfield-Jackson International Airport, sharing the long wall outside Gate D2 with perhaps 30 soldiers in desert camouflage. A few minutes ago, a woman with a Georgian accent walked by and asked the bald soldier next to me with the white iPod earbuds where they were headed. “Back overseas,” he replied. The woman with her asked, rather foolishly, “Where to?” as her friend said, “Good luck!” “Thank you,” he replied, not answering the other question.

You don’t ever fly straight into Atlanta; you always spiral down into it, circling in patterns known only to migratory birds, surveillance and mapping satellites, and air traffic controllers. So, your right shoulder aching from being pressed to the seat back—or your seatmate—by the force and your stomach sinking a bit as the plane circles, you get the feeling that Atlanta is on a high mountaintop surrounded with fog. In reality, the airport is on miles of blistering hot concrete surrounded by smog, but that’s neither here nor there.

I got off a conference call this morning with industry analysts and drove to Logan, stopping at home to pack a few things. I’m making a quick flight down to Memphis to talk to our customer there. I haven’t been in the city of the blues, Elvis, and MLK’s death for seven years, since we visited the week after we got married in the fall of 1997. It seems like yesterday.

The gray-haired man next to me, with the white mustache that reminds me of my uncle’s—my uncle John spent years in both the Army and the Navy before opting for more conventional pursuits—says that everyone is in for a long wait. Seems that they’s be flying out the same time that I am. I hope I can find the gate in the crowd of camouflage.

There’s no WiFi at this end of Terminal D, just too many gates for too many small airlines. I actually saw a Hooters Air sign on the terminal directory, though I haven’t actually seen a gate for it since I arrived. Maybe the Hooters street team posted the sign on the directory surreptitiously to build demand.

What I have seen is PSPs, two of them so far, the first I’ve seen outside a Sony store. The eleven-year-old next to me from Baltimore to Atlanta had one—he was using it to watch movies, and not Spider-Man, I was amused to notice. The soldier on my left now is playing a first person combat shooter. From where I’m sitting the resolution looks about like the game of Quake I used to play after hours at AMS, though the sound is a good deal tinnier from the PSP speakers. I’d normally, bitter liberal that I am, crack a joke about an offduty soldier playing a first person shooter, but there’s no mileage in it, he’ too young—probably ten years younger than me.

I give up my seat on the wall to another young soldier who is rocked back on his haunches and either being amused or irritated—it’s hard to tell which—by the other civilian sitting on the wall, another ten year old who keeps asking, So how many soldiers are you? A thousand? Four hundred? I find myself thinking, influenced by the WWII movie I saw last night, that he’s going to get in trouble as a spy for asking so many questions.

The Airborne Rangers are queuing up now, last and final boarding call has been made and they are clearing the lounge. A father is hugging his infant kid goodbye, his other children and wife standing by, then kisses his wife and joins the queue. Just another departure, this one on Omni Air, a name intoned darkly by the mustache-bearing soldier in the hallway.

Suddenly, now that the crying kids have subsided or left with their mothers, the lounge seems much quieter. It looks odd with only a few uniforms left, like the color has left it. They’re boarding our flight now; our journey seems tame by comparison.

KEXP: podcasting is love

I have to confess: I may be the most unhip tech blogger out there. Reason: I never really understood the podcasting thing. Maybe it’s because my current platform doesn’t support podcast creation (I’m still on an older release of Manila); maybe it’s because I don’t really have the hard drive space to subscribe to a lot of podcasts. But I’m hooked now. Why? KEXP’s new podcast of Northwest bands, which they released last week and which had me grooving all the way into the office this morning.

KEXP’s internet radio stream has been good listening for many years, but it doesn’t go with you in the car. Hearing John Richards’s voice first thing in the morning, listening to northwest indie music while negotiating traffic—it’s almost like being back in Kirkland.

Big ups to John and the station. I’m looking forward to trying out the station’s other podcast too.

This, incidentally, is the flip side of my gripe last month about the iTunes Podcasting Directory. Yes, there are commercial interests there, and yes, they’re going to get heavy promotion. But that’s because they have money, and because otherwise no one would listen to them. As I told a guy from Highland Capital Partners last fall, RSS (and by extension podcasting) is about creating a new delivery mechanism. The thing that’s cool is that it’s one that plays by the rules of the web, not radio or TV. So while the big guys can come in and play in the space, they won’t silence the cool innovative voices that are out there—including both individuals and indie radio stations.

GreaseMonkey and Trackback Spam Removal

Wow. I can’t believe it took me this long to check out GreaseMonkey. This Firefox add-in, which provides the ability to apply little bits of DHTML to pages on your browser on the fly, changes everything.

Case in point: trackback spam on Manila. There’s currently no way short of manually checking every checkbox in a list of trackback spam to get rid of it all. (Hello, carpal tunnel.)

GreaseMonkey to the rescue! Using the CheckRange script, all I have to do is check the checkbox for the first trackback spam entry, then scroll down to the bottom of the window, hold down the Shift key, and click the last checkbox. All the checkboxes get checked—and in my case that’s somewhere over 100 pieces of trackback spam—and another click deletes the whole kaboodle.

What’s cool about this is instead of waiting for Userland to implement my ideas for better spam management in Manila, I can (to an extent) take some matters into my own hands. Vive la Greasemonkey!

(Oh, and the Google search that is helping me identify pockets of trackback spam is pretty useful too.)

More reviews-as-shopping-lists

It’s dangerous for me to read uao’s Sunday Morning Playlist reviews of musical styles on Blogcritics. I always end up with a long shopping list. True especially for a pair of playlists I found today: Paisley Underground and Jangle Pop. Any playlist featuring Opal and Guadalcanal Diary gets my attention, and the rest of the songs are intriguing even though I’ve heard none of them before. Good stuff.

Cowboy Junkies: Early 21st Century Blues

The Cowboy Junkies started their career with an album of covers and haven’t done another such compilation since. Until now: their Early 21st Century Blues, originally available only from their website but being released by Rounder next month, features covers of anti-war songs in the Junkies’s trademark laconic style. If you’re like most listeners, this description will have you running in one of two directions: madly toward the disc or as far away from it as possible. Frustratingly, the disc contains plenty of material to support both those positions.

With an album of covers (even one, like this, that includes a few original tunes), the reviewer’s focus has to be the selection of material and whether the arrangements and performances bring anything new to the songs. On the first note, this compilation does well. The track list comes together in pairs, including Bruce Springsteen’s “Brothers Under the Bridge” and “You’re Missing,” the aforementioned brace of originals by Michael Timmins (“December Skies” and “This World Dreams Of”), a pair of tunes by ex-Beatles (George Harrison’s “Isn’t It a Pity” and John Lennon’s acerbic “I Don’t Want to Be a Soldier”), and a few associated with Bob Dylan (the traditional “Two Soldiers” and Dylan’s own “License to Kill”); the traditional “No More,” Richie Havens’ “Handouts in the Rain,” and U2’s “One” round out the set. High points for material, then.

Performances and arrangements? Well, each of the numbers, with one exception, sound like a Cowboy Junkies song. That’s not necessarily a knock, just a note that most of the album is firmly in familiar territory with the familiar vocals of Margo Timmins anchoring the usual multi-instrumental crew in the background. This doesn’t always make for arrangements that bring new things to songs. Case in point: “Two Soldiers,” which despite a full band and a narrative gender switch brings nothing to the song that Dylan didn’t bring out in his version on 1993’s superlative World Gone Wrong.

Then there’s “I Don’t Want to Be a Soldier.” The band’s website notes, “We set up a drum loop and jammed away. After it was all over we realized that there was a definite hip-hop motion to the loop so we invited a friend of ours, Kevin Bond (aka Rebel) to write and record a rap, based on the themes that were driving the songs on the album. We then dumped the whole mess in Jeff Wolpert’s lap and asked him to make sense of it.” Oddly, the experiment mostly works. The interaction of drums and bass in the loop is a little too reminiscent of O.P.P., and the rap is a little shocking when it starts, like walking through an Appalachian forest and coming across a tricked out Escalade. But Michael’s distorted guitars, Rebel’s rap, and Margo’s vocals play off each other building to a hypnotic climax. It’s actually a lot of fun.

Other highlights on the disc include “Handouts in the Rain,” a fine take on a beautiful song, and “Isn’t It a Pity,” which must be Harrison’s most covered song. In this recording, it’s apparent why, as the soaring final choruses finally succeed in bringing Margo’s voice out of the comforting blanket of the low alto range and bring some real passion from the band.

So: the album is uneven, yes, and flirts dangerously close to Starbucks territory in some of the less inspired moments. But for “I Don’t Want to Be a Soldier” and “Isn’t It a Pity,” it’s definitely worth checking out.

One last note: the timing of an anti-war album in 2005 would seem to be too little, too late. But part of the favor done by this album is to remind us that war is both human and all too omnipresent. What might have seemed trite, if timely, in 2003 feels a bit more universal in 2005. And sadly the album’s message is even more relevant two years later.

You can read more about the album, listen to the tracks, and buy it from the Junkies’ site. Also see the Blogcritics interview about the album with Michael Timmins by the fine folks at Earvolution.

(Also posted at Blogcritics.)

massDeleteManila: AppleScript for mass spam deletion

After the carpal tunnel moment earlier today, I decided to look on the bright side of spam. I updated my hoary old ManilaHandler AppleScript to add support for the Manila.message.delete method (and at the same time bundled the support script SOAPXMLRPCHandler into the body of the script). And I wrote a simple AppleScript, massDeleteManila, that takes a comma delimited list of message IDs and deletes them.

The UI isn’t elegant. You need to type or paste a comma delimited list into a dialog box. Plus no progress bar. But it works, and it is a lot faster than deleting spam through the web UI.

My suggested workflow for using this on your own Manila blog:

  1. Copy and paste the table for your discussion group topic listing page showing the spam messages into Excel.
  2. Copy just the message IDs and paste them into BBEdit (or another word processor).
  3. Search and replace: replace paragraphs with commas.
  4. Run the massDeleteManila script and paste the comma-delimited list of message IDs into the first dialog box.
  5. If you haven’t filled out your blog URL yet, type it in, along with your username and password.
  6. The script runs silently until all the messages have been deleted.

The massDeleteManila script is available for download. I provide it so that other Manila users, such as the Berkman bloggers, can benefit. Please use it carefully—there’s no easy way to undelete messages in Manila, and I cannot provide support if you accidentally delete important content. Note that you may need Tiger to run the script—I haven’t been able to test it under Panther.

Wrapping up the HVAC work

Tomorrow marks the beginning of the final phase of our major surgery on our house’s respiratory system. Having installed a fully functional two-zone cooling system, our contractor team will be installing hot-water coils in the blowers, adding a new gas-fired boiler, and removing the radiators and the oil-burning boiler from the house.

To prepare, I did one last bit of ceiling demolition in the workshop/mechanical room (which now hosts my workbench on one wall and the downstairs AC system on the other), and installed plywood panels over the cement wall of the basement for the new boiler. The Viessmann boiler is a wall-mounted unit, and it will sit on the same wall as the media wiring box on the opposite side of the room from the blower. Pictures forthcoming once the work is finished.

This, needless to say, was another major cause of arm pain. Nothing like swinging a crowbar (plus a hammer and chisel to mark the line in the plaster, plus the drill for the concrete anchors to secure the panels) to really get the forearms screaming.

Oy. ow. Spam hurts

I think that carpal tunnel may be rearing its ugly head here. I’m about two-thirds done deleting the comment spam and my arm is killing me.

The worst part is, I’m finding some previously unnoticed trackback spam too. The worst: a post from last year that had somehow accumulated 116 spam trackback pings.

Things that Manila needs to better manage comment and trackback spam:

  1. Email notification for Trackback pings
  2. “Delete All” on comment and trackback pages
  3. A way to delete multiple messages in the discussion group without opening them one by one

There are other things that could be improved, I’m sure, but I hurt too much to think about them right now.

Beach. Beached.

We spent a great day on Cape Cod. The wonderful day was almost enough to make up for the nasty surprise waiting when I got home. I had almost 300 comment spam messages. All from the same person, left over the course of the day on messages all through my blog. It’ll take me hours to sort them out.

I’ve had enough of this crap. I’m removing the comment links from my posts until I get this sorted out. Until I do, you can create a login on the site the old fashioned way (see the link in the right navigation) and use the Discuss links. I’m sorry to inconvenience everyone, but unfortunately if people insist on pissing in the pool, I eventually have to make everyone get out so I can clean it.

New machine setup joys

I seem to be averaging 0.8 laptops per month at this firm, not that I’m complaining. The new machine finally has enough RAM and processor power to run both our OEM’d applications and our core technology servers without breaking a sweat. Of course, there were more than a few minor things to be done in transferring everything over.

The one thing I always seem to forget is to install IIS on a new machine before upgrading to the new version of the .NET Framework. If IIS is installed when the new version of the framework is loaded, it can register ASP.NET automatically. If IIS is not installed, setting up ASP.NET is a manual process.

It’s easy enough to do, fortunately: just navigate to %system directory%Microsoft.NETFrameworkv.1.1.4322 (or whatever) and run aspnet_regiis.bat. And bounce IIS for good measure. Maybe now that I’ve written it down I won’t forget next time…

The shoe! the shoe!

It’s interesting when your hobbies cross with family memories. I followed a sidebar link at Houseblogs.net to discover an old family friend in a list of odd-shaped houses and other dwellings: the Shoe House in York, PA.

Driving up from Bad News, VA to my grandparents in Lancaster County, we would cut through York on Rt. 30 and would always pass The Shoe, as we knew it. We never stopped, but it was always a good sign that our six hour journey was nearing its end.

Additional information on the Shoe House and its colorful builder at an alarmingly familiarly named site.

Phone shuffle time

sony ericsson s710a cell phone

We’ve been back in the Boston area just short of a year, so it’s probably time for me to get a cell number with a 781 area code.

Actually, the move is precipitated by increasingly flaky performance from my once-trusty Nokia 3650. The phone has never had great reception at our house, and now it’s not answering some calls and dropping others. Time to move on.

I did my research and decided to make a few changes. First, after looking at the available models, I decided against getting another Nokia right now. I like the Symbian platform, but frankly I’m not using it. The only apps that I run on this phone are available on other platforms too. And Nokia has really fallen behind in terms of phone design.

I realized how far behind Nokia has fallen when I looked at phones from LG, Samsung, and even Sony Ericsson. I had once sworn never to get another Ericsson, but the S710a changed my mind. This is a slick little phone, and despite its association with Star Wars Episode III seems to provide some serious features, including a 1.3 megapixel camera (with a lens cover!) and built in Bluetooth. Plus that screen… and of course the EDGE network stuff. Compared to it, the runner up, the Nokia 6820, just didn’t look good.

Second, I decided to buy the phone, and my new service plan, from Amazon. Over the last few years I’ve grown to realize that there is nothing magical about the activation service that the cell phone dealer provides, and a look at the activation instructions provided for Cingular phones confirms that. So I bought a new plan with the phone and reaped the relatively massive discounts that came with it, and I’ll cancel the old service when the new phone arrives. I don’t know why I thought that would be hard. (Though maybe I should wait until the whole thing is done before making that assessment.)

It will be nice to have a cell phone that is a little smaller, and I won’t miss the circular keypad.

Peer review process artifacts

High time, I think, that I started a dedicated news item department for software development. For one thing, I’m increasingly thinking about software processes as we move further along the planning for our next release. For another, I tend to think about and comment on these things a lot already, in departments like Internet, and I’m too categorical a thinker to be happy with that grab-bag category.

So to kick it off, a link to a site that’s been in a tab of my browser for weeks: Goodies for Peer Reviews from Process Impact. This is a set of documents, provided as shareware, that includes both sample artifacts and a strawman process. Unfortunately, the process is so well defined as to be almost useless in a small firm, but at least it provides good food for thought as well as showing some considerations that may need to be managed for larger teams.