“Are you wobbling on your heels? How high are they?”

"I don't know...two, three inches. You're a guy--- you'd know inches better than I would."

— Melissa Joan Hart, on fashion

"This -- is wrong tool. Never use this."


Today, my life is devoted to cleaning up after an old automated daily backup script that included a line like this:

tar cpf - . | (cd /mount/subdir; tar xpf -)

Guess what happens when /mount/subdir doesn’t exist? “Hey, why are all these files truncated to some multiple of 512 bytes in size? And why are they now owned by root?”

World of Warcraft ganks my DSL modem


[update 8/9: The ActionTec GT704 that I replaced my SpeedStream with has been rock-solid with WoW; I haven’t had a single disconnect since I started using it]

[update 6/21: I scrounged up a different brand of DSL modem, and preliminary testing suggests that this one doesn’t have the same problem. Current working theory is that excessive packet fragmentation is causing the ethernet port on the Speedstream to choke.]

I recently started playing WoW again, after a lapse of several months. I like the game, but I really hate the way it crashes my DSL modem when I turn in quests.

This is not my imagination. Frequently, the act of turning in a quest disconnects me from the Internet, forcing me to power-cycle the modem. It happened five times this morning, as I was running my Orc Warlock through some low-level Crossroads quests. Turn in quest, lose connection, power-cycle modem, log back in, repeat. It’s not the volume of data; I can flood the line with BitTorrent traffic for days, upstream and downstream, without the line going down. I think that since I got the current modem, it’s lost connection maybe once every six weeks.

Except when I play WoW. I’m stumped. And despite the fact that I know I’m not crazy, I can’t think of a way to explain this to SBC tech support that would result in useful support.

[update: more details. I’ve now repeated the crash using the PC version of WoW, and it’s 100% consistent. Turn in a quest, power-cycle the Siemens Speedstream 4100 (running in bridge mode with firmware 1.0.0.53, upgraded from 1.0.0.48 today without fixing the problem). Even the direct web-admin connection goes down.

To my astonishment, SBC tech support believes me. It took a bit of doing, but I managed to get to a second-tier support guy who spoke sysadmin, and we spent half an hour on the phone diagnosing the problem. There is no evidence on his side of the modem crashing and failing to resync, or of other problems on my line. What may in fact be happening is that the uplink port on my switch is crashing, not the DSL modem at all. Connecting directly to the modem and turning in a quest worked once, but I didn’t have any other quests to test further with.]

[update: I’ve been wanting to upgrade to a gigabit switch for a while now, so I did that today, replacing the 10/100 that was connected to the DSL modem. I was able to turn in three quests without a problem, and just as my confidence started rising, the fourth quest crashed the modem. To do more serious testing tomorrow, I’ll have to move the G5 into the same room as the modem, so I can easily try with and without the switch in the loop. I’m coming to believe that it’s simply the LAN port on the modem that’s flaking out, not the software actually crashing. Supporting evidence is the fact that it’s still up enough to detect the disconnection of the phone line and reconnect when I plug it back in.]

English can be so confusing...


I think boingboing put the adjective in the wrong place. Let me fix it for them…

Tomorrow, seven activists in seven cities across the US will picket Apple Stores, handing out information about the dangers of the DRM hidden in Apple's iTunes.

I think my version better carries the flavor of this important event.

more...

Brush calligraphy progress report, Bad Haiku Edition


終わり
でしっぱい
じゃない

Or, in equally fractured English:

Spring Term with the brush,
a ragged line on the page.
"That is not ichi!"

[I think most of the students are feeling the pain, but us southpaws suffer the additional indignity of being forced to confront our limited control over our right hands.]

Outdoor cooking, Bad Haiku Edition


A leftover steak!
Kosher salt, black pepper, and
a really hot fire...
In the hornet nest,
an oppressive heat begins.
Hey, it's my grill, guys.

TextWrangler


I want a better text editor. What I really, really want, I think, is Gnu-Emacs circa 1990, with Unicode support and a fairly basic Cocoa UI. What I’ve got now is the heavily-crufted modern Gnu-Emacs supplied with Mac OS X, running in Terminal.app, and TextEdit.app when I need to type kanji into a plain-text file.

So I’ve been trying out TextWrangler recently, whose virtues include being free and supporting a reasonable subset of Emacs key-bindings. Unfortunately, the default configuration is J-hostile, and a number of settings can’t be changed for the current document, only for future opens, and its many configuration options are “less than logically sorted”.

What don’t I like?

First, the “Documents Drawer” is a really stupid idea, and turning it off involves several checkboxes in different places. What’s it like? Tabbed browsing with invisible tabs; it’s possible to have half a dozen documents open in the same window, with no visual indication that closing that window will close them all, and the default “close” command does in fact close the window rather than a single document within it.

Next, I find the concept of a text editor that needs a “show invisibles” option nearly as repulsive as a “show invisibles” option that doesn’t actually show all of the invisible characters. Specifically, if you select the default Unicode encoding, a BOM character is silently inserted at the beginning of your file. “Show invisibles” won’t tell you; I had to use /usr/bin/od to figure out why my furiganizer was suddenly off by one character.

Configuring it to use the same flavor of Unicode as TextEdit and other standard Mac apps is easy once you find it in the preferences, but fixing damaged text files is a bit more work. TextWrangler won’t show you this invisible BOM character, and /usr/bin/file doesn’t differentiate between Unicode flavors. I’m glad I caught it early, before I had dozens of allegedly-text files with embedded 文字化け. The fix is to do a “save as…”, click the Options button in the dialog box, and select the correct encoding.

Basically, over the course of several days, I discovered that a substantial percentage of the default configuration settings either violated the principle of least surprise or just annoyed the living fuck out of me. I think I’ve got it into a “mostly harmless” state now, but the price was my goodwill; where I used to be lukewarm about the possibility of buying their higher-end editor, BBEdit, now I’m quite cool: what other unpleasant surprises have they got up their sleeves?

By contrast, I’m quite fond of their newest product, Yojimbo, a mostly-free-form information-hoarding utility. It was well worth the price, even with its current quirks and limitations.

Speaking of quirks, my TextWrangler explorations yielded a fun one. One of its many features, shared with BBEdit, is a flexible syntax-coloring scheme for programming languages. Many languages are supported by external modules, but Perl is built in, and their support for it is quite mature.

Unfortunately for anyone writing an external parser, Perl’s syntax evolved over time, and was subjected to some peculiar influences. I admit to doing my part in this, as one of the first people to realize that the arguments to the grep() function were passed by reference, and that this was really cool and deserved to be blessed. I think I was also the first to try modifying $a and $b in a sort function, which was stupid, but made sense at the time. By far the worst, however, from the point of view of clarity, was Perl poetry. All those pesky quotes around string literals were distracting, you see, so they were made optional.

This is still the case, and while religious use of use strict; will protect you from most of them, there are places where unquoted string literals are completely unambiguous, and darn convenient as well. Specifically, when an unquoted string literal appears in list context followed by the syntactic sugar “=>” [ex: (foo => “bar”)], and when it appears in scalar context surrounded by braces [ex: $x{foo}].

TextWrangler and BBEdit are blissfully unaware of these “bareword” string literals, and make no attempt to syntax-color them. I think that’s a reasonable behavior, whether deliberate or accidental, but it has one unpleasant side-effect: interpreting barewords as operators.

Here’s the stripped-down example I sent them, hand-colored to match TextWrangler’s incorrect parsing:

#!/usr/bin/perl

use strict;

my %foo;
$foo{a} = 1;
$foo{x} = 0;

my %bar = (y=>1,z=>1,x=>1);

$foo{y} = f1() + f2() + f3();

sub f1 {return 0}
sub f2 {return 1}

sub f3 {return 2}

Mai-HiME manga note


It doesn’t appear that the Mai-HiME manga has been licensed for the US market yet, despite the expected popularity of the anime. Pity, really, because I’m curious how the usual hack translators would deal with the last page of the first volume. A Strange Cute Girl (one of many) has just entered Our Hero’s dorm room, stripped off her panties, and pushed him to the ground. The volume ends with a full-page panel of her straddling him, speaking the line:

鍵穴開けて下さい

Our Hero seems more shocked than excited by this statement, but it’s understandable, since he’s still discovering just how peculiar his new school (and its girls) are. Unfortunately for him, I’ve seen enough spoilers from the (very different…) anime to know that neither shock nor excitement is the right response to a bold invitation from this girl. “Fleeing in terror with his manhood protected by a sturdy shield” just about covers it.

My other response to this scene was “hey, I just read that, and only had to stop and think about one of the kanji” (鍵, which I haven’t gotten to in my writing practice yet; I know the word, and they provided furigana that made it clear). Okay, the others are extremely common, basic kanji, but the point is that I was reading rather than deciphering.

Con report


I had an epiphany this weekend at KublaCon, sometime before we ran Rory’s usual monstrous Dwarven Forge MasterMaze D&D adventure (this time with added “live” roleplaying).

I do not like cons.

I do not like gamers.

I particularly do not like loud, clueless, obnoxious, asocial, grotesquely obese, unbathed gamers whose greatest ambition in life seems to be saving money on a hotel room by sleeping on a chair in the hallway. Cons are full of people combining at least two of the above characteristics, frequently more.

In truth, I don’t much like people in general. I’d like to use the term “energy vampires”, but it looks like the woo-woo pop psychology cranks have already sucked it dry of meaning. Besides, they seem to think that only some small minority of the population consists of soul-draining monsters, whereas for me, there are very few people who do not eventually wear down my thin veneer of sociability to reveal the cranky bastard within. And I can only recharge when I’m alone.

[our event went surprisingly well, by the way]

[and a lot of cute JAL stewardesses stay in that hotel…]

“Need a clue, take a clue,
 got a clue, leave a clue”