Category: Stream of Consciousness

Halloween '08, Part 1: My Trip to Flagstaff

I went to Flagstaff yesterday, to see my old Rocky Horror cast perform. There are fewer people I know there every year.

If the needle is to be believed, I pulled off a 320-mile round-trip on 3/4 of a 14-gallon tank of gas, meaning I averaged around 30 MPG, going 80 on the highway for most of the trip. I do appreciate my Cavalier.

The trip up was reasonably quick. There were a couple of points where traffic slowed to a crawl, and one of them was on the hill. If you've ever taken the 17 north through Arizona you know the one I'm talking about -- that bastard hill where you can floor it and still not hit the speed limit, and where it's a pretty good idea to cut off the AC so as not to overheat your engine. That hill. Traffic was stop-and-go there, and, just my luck, for the past sixty miles I'd had to pee but figured I could wait until Cordes Junction. (Sunset Point is right at the top of the hill, but it's currently closed; Cordes is another 15 miles.)

I met my old friend and castmate Tami King, and she convinced me to go to both shows, the 8 PM and the midnight. I don't usually do that, but she told me 8 was a Hell Night (one where they shuffle the actors into different roles) and I had to see it. She was right: Jason totally nailing Columbia's tap part was worth the price of admission all by itself.

I think the biggest lesson to come out of Halloween was that chicks love Dr. Horrible. I wore a Dr. Horrible costume and wandered around the NAU campus, and one woman squealed and clapped and took my picture and another ran up and hugged me. I think I may reuse the costume next year.

(Dudes liked it too. At least two did the evil laugh -- one while driving past in a car, so apparently I was noticeable from a moving vehicle. And I had a conversation with a guy dressed like Einstein, or possibly Dr. Wily, about joining the Evil League of Evil.)

There were some pretty cool Halloween costumes at the midnight Rocky show, too; I saw the Monarch and Quailman. Also, there was a guy dressed like a hippie, except I don't think it was a Halloween costume; judging by the smell he hadn't changed his clothes or used a shower in several days. I moved to the other end of the theatre just to get away from the hippie stank, only to have him wander over to where I'd gone several minutes later, sit a few rows behind me, then on the floor in front of me, and finally right next to me. The people behind me were convinced he was doing it on purpose, but I got the impression he was stoned out of his mind and had no idea what was going on and was just sitting down next to random people. As the theatre filled up, I pretended to know some people who walked in and sat down next to them, where there were no open seats nearby.

I stayed at the Super 8 off the 66, near the Barnes and Noble. Knowing it would be a late night, I asked if I could check out later than the usual 11 o'clock; the lady behind the counter said I could check out as late as noon.

I woke up at 8 AM to the sound of a very loud engine running. In hindsight it was probably a bus from the nearby Greyhound station, but in my half-asleep stupor I managed to convince myself I'd parked somewhere I shouldn't have and was about to be towed. I put my pants on and snuck a quick look out the door, which proved this was not the case, but by then I was paranoid and my heart was racing and it took me probably 40 minutes to get back to sleep. And I didn't sleep very well after that, either.

Housekeeping banged on my door around 10:30. I struggled to get out of bed and back into my pants to answer and ask for more time to sleep. The housekeeper opened the door before I had completed my task and got a good look at my bare ass before fleeing.

I went back to bed; the phone rang at 11 to tell me I had to get out. I asked if I could have more time and the lady said no. So I got dressed, packed up my belongings, and threw them in the car, then wandered over to the office and explained that there had apparently been a miscommunication because I'd been told I could have until noon. The woman behind the counter was apologetic and said nobody had said anything to her about it; I asked if I could have twenty minutes to grab a shower before I left. She said that was all right. So I did that, and I think I may have left a sock there.

On the plus side, I didn't have to take time to shave, as starting today I am preparing my mustache for Brad's annual mustache and sweater party. (My plan is to start with a full beard and shave it down to something ridiculous on the day of the party. However, if I have any job interviews in the next few weeks, I'll probably have to shave it down to a goatee so I look presentable, and shave that down to a Zappa 'stache on party day.)

The ride down was much more stressful than the ride up. No major bottlenecks, but the road was a lot more crowded and people kept riding my ass. Look, I'll happily move over to the slow lane if I find I'm struggling to stay above 65, but if I'm doing 80 and that's not fast enough for you, you can go to hell and take your giant pickup with you.

(Also, the hill that is such a bastard on the way up is more of a Super Fun Happy Slide on the way down. But that's obviously stressful in a completely different way.)

Today my legs are sore. I'm not used to circling the entire NAU campus in knee-high boots.

What "Hacker" Means to Me

Recently, I made some comments on the unfortunate change in popular usage of the word "hacker", from a positive term for a skilled programmer, to a negative term for a skilled programmer, to a negative term for someone who can figure out Sarah Palin's zip code.

I like to think of myself as a hacker in the original, positive sense, and I have a story about what that means.

Ten years ago, I upgraded my OS to Windows 98. Unfortunately, during the upgrade my hard drive, which had been compressed using DriveSpace, one of the worst pieces of software ever, was corrupted.

Now, I'll grant I'm a pack rat, but there wasn't much of sentimental value on there. There was, however, the most recent installment of KateStory, Book IX. It turned out Steve had a backup, but it was incomplete.

That gnawed at me for years. I kept the hard drive and never wiped it, and every now and again I'd hook it up and see if I could find a way to recover the data. I could never get it to mount. My instinct was that I shouldn't be working with the physical drive anyway, that I should copy the data from it to an image so I could make additional copies and freely mess with them without worrying about losing the original data. But none of the disk-imaging tools I could find would image a disk that wouldn't mount.

By the summer of 2004, I was familiar enough with Linux to know that dd was the tool I wanted, that it would make a bit-for-bit copy of the data on a device regardless of whether it could make any sense of it. I copied the drive to a file and went to take a look at what I could do with it.

File recovery software pulled up some images and some old E-Mails, but not the ones I wanted. In fact, searching the raw hex, I found the text "Subject: Re: KateStory IX: Third Anni" followed by gibberish; the data literally went from plain text to incomprehensible compressed bytes in the middle of the subject line I was looking for. I abandoned the project for a few months.

As the fall rolled around and the KateStory's tenth anniversary approached, I got to thinking about it again. I looked up information on how to recover DriveSpace volumes, and happened upon Dean Trower's DriveSpace 3 Disaster Recovery Kit. Since it required DriveSpace to run, and since DriveSpace won't run on modern versions of Windows, I set up VMWare on my computer and installed Windows 98 on it. My memory of what I tried then is fuzzy; I'm not sure what I did wrong but I still didn't recover the data.

It seems like I tried a couple more things over the years that followed. I think there was a period where I thought maybe the compression I couldn't get past wasn't DriveSpace's but Netscape's. (In retrospect, I believe Netscape Mail's "compress folders" option didn't actually compress text, it just deleted the text of E-Mails that had been deleted from the mailbox but not removed from the mail files.) I definitely remember at least one occasion where I dumped the entire 545MB hard drive image into a Thunderbird folder -- now, whether or not I qualify as a hacker, I think we can all agree that qualifies as a hack. When it didn't work under Thunderbird, I found old copies of Netscape 3 and 4 and tried it there; that didn't work either.

About a month ago, with KateStory XVII beginning, the anniversary approaching once more, and my going back through Books XIII-XVI to put them on this site, I got the urge to take another crack at IX. I did what I'd done before: set up VMWare, set up Windows 98, and got a copy of the Disaster Recovery Kit.

Without getting into too much detail, a DriveSpace "compressed drive" is actually a single file stored on a physical hard drive, then mounted as a virtual drive. As I said, I couldn't mount the drive. The docs for Trower's program mentioned creating an empty DriveSpace volume and looking at its file header; I got the idea from there to look at the header bytes on a fresh file and see where I could find them in my disk image. I found them -- the beginning of the compressed file -- and deleted everything prior to them on the image. (It bears noting that at this point I had numerous backups of the image and wasn't hacking up my only copy.)

Following the advice in Trower's Readme, I started with the simplest solution: copy the compressed file to a host drive and see if Windows mounts it. He cautioned that it might not work and Windows's attempt to "fix" the corrupted data could hose it; he was right. I was thrilled to see the filenames in the root directory show up, but I couldn't access the data in any of them.

On to step two: I tried using Trower's decmprss program. I tried it several times and discovered that it kept outputting empty files; they were the same size as my image but made up entirely of zeroes.

There was a line in the Readme: "DCMPRESS ought to work under Windows, but nevertheless I recommend running it in MS-DOS mode." All right. I did a Shut Down/Restart in MS-DOS Mode, but Windows 98 and VMWare weren't quite playing nice; any time I did that DOS would run for a minute or two and then freeze up and require a simulated hard reset.

So I went back to Windows, and checked to see why decmprss was outputting empty files. I started by trying it on a new compressed image that I knew didn't contain any corrupt data. I got the same result, proving that it wasn't just a problem reading my corrupt image.

Trower's toolkit included the source code, so I jumped into it to see if I could find out what was wrong. For the first time in years I found myself coding in Pascal -- coincidentally the same language Dr. Wily teaches at Prescott High School in KateStory IX. I didn't do anything particularly clever, just added some traces to see where the problem was occurring. I confirmed that the problem lay not in the Pascal portion of the code, but in the x86 assembler.

All right, I thought, my guess is that Windows 98 doesn't like the direct system calls that the assembler portion of the code is making. So that takes us back to trying to run it under DOS -- and if that doesn't work, the only thing left to try is to learn x86 assembler and pore through the DriveSpace API.

Booting to DOS from Win98 shutdown still didn't work, but it turned out that picking it from the boot menu worked just fine -- once I went into OSX's keyboard settings and disabled F8 for pulling up Spaces so I could use it in VMWare.

That worked, and generated a file that contained KateStory chapters that, I could confirm, were not in the copy I had.

That would be where the rest of Trower's toolkit came in -- reassembling files that had been partially compressed -- but I was confident that KateStory IX had been entirely compressed. So now it was time for my Thunderbird hack.

So I copied the entire, 1GB+ uncompressed image into Thunderbird's mail folders. Success -- Thunderbird correctly parsed out all the files that were E-Mails. I sorted them out, exported the ones that had "KateStory IX" in the sub line, and copied them out of the Win98 VM into my "real" system. From there I went through them all, cut out the stuff that was redundant or off-topic (which was most of it), and lo: today, this fourteenth anniversary of the original KateStory and eleventh anniversary of this installment, I have KateStory IX in its entirety.

So, back to my initial point: what does "hacker" mean to me? Well, eleven years ago my friends and I wrote a goofy story. Ten years ago, I lost it. And over the intervening years, I used my skill and my determination to get it back. (A friend once told me that when I want something I go after it like a pit bull, I don't let go. Comparisons to pit bulls may be the only thing Sarah Palin and I have in common.) I'm not some scary terrorist stealing your credit card or breaking into the Pentagon, I'm a guy who used his skill to recover a lost piece of his childhood.

Of course, I'm sure there are those who will say this doesn't make me a hacker. And maybe they're right. In the final analysis, all I did was use the dd command, set up a virtual machine, install Windows 98, do some very cursory hex editing, boot to DOS, use someone else's recovery tools, and copy a giant file into Thunderbird's mail folders. When all's said and done, I only wrote a few lines of code, and all they wound up doing was confirming what the Readme had already told me. So maybe that's not enough to qualify me as a hacker.

But you know what? If that's not enough to qualify as hacking, then plugging Sarah Palin's zip code into a password hint field sure as shit isn't.

Devaluing Language

The news media have been misusing the term "hacker" for at least the past two and a half decades -- to the point that their definition has become the accepted one, and a formerly positive term has developed a terrible stigma. But apparently the past 25 years of shoddy "journalism" on the subject were just not sloppy enough, because now they can't even adhere to their own stupid and wrong definition of the word -- as evidenced by a million articles currently claiming that Sarah Palin's E-Mail was hacked.

By all accounts, a scammer gained access to Sarah Palin's account by using the "reset password" feature -- and, allegedly, the secret question she had used as the key to resetting her password was her zip code.

Let me be absolutely clear on this: Knowing how to use a phone book does not make you a hacker. If you think it does, shut up, because you are stupid.

"Hacker" used to be a positive term. And then, it became a negative term that at least implied some level of skill. Now, it apparently means anyone unscrupulous who has at some point been in the same room as a computer.

Hell, when our Internet connection goes out, I call the cable company and tell them I'm my roommate, because his name's on the cable bill and they won't talk to me if I tell them the truth. Apparently that qualifies as "hacking" now.

Love and Rockets: New Stories #1

So, people on the messageboard have recently been prodding me about the fact that there are threads there that consist largely of me posting and nobody replying, yet meanwhile I have let my blog languish since February. It is a fair point, and so I'm going to start putting my posts about things nobody else apparently wants to talk about up here instead of on the boards.

Sadly, Love and Rockets seems to be one of those things, and that's a shame -- anything involving Skrulls or written by Mark Millar provokes lively discussion, yet when I bring up one of the seminal series in comics history (and, for my money, a fantastic piece of American literature)? Nada.

So this week marked the debut of Love and Rockets: New Stories, the third volume of the series and a new format -- a beefy 100-page annual. I suspect that the reason they titled it New Stories instead of simply Volume 3 is that, at a glance, it looks like a trade; they want to emphasize that it is not, in fact, a collection of old stuff.

The presentation is 7 short Gilbert stories (one of which is written by Mario) bookended by a Jaime story in two 24-page installments.

Jaime's story is set, loosely, in Locas continuity -- it features Penny Century and Xo, and Maggie appears briefly -- but it doesn't fit with the series' usual realistic themes; it's a superhero story. It recalls the early Maggie the Mechanic stories, where dinosaurs and robots appeared as casual, everyday parts of life, and Love and Rockets was actually a fairly accurate description of what you were likely to see in the book.

That aside, needless to say, it's not everday superhero fare. There's plenty of Kirby love to go around, but this is still a Love and Rockets story -- it's about family issues, old friends reuniting, and strong women.

That element of the familiar pervades Gilbert's stories, too, but he abandons his established world -- there's no Palomar here, nor even any of its tangentially related characters like Venus or Fritz. They're also short -- Jaime devotes 48 pages to a single story, while Beto's longest is 16.

Papa, The New Adventures of Duke and Sammy, and Victory Dance form a trilogy of sorts, increasingly surreal as they go. Mario's story, Chiro El Indio, is not so much surreal as whimsical, and has a certain 1920's vibe to it. Never Say Never is a funny animal story about luck and sharing the wealth, while the aptly-named ? is a thick-lined, surreal pictures-only story that recalls Owly or Frank.

Beto's stories show a good deal of stylistic range -- I'm not an artist and I'm likely to stumble in trying to describe what he does with lines and shading, but each story is visually distinct.

Anyway. Love and Rockets. One of the all-time greats, and I love that it's still being published -- even if we only get one a year now.

Looking forward to Beto's story in this year's Treehouse of Horror comic.

Playing: Just finished Mass Effect for the second time; working my way through various Mega Man titles in preparation for 9.

Reading: Our Dumb World, in-between various comics. The local Atomic Comics had a 20% off sale on Labor Day and I picked up a stack; so far I've read Astonishing X-Men vol 4: Unstoppable and Batman: Gotham by Gaslight.

Lessons Learned from the Arizona Strong Beer Festival, 2008

  1. Just because the event has "strong" in the name does not mean you need to try every single barley wine you see.
  2. Even though $4 for a bowl of noodles is highway robbery after charging $40 for admission, just pay it. It doesn't matter how big a breakfast you had, you're going to need to eat something.
  3. When you finally do put something in your stomach, the chef-hot Thai leftovers in your refrigerator are not a good topper to a day's drinking.

That said, I had a great time, ran into three people I hadn't seen since college (and, despite all I'd had to drink, was still tactful enough not to ask one of them if he'd taken working for Rick Renzi off his resumé yet), and, while there were a few hours of discomfort later that evening, I managed to wake up the next morning fresh as a daisy. Take your vitamins and drink plenty of water, kids.

I am told that the next one we're going to has weaker beer, smaller glasses, and free food, which should stack the deck a little better in my favor. Looking forward to it.

I Want to Believe

This evening, as I was driving home from Phoenix, NPR was playing Dr. King's Why I Oppose the War In Vietnam speech. I got distracted and missed my exit. That may not have been causal -- I don't usually come that way and have missed that exit before -- but it was the first time I'd heard the audio and it certainly had my attention.

Kudos to NPR for acknowledging King's more controversial later years -- every year at this time, we see the usual round of King retrospectives, and too often they skip from I Have a Dream to the assassination, glossing over his outspoken opposition to the war and his focus on economic inequality.

I also just read Barack Obama's speech from the Ebenezer Baptist Church, and it reminded me why he struck such a chord in '04. The man gives a damn fine speech, and today he delivered one worthy of being spoken from Dr. King's own pulpit.

But I am a cynic.

Obama says, "The Scripture tells us that we are judged not just by word, but by deed." Very well. "We have scorned our gay brothers and sisters instead of embracing them" are some very pretty words. But touring with the vehemently anti-gay Donnie McClurkin was a not-so-pretty deed. And his backpedaling explanation that McClurkin isn't anti-gay but only wants to cure "unhappy gays" is not only political weaselry, it's also the plot of X-Men 3.

"It is not enough to decry the disparities of health care and yet allow the insurance companies and the drug companies to block much-needed reforms" -- those are pretty words too. Words which lead me to wonder why Obama wants the insurance companies and the drug companies to help him write his healthcare plan.

Obama says a lot of pretty -- hell, downright inspiring -- things. But in 2006 he voted for a non-binding withdrawal plan for the Iraq War over Kerry and Feingold's bill to set a date. In 2005 he voted to renew the PATRIOT Act. Judged not just by word but by deed indeed, Senator.

Two years ago The Boondocks produced one of the finest half-hours of television I have ever seen, an episode titled "Return of the King" which explored the premise of Dr. King waking up from a 30-year coma in the modern era. At one point, King asks, "What happened, Huey? What happened to our people?" Huey responds, hesitantly, "I think...everyone was waiting for Martin Luther King to come back."

And that's the tragedy of the modern civil rights movement: for forty years, America has been waiting for Martin Luther King to come back. (It's also the tragedy of the current season of Boondocks, which has descended from this Peabody-winning meditation on our culture to jokes about movie ticket prices, and whose Katrina episode centered around Granddad trying to get rid of his mooching relatives, but that's a tangent.)

And for a nation and a movement so desperate to see Martin Luther King come back, it can be very tempting to mistake Barack Obama for him. He is an inspiring orator, and if he becomes President it will be the most significant step for racial equality since the Civil Rights Act of 1964.

But Obama is not Martin Luther King. I seldom find myself in the position of defending Hillary Clinton, but she was right when she said, "Dr. Martin Luther King Jr. led a movement. He was gassed. He was beaten. He was jailed. And he gave a speech that was one of the most beautifully, profoundly important speeches ever written in America, the I Have a Dream speech." Obama, meanwhile, has sat quietly on the Senate floor and taken safe positions on controversial issues rather than risk his reputation for what he believes is right. (Clinton has too, of course -- even moreso, I would argue -- but that doesn't make the King/Obama contrast false.)

I also think Clinton has been attacked unfairly for her remark that it took LBJ to sign the Civil Rights Act. She wasn't impugning Dr. King's legacy, she was merely recognizing President Johnson's role -- and I don't think any rational person could argue that, had Richard Nixon been President in 1964, the act still would have passed.

All this to say...I hate politics. There are moments when Barack Obama's words inspire me, when I think of how he could be a great leader, how he could restore America's position in the world and, more, how he could bring us closer than ever to recognizing those self-evident truths that Jefferson mentioned back in 1776. I hear him speak of the continuing struggles for equality, not just racial but also sexual and economic, and I want to see a leader who can speak to the nation's conscience and make those dreams a reality.

But in the end, all available data show that he is just another politician. I may well mark his name on my ballot two weeks from now, but I fear that too will be an exercise in cynicism -- if I vote for him, it will not be because I trust him, but because I mistrust him less than I do Clinton.

I think it's hard to be an optimist in America in this day and age. Perhaps incremental improvement is all we can hope for. I can't say I think that's enough...but I guess I'll take it.


You've probably noticed the site looks different.

Or, if you haven't because you're reading this via RSS, you've probably noticed you just got ten duplicate entries in your reader.

That's because I just migrated my backend over to WordPress.

As I alluded in a recent post (and yes, I update so seldom that three months ago qualifies as "recent"), b2evolution reached a point where it made even the simplest tasks a chore. A quick rundown:

  • As noted before, it refused "id" and "name" attributes in <a> tags. In other words, it would not allow me to use anchor tags as anchors.
  • Its error messages were hideous. "Invalid URL" may be useful information in a post that has as many as three links in it, but when you have fifty, it's the coding equivalent of punching me in the gut and then pointing and laughing. And for those of you who have not yet taken a 100-level programming course, it bears noting here that telling me which URL was causing a problem would take maybe twenty characters of additional code.
  • Not only wouldn't it tell me which URL was a problem, it wouldn't tell me why. I had to poke through a gigantic list of blocked URLs before I discovered that b2evolution had for some reason automatically blacklisted all sites.
  • Okay, this is the best one. You think blocking is bad? Check this out. In the same post, I linked to a rather lengthy driver URL -- go ahead and mouse over that link and see what I mean -- and b2evolution rejected it.
    See anything wrong with it? No? Neither did I. It took me about an hour to figure out what was happening. Here's the problem:
    The link contains the string "&ProductID". See where I'm going yet? No, you probably don't; even if you know that the HTML code for an ampersand is "&amp;" it probably hasn't hit you what happened there.
    So okay, here's what happened: b2evolution saw the "&Product" in that link, expanded it to "&amp;Product", and then, on a second pass, turned the ;P into a smiley.
    Hang on, it gets better: there is no way to disable smileys in the b2evolution admin control panel; you have to hack the PHP manually.
    Hang on, it gets even better: there actually is a checkbox in the control panel to allow you to disable smileys...and it is grayed out by default. Someone went to the trouble of actually coding up an easy fix...just to make it impossible to use.

In short, b2evolution was like everything my old web host ever gave me: at first, it was a generous gift and gave me an outlet to share my thoughts with the world, but over a period of years it became less and less bearable up until it reached a point where I simply couldn't go about my daily business anymore without it making my life unpleasant.

Actually, catty remarks about Internet drama aside, this is a coincidence -- I started this overhaul several days before Sharkey decided to pull up stakes. However, it's a happy coincidence, and it's nice to see him carve us out an alternative to Crazytown.

Anyway, on to the technical side, for anyone else who has WordPress questions. On the whole, I think WP is better so far. I absolutely despise "smart" quotes, and it parses text inside <code> tags just as poorly as b2evolution, if not even worse, but fortunately I found two plugins called Unfancy Quote and Preserve Code Formatting which take care of those two problems right out the gate.

I think I've done a pretty good job with the new theme, taking the old look and making a few modest changes to it. (I've finally retired that silly-ass old counter. It is the end of an era.) The CSS is my own, but the PHP code is largely adapted from Sandbox. As such, it's GPL'ed code, so once I'm finished tweaking it I'll put a zip file up just in case anyone wants to eyeball my source.

If there's anyone else trying to migrate old-ass b2evolution (0.9 series) to WordPress, there are a couple different ways to do it. You can convert to Movable Type and import natively (tutorial at Insert Witty Title), which preserves categories but hoses custom slugs, or you can use a conversion PHP script (tutorial at ibrian, though there are a few different versions of the script), which preserves custom slugs but hoses categories. I opted for the latter since it's less of a pain to recreate categories than slugs, but YMMV; if you never used custom slugs and just stuck with the default post titles, I'd say try the former. (There is something in there about how b2evo replaces spaces with underscores and WP replaces them with dashes, but there should be a tool to correct that too.)

Anyway. New blog, new forum. Let me know what you think. Maybe one of these days I'll get up the courage to dust the cobwebs off my Links page.

Playing: Super Mario Galaxy.

Reading: Just finishing Dune.

Security Flaw Found in Door Technology: A Machinist Exclusive

Howdy, folks; it's yer old pal, Crispus T Muzzlewitt!

As you fellers well know, when I ain't writin' fer Salon's Machinist blog, I spend most o' my nights sleepin' on park benches or in boxcars. And as I have so often remarked, it's the good life -- except fer them damnable folk what live in houses. Always yammerin' on about how good they got it. "Hey Crispus," they'll say, "it sure is harder to get rained on with a roof over your head." Or "Hey, bum, you could sure use a shower." Or "Hey there, Mr. Muzzlewitt, it looks like somebody stole your bindle while you were passed out on that park bench."

Smug bastards. I hate them all so very, very much. With their clean clothes and their straight teeth and their "Hey Crispus, you'd probably have a lot fewer headaches in life if you had a bed to sleep in and if you didn't smell like gin and urine."

So it is with no small amount of glee that I announce my recent discovery that houses are actually no more secure than the wide open spaces where I rest these bones. Sit down, young'uns, and let me tell you a tale.

'Tweren't long ago I was approached by the right honorable representative of a local security firm, and he done dropped a bombshell on me: houses don't keep folk out at all!

And my esteemed colleague Battlin' Joe Frickinfrack confirmed he done saw it with his own two eyes: a seedy-lookin' feller walked right up to the front door o' one o' those fancy houses like you see sometimes, and when the owner unlocked the door, let him in, and then wandered off somewheres, why, the seedy-lookin' feller done robbed him blind. So you see, it's just like my bindle -- front doors don't offer you no more protection than a park bench in the moonlight on a mild autumn night.

Another thing: I keep hearin' about folk who keep their valuables in safes, 'cause they think it's safe, on account o' the name maybe. But truth is, safes ain't no safer'n a lady's purse. Sure, you see a lot more purse-snatchin's than safe-crackin's, but that's only 'cause more folk got purses than has safes -- safes just don't make no sense as a target; why crack a safe when it's so much easier to snatch a purse? But it can be done, and easy, too: Battlin' Joe says that there burglar I wuz talkin' 'bout a minute ago also managed to get all the money outta that man's safe, on account o' the man gave him the combination.

I talked with a gentleman from Norton Home Security about this problem, and he said that, rare as it may seem today, it'll be an epidemic in the comin' months, and every homeowner everywhere needs to go right out and buy a Norton Home Security System. He then went on to add that he has absolutely no conflict of interest in makin' that partic'lar recommendation. And shucks, I believed him, but just to be thorough, Salon sent out its star reporter, Judith Miller, an' she confirmed that her source has absolutely nothin' to gain by exaggeratin' the threat posed by this enemy.

So there you have it, you smug sumbitches, with all yer fancy "doors" and "walls" -- now we know the truth. Houses ain't no more secure than parks, 'cause you can unlock the front door and let somebody in; safes ain't no more secure than purses, 'cause you can tell people the combination and then they can crack them, and OSX is just as vulnerable as Windows, on account o' if you allow root access to a suspicious program it can do bad things to yer computer. So wipe them smirks off them damn faces; yer house ain't no safer than my bench nohow.

So that'll do fer now, but I reckon this'll be the first in a three-part series. Next time, I'll talk about how roofs are overrated 'cause rain still gets in if you knock giant holes in them with sledgehammers, and in our final installment, I'll examine how showering and that there underarm deodorant them rich folks use don't do nothin' to make you smell better if'n you rub pig shit all over yer body immediately after.

Thank you, and goodnight.

Hobo names supplied by John Hodgman.

Triple-Booting a Mac Pro

Updated 2007-10-14. Scroll down to where it says "Update 2007-10-14". I'd put a link here, but for some reason b2evolution will not let me use the "id" or "name" attributes; expect a presumably silly and useless "rant" on that subject very, very soon. (Update 2008-01-17: Switching to WordPress fixed the problem.)

So I got that Mac Pro I was talking about earlier. No, I still can't afford the thing, so if you notice me living a life of indentured servitude for the rest of my days, well...I'm Irish. We're used to it.

The bastard about being on the bleeding edge is that there aren't a whole lot of guides to walk you through your setup. For example, I found quite a number of guides on how to multiboot a MacBook Pro with 3 OS's on different partitions of the same drive, but approximately bupkis on how to do it on a Mac Pro with each OS on its own drive.

So, in case anyone winds up Googling for the same information I couldn't quite find, here's how I finally did it. Hopefully this'll make it easier for you than it was for me.

Installation and booting

I can't say for certain, but I think order of drives and order of installation are both important.

After some trial and error, I wound up laying my drives out like this:

Drive 1 is Kubuntu.
Drive 2 is OSX.
Drive 3 is Windows XP x64.

Leastways, that's how they're set up in hardware. For reasons I'm not altogether clear on, they show up in software as Kubuntu on sda, Windows on sdb, and OSX on sdc. Still more curiously, both the Kubuntu drive and the OSX drive are assigned SCSI ID 0,0,0. (Could be some holdover from the old master/slave days? Maybe the drives are on different controllers? Something to do with MBR vs. GPT? Is it because the Kubuntu drive is physically first but the Mac drive boots first? Don't know.)

Order of installation seems to be important too. I say this because my first time through, I installed Kubuntu, it ran fine, and then I installed Windows and Kubuntu wouldn't boot anymore. I'd click on the Linux icon and it would boot the wrong OS. (Actually, it still does; more on that later.) So, as with most things in life, everything was going great until I installed Windows.

But after a day and a half of banging my head against the wall, I finally got all 3 OS's moving by rearranging the drives (see above) and installing Windows first and then Kubuntu. (OSX, of course, was preinstalled.)

Things to keep in mind: since we're talking 64-bit Windows, the Boot Camp program is useless. You can ignore it. It might be useful for resizing your OSX partition since Windows insists, for no reason whatsoever, on writing system files to the first drive. I say "for no reason whatsoever" because you can move those files -- boot.ini , , and ntldr -- to the drive Windows is installed on and it'll run just fine. There's more info at x(perts)64; that guide is specifically for dual-booting XP and Vista, but I found it useful anyway.

(Also, "the first drive" noted above is actually the second drive in my case, which caused a good deal of confusion; as I mentioned earlier, both the Kubuntu drive and the Mac drive show up as 0,0,0.)

It's also worth noting that the much-ballyhooed rEFIt doesn't work for me; I have to hold down Option at startup to get a working boot menu.

That menu gives me the following:
rEFIt, Windows, Windows, Windows
because EFI very helpfully assumes anything that's not Mac is Windows.

The first "Windows" is actually Kubuntu. The second gives me "Error loading operating system". I assume that the first "Windows" is the MBR of the drive and the second is the first partition, which is flagged bootable but doesn't have Grub on it.

The third "Windows" is actually Windows.

Now, rEFIt looks similar -- it offers "Boot Mac OS X from Mac", then "Boot Linux from HD", "Boot Legacy OS from HD", "Boot Windows from Partition 1", not always in that order -- but the last three all open the same OS, either Linux or Windows depending on which I booted more recently.

So I'm stuck with holding Option at boot and selecting the left Windows or the right Windows, but at least it works. I'm hoping future versions of rEFIt fix this problem.


Here's where you can find the necessary 64-bit drivers for Windows:

(Sources: Triple Boot thread on the Apple forums; Airport Driver thread on forums)


Boot issues aside, this is the single most painless Linux installation I have ever experienced. I know there's no dearth of people singing the praises of Ubuntu and how close it is to being ready for desktop use, but I'm afraid I'm going to have to add my own redundant voice to the chorus. It was almost painless.

I still had to install the nVidia drivers by hand -- either get us some free drivers that work or stop being so damn concerned about ideological purity, guys; I need support for my video card, and this would make life pretty rough for the average user. But by my standards as a Linux vet...I didn't even have to touch xorg.conf. Kubuntu, how I love you.

Setting up wireless was another concern, especially when I read there was no native support for the adapter and I'd have to use ndiswrapper. Let me explain something about ndiswrapper: it was a bastard to install under Gentoo, and is responsible for every single kernel panic I've experienced in the past year and a half.

Under Kubuntu, on the other hand, it was over in minutes. And I don't want to jinx it, but it hasn't panicked my kernel yet.

There's a HowTo at Steps 1-3 are outdated now; Feisty comes with a current version of ndiswrapper, so you won't need to update it. As for the bcmwl5.inf file, it's the same one in the Dell package I linked above.

To get wireless to work immediately at boot, you'll also need to set your access point up. In Kubuntu, you do go to K → System Settings → Network Settings, click "Administrator Mode", enter your password, click wlan0, then Configure Interface, and enter the ESSID and WEP key. (DHCP and "Activate when computer starts" should already be set.)

I will note that on one of my reboots wireless didn't start up automatically and I had to run iwconfig myself. I think that's most likely due to signal interference in my apartment, but I can't say for sure at this point.

Sound support was the biggest problem I hit. The ALSA driver for Feisty doesn't support the Mac Pro's audio adapter.

After poking around for awhile, I decided that rather than bother with the individual package, I'd just go ahead and upgrade to Gutsy RC. After all, if you've even read this far, I'm guessing you're somebody who's not afraid of the letters "RC"; I'd advise you just to go with Gutsy from the start. (Course, by the time anybody actually reads this guide, I'm betting Gutsy final will be out.)

So far Gutsy's working just fine for me. (Update 2007-10-14: Except that I can't adjust volume from the keyboard. The bar goes between 0 and 11 but doesn't actually make any change in the volume. This appears to be a known bug in Gutsy at the moment.)

I'll edit this post if anything changes or if I find anything else out -- I have a Bluetooth keyboard and Mighty Mouse that I haven't bothered trying to set up in Kubuntu yet; I intended it more for my media center/emulation rig Mac Mini anyway. But if I get that, or anything else set up, I'll make a note of it here.

Hoping this has been a help to somebody. I don't usually do this, but when I find myself running into problems that aren't well-documented, I figure I may as well document them myself in the hopes that I can make life a little easier for the next guy.

Good luck, next guy.

Reading: Cat's Cradle again, the first in my "My favorite recently-deceased science fiction authors" theme. I think A Wrinkle in Time is probably next.

Update 2007-10-14: Accessing the Mac drive from Kubuntu

It's easy enough to mount an HFS+ volume under Linux (FS type is just "hfsplus" in mount or fstab), but accessing your home directory or mounting with write permissions is a little trickier.

To access your home directory on the Mac volume from Kubuntu, your Mac user account and your Linux user account need to have the same UID. There are a number of ways to do this; the easiest involve simply creating a new user, but I changed the UID on my Mac login to 1000 with no real trouble.

Just go into Applications/Utilites and run NetInfo Manager, click Users, then your username, then scroll down to uid and gid and change them both to 1000 (or whatever your UID is under Linux -- 1000 is, of course, the default number for the first user account).

After that, you'll need to log out and back in, pull up a terminal, do a sudo chown -R <username>:<group> /Users/<username>, and then log out and back in again.

My source on all this is the Gentoo wiki (even though I'm using Kubuntu).

That should give you write access to your home directory on the Mac drive from Linux. To get read access, you'll need to disable journaling.

It occurred to me that I'd like to keep journaling enabled in OSX and only disable it when I want to access the data from Kubuntu. I came up with a relatively simple solution: I wrote a script to enable journaling when OSX boots, and added a line to the shutdown script to disable it.

For the startup script, I created a directory called /Library/StartupItems/EnableJournaling containing a filepair called EnableJournaling and StartupParameters.plist, as follows:


Description = "Enable Journaling";
Provides = ("Journaling");
OrderPreference = "Late";



. /etc/rc.common

# Enables journaling on Mac volume

ConsoleMessage "Enabling journaling on /Volumes/Mac"
diskutil enableJournal /Volumes/Mac
exit 0

(Don't forget to make this file executable.)

(Source: Greg Neagle's blog)

And I modified /etc/rc.shutdown to the following:

# Copyright 1997-2004 Apple Computer, Inc.

. /etc/rc.common

if [ -f /etc/rc.shutdown.local ]; then
sh /etc/rc.shutdown.local

SystemStarter stop

diskutil disableJournal /Volumes/Mac

kill -TERM 1

exit 0

Seems to work all right; I get journaling when I'm running OSX, and I get write access when I'm running Kubuntu. (Update 2007-11-05: It appears rc.shutdown is gone in Leopard. I'll update when I learn more.)

The bad news is that it doesn't work both ways. At present I have Kubuntu installed on a ReiserFS volume, which is unsupported by OSX. I could have made it an ext3 FS instead and installed the ext2 driver for OSX, but, well, if I wanted compatibility over performance, I probably wouldn't have gotten a Mac Pro.

Another Love Letter to Microsoft

Here is what I love about Windows 2000's network configuration.

First of all, if you uninstall a network card -- say, for example, because you are having trouble getting it to work, perhaps trouble that suspiciously coincides with the latest round of Microsoft patches --, and then reinstall that card, you will find that your network settings have defaulted back to DHCP instead of static IP.

So you'll have to re-enter your IP.

If the machine you are currently working on happens to be a Web server that uses 250 different IP's, you will have to re-enter your 250 IP's.

But Thad, you say, that is awesome! How could life possibly get any better?

Well, it may seem difficult, but it does get better.

You can only enter one IP at a time.

And you can't copy and paste.

And no matter how many dozen times you enter the netmask, it will always default to

And and every single time you tell it to add a new IP, it pops the new IP window up right on top of the list of existing IP's. So that if it is, just for the sake of argument, 11:30 at goddamnfuckinghellshitcock night and you are entering 250 different addresses, you have to scroll a bar and then drag a window to see the last one you entered. In the absurdly unlikely event that you somehow have trouble keeping your place under those conditions.

Awesome enough for you?

Yes, I am sure you are saying. Yes, that is just incredibly, unspeakably awesome. There is no possible greater threshold for awesomeness.

Well shut up, you're wrong.

Let's say you make a mistake. Let's say you somehow enter the same IP address twice. I know, there is absolutely no way of that happening under the circumstances, but bear with me in this thought experiment.

Let's say you enter an IP twice. It doesn't like it when you do that.

But does it tell you when you enter the redundant IP? No, that would make too much sense. Does it just delete the redundant IP itself seeing as the two are identical? Of course not. That would be stupid. That would require someone at Microsoft to write an entire extra line of code.

But Thad, you may say, surely they must at least tell you which IP is redundant?

My friend, where's the fun in that? Why tell you when they can instead just make you strain your eyes staring at every single IP you've entered?

Oh, and also, there's no way of sorting them.

They don't pay me enough for this shit.