June 2006

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.


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:


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}

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.

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.]

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.


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, upgraded from 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.]

“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?”

How my mind works…

My struggle for Japanese literacy continues, as my kanji writing practice catches up to the new textbook we start on in July. I’ve now practiced 238 of the 302 kanji in the first volume of the text, writing out each one at least 20 times in correct stroke order, along with all of the standard readings (dictionary-style: on-yomi in katakana, kun-yomi in hiragana, to keep up my practice with both). These aren’t the only ones I know, but they’re now the ones I know best.

I’d wanted to be a lot further along by now, but between work and the demands of my other Japanese class (which involves the opaque writing of Daisetz T. Suzuki, the wretched haiku translation of Harold G. Henderson, and my ongoing struggle with brush calligraphy), not to mention the physical pain of writing lots of complex characters for the first time, progress has been slow.

[side note: the top review of Henderson’s book at Amazon says that his translations “push the envelope of what good translation of poetry of all kinds should be”. I agree, but not in a good way. Not only does he impose his interpretation on the work, but his need to make haiku rhyme adds words and concepts not present in the Japanese text (which he at least provides in romanized form with a usually-accurate literal translation as a footnote, unlike most English-language haiku books).]

One of the things that makes writing practice so important to kanji literacy is the relatively small number of elements that are combined to create thousands of distinct characters. The authors of our textbook assume that they can simply show you a bunch of vocabulary words repeatedly with furigana, and somehow you will learn to recognize them as something other than blob-blob, blob-blob-blob, blob.

Sorry to burst their bubble, but without any knowledge of structure, strings of kanji just look like an explosion in a serif factory, especially when printed small in a Mincho typeface, as opposed to the Kyōkasho fonts used in actual Japanese schools.

Not all of the graphical elements in a kanji encode meaning, or even pronunciation, but some do, and even false associations can be extremely useful for composing and decomposing a character. There are a number of books that actively encourage the student to create such associations.

I’m not using any of those. A while back, I gave up on learning kanji in any sensible order and extracted them from our textbook, lesson by lesson. Until I have at least a thousand under my belt, I can’t really read Japanese text that’s not artificially constructed for students, and I have to read our textbook anyway, so that’s the most useful order to learn them in.

I am creating mental associations, however, and today I caught myself making one that was downright silly, for : “it’s the grass-headed robot from kan, next to the bottom-right corner of ”. That is:


Oddly enough, this will improve my memory of all three.


If Brian and Lion are right, the worst mistake Disney has made with this movie is creating a trailer that makes it look like a remake of Doc Hollywood.

Okay, I’m stumped

The Internet has failed me. Or, at least, my search-engine skills have failed to turn up the nugget of information I’m currently interested in.

Wednesday afternoon, in preparation for my upcoming vacation in Japan, I applied for a passport. The man at the downtown post office who took my picture and processed my application was really cool, and when he found out where I was going, said “man, I haven’t been to Japan since 1964, as part of the Olympic volleyball team”.

I didn’t hear his name clearly at the time, and I was in a rush to get to a doctor’s appointment, so I didn’t hang around and talk more with this former Olympian.

But I’m curious. And my web search has failed to answer the question “who was on the US Men’s Olympic Volleyball Team in 1964?”. I might have to go to a library and look it up in a book made out of dead trees.

Or call the passport office and just ask him. That’d work, too.

World Cups

I just admire how thoroughly the photographer covered this little World Cup promotional tie-in. Two girls, two bikinis, two DVDs, seventy pictures. Yeah, that sounds about right.

Bad network! No donut!

The good news is that the folks at via.net rebooted something and got the ping times down from 500ms to 80ms. The bad news is that I’m still seeing 30% packet loss to every machine in their data center, so there’s more work to be done.

[update: ah, 17ms, no packet loss. much better]

[update: apparently there was a DDOS attack on one of the other servers they host.]

Dear Adobe,

Great job getting Flash Player 9 out the door, after absorbing Macromedia. Pity it doesn’t install correctly on a Mac.

I ran the installer, and it launched Safari when it finished, taking me to your “gee, isn’t Flash cool?” page. Which didn’t load, because I didn’t have Flash. So I ran the installer again. And again. Still no Flash.

So I deleted the old copy from /Library/Internet Plug-Ins, and ran the installer again. It failed, because it didn’t have permission to write to that directory. Yes, it’s true; when you want to create files that require administrative privileges, your installer actually has to request administrative privileges. It can’t just hope that the user is logged in as root, or has foolishly made that directory world-writable.

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