“Democrats haven’t kicked this many people out of restaurants since the civil rights era.”

— J.R Salzman, on violent screeching mobs

First rule: save all the parts


So, after carefully disassembling major portions of my motorcycle so that I could install BMW’s add-on trip computer, I discovered that the dedicated socket it’s supposed to plug in to isn’t there.

Not in the mood to run out to the store for a splitter, nor to assume that I should split off the cable that powers the heated grips, I called a nearby dealer and scheduled time to chat with the one person there who has experience with this particular part. No doubt he’s the one who originally told me it was a piece of cake to install…

Update: They were overbooked for service, so they’ll install it for me next week.

Update: Sigh. There’s a new data harness for the ’05 bikes, and they didn’t have it in stock. Naturally, this took three hours to discover (partially because BMW hasn’t shipped all the service manuals yet, and they had to play phone tag). It’s now on order, and when it comes in, I can finish up the installation myself. At least I was right about where it was supposed to plug in, although I apparently traced the other end of that cable to the wrong thing. :-)

One for the road


Under the influence of powerful pain-killers (going in for a root canal on Monday), I spent some time this morning preparing a new music mix for an upcoming trip. It consists entirely of songs from the opening and ending credits of anime series, mostly ripped directly from the DVDs with Audio Hijack Pro (with some minor touch-ups done in the free multi-platform audio editor Audacity).

It’s only 52 minutes so far, since I’m deliberately selecting the tv-edited versions that average around 90 seconds. There are a few songs I can’t include because those discs are out on loan, but otherwise it’s a fun mix. Fortunately the person who’ll be locked in the car with me for six hours likes anime. :-)

  • Agent Aika, Silent City (OP)
  • Agent Aika Special Missions Promo
  • All Purpose Cultural Cat Girl Nuku Nuku OVA, Happy Birthday To Me (OP)
  • Angelic Layer, Be My Angel (OP)
  • Daphne in the Brilliant Blue, Asu No Blue Wing (OP)
  • Dirty Pair OVA, By Yourself (OP), Summertime From Autumn (ED)
  • Dirty Pair TV, Ru-Ru-Ru-Russian Roulette (OP)
  • Excel Saga, Love (Loyalty) (OP)
  • Galaxy Angel, Galaxy Bang! Bang! (OP)
  • Green Green, Guri Guri (OP)
  • Hand Maid Mai, Hand Maid De Ne! (ED)
  • Hand Maid May, Jump---Hug Me As Tight As You Can (OP)
  • Happy Lesson, Telescope (OP), Yume no Miyako Tokyo Life (ED)
  • Happy Lesson OVA, (OP)
  • Hyper Police, That's Hypertension!! (OP), Hey Hold Up! (ED)
  • Jubei-Chan, Forever (ED)
  • Kaleido Star, Take It, Shake It (OP)
  • Kiki's Delivery Service, Lipstick Message (OP)
  • Magical Project S, Yume mireba yume mo yume ja nai (OP)
  • Mahoromatic Summer Special, Hiryu Musume Ha! Date Ondo (ED)
  • New Cutey Honey, Cutey Honey (OP)
  • Ninin ga Shinobuden OP & ED
  • Puni Puni Poemy, Puni Puni Densetsu Ppoi (OP)
  • Ranma 1/2 Season 1, Don't Make Me Wild Like You (OP)
  • R.O.D OP
  • Rune Soldier, Twinkle Trick (OP)
  • Steel Angel Kurumi, KissからはじまるMiracle (OP)
  • Super GALS!, A-I-Tsu (OP)
  • Tenjou Tenge, Aishitene Motto (ED)

This is actually a secondary use for Audio Hijack Pro; I bought it primarily so I could record streaming audio from Japanese internet radio stations (such as Radio Japan, Morning Freeway, and MBS Broadband). Having a variety of native speakers discuss different subjects is very handy for language practice, especially since my primary source, anime, isn’t known for its realistic dialogue and proper grammar.

Update: Mostly successful, but I have to redo many of the audio captures, because of a little feature in Apple’s DVD Player that’s on by default: Dolby dynamic range compression. It’s hard to notice with laptop speakers, but with headphones or in the car, it’s quite annoying. Good thing I picked the short versions of the songs…

Update: Ah, that’s better. No more fluctuating volume. While I was at it, I added a few more:

  • Chobits, Let Me Be With You (OP)
  • Cosplay Complex OP
  • Galaxy Fraulein Yuna OP
  • New Cutey Honey, Circle Game (ED)
  • Those Who Hunt Elves, Angel Blue (OP)

Update: A few more.

  • Cosplay Complex, Cosplay Ondo (ED)
  • Re: Cutie Honey OP

Bikini Exterminators


The Sun is apparently trying to become the premiere tabloid for SF fans. How? By putting a Dalek on Page 3.

Local copy of not-safe-for-work picture follows:

more...

Um, how was that again?


"...it offers a nonpartisan analysis of the PR-driven deception that has come to define George W. Bush's presidency..."

Yup, that’s how you describe your new book when you want people to believe it’s (cough) fair and balanced.

If it saves twenty-five lives? Or is it fifteen? Or maybe none?


Okay, this story claims, without providing any of the details, that “safe gun storage” laws cut the teen suicide rates since their adoption in 1989. That is, the news report claims this, while the research paper (published in JAMA) simply says they may have cut suicide rates.

But by how much? First, they mention 300 less suicides between 1989 and 2001 for the 14-17 age group, and then they segue into a discussion of the number of suicides in the 14-20 age group. Sloppy reading on the reporter’s part, or is this a reflection of the actual research? And where are the rates that are mentioned in the headline? All I see are raw numbers.

Looking for real data, I found that the with-gun suicide rate for teens age 14-19 (and for other groups) has been declining for a while, but it peaked in 1994, five years after the “safe storage” laws in question. Interestingly enough, suffocation seems to be taking up the slack, although it’s not enough to stop the overall decline. It is enough to possibly account for the “prevented” with-gun suicides…

Got sleeping pills? Need some?


The iTunes Music Store has put up free audiobooks of the DNC speeches. Knock yourself out.

No, really.

Why I prefer Perl to JavaScript, reason #3154


For amusement, I decided that my next Dashboard gadget should be a tool for looking up characters in KANJIDIC using Jack Halpern’s SKIP system.

SKIP is basically a hash-coding system for ideographs that doesn’t rely on extensive knowledge of how they’re constructed. Once you’ve figured out how to count strokes reliably, you simply break the character into two parts according to one of several patterns, and count the number of strokes in each part. It’s not quite that simple, but almost, and it’s a lot more novice-friendly than traditional lookup methods.

Downside? The simplicity of the system results in a large number of hash collisions (only 584 distinct SKIP codes for the 6,355 characters in KANJIDIC). In the print dictionaries the system was designed for, this is handled by grouping together entries that share the same first part. Conveniently, unicode sorting seems to produce much the same effect, although a program can’t identify the groups without additional information. A simple supplementary index can easily be constructed for the relatively few SKIP codes with an absurd collision count (1-3-8 is the biggest, at 161), so it’s feasible to create a DHTML form that lets you locate any unknown kanji by just selecting from a few pulldown menus.

For various reasons, it just wasn’t a good idea to attempt to parse KANJIDIC directly from JavaScript (among other things, everything is encoded in EUC-JP instead of UTF-8), so I quickly knocked together a Perl script that read the dictionary into a SKIP-indexed data structure, and wrote it back out as a JavaScript array initialization.

Which didn’t work the first time, because, unlike Perl, you can’t have trailing commas in array or object literals. That is, this is illegal:

var skipcode = [
  {
    s1:{
      s1:['儿','八',],
      s2:['小','巛','川',],
      s3:['心','水',],
      s4:['必','旧',],
      s7:['承',],
      s8:['胤',],
      s11:['順',],
    },
  },
];

Do you know how annoying it is to have to insert extra code for “add a comma unless you’re the last item at this level” when you’re pretty-printing a complex data structure? Yes, I’m sure there are all sorts of good reasons why you shouldn’t allow those commas to exist, but gosh-darnit, they’re convenient!

Smash fisks the Democrat platform


so you don’t have to. Great fun.

And, yes, I’m sure the Republican platform is at least as deserving, but this week it should be the Democrat’s turn, especially with the not-quite-front-page news about that suspected al-Qaeda operative sneaking into the US from Mexico.

Hey, didn’t Gray Davis, our man for giving driver’s licenses to illegal aliens, just speak at the Democratic convention?

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