September 2012

Reasons to watch Sword Art Online

…apart from the fact that the show is actually pretty good, that is. First, the animation team from Mouretsu Pirates. Second, the voices of:

  • Eris
  • Ichika
  • Show
  • Manami/Gruelle
  • San-daime
  • and even Muttley

And the show’s actually pretty good, just in case I failed to mention that. Even the episodes without Haruka Tomatsu are decent. It helps to be familiar with MMO tropes and player stereotypes, and of course there’s a certain WSoD required to accept not just a virtual-reality MMO with real-life death, but, more significantly, an online service that manages to stay up for two years with no maintenance.

MySQL surprise!

So some code that made it through QA without a hitch blew chunks in Production. Fingers were pointed in various directions, but fundamentally, the SQL queries were incredibly simple, doing a simple retrieval based on matching a unique index, like so:

select field1 from MYTABLE where phone = "12223334444"

Production insisted that the moment the new software was deployed, the dedicated slave DB was being pounded into the ground, and the culprit was large numbers of full table scans. But all of the queries we knew about were exactly like the one above: retrieve part of a single record based on an exact match of a primary key.

Their DB was bigger than ours, so I loaded up a few hundred thousand phony records and tried again. As I expected, my thrash script barely raised the load. Four copies of it spewing these queries as fast as they could barely raised the load. Then I turned on log_queries_not_using_indexes to see if I was getting the volume of full table scans they were, and of course I wasn’t.

Then a real query came in from the new software, and went right into the slow-query log as a full table scan. Why? Because it looked like this:

select field1 from MYTABLE where phone = 12223334444

Fuck, fuck, fuck, fuck, fuck. MySQL silently converts the integer to a string and returns the right answer when you do this, but doesn’t use the index.

"the song probably makes more sense if you don't understand Japanese"

Jeffrey Friedl, author of Mastering Regular Expressions, found his book in an odd place:

Random associations

The “emptying trash” sound on a Mac somehow gets Konya wa Hurricane running through my head. Often.

Dear CAS Hanwei,

Katanas are held in their scabbards by friction. I should not have to tell you this.

Introducing the iPhone 6...

…based on clear trends in Apple’s design and form factor.



Note to self: when planning to spend 5 hours a day for 3 days swinging a sword and shouting, in an indifferently-ventilated garage where the air approaches body temperature, remember that water, iced tea, and cheeseburgers are inefficient methods of restoring electrolyte balance.

Apple's QA department: the customer

As usual for a new release, Apple is demonstrating how not to do QA. This time the results are more hilarious than crippling, since they made a huge fuss about dumping Google Maps for their own solution, “the most beautiful, powerful mapping service ever”.

Yeah, about that…

Torchlight 2 review

“No time to write, must get back to playing.”

Um, thanks?

Got a package from Amazon today, that wasn’t the one I expected this week. And wasn’t something I ordered. It had a standard receipt, with no hint of who bought it for me, or why. Equinox present, perhaps?

It’s the classic Basic Machines and How They Work, by the Naval Education and Training Program Development Center. Good stuff, so thanks to whoever.

The one I’m waiting for? 8 feet of birch veneer edging, of which I need approximately one-third of an inch.

Anonymous Pro (still) FTW!

Adobe has released an Open Source coding font, appropriately named Source Code Pro. I tried it out, and while it’s mostly nice, a side-by-side comparison of the fixed-width fonts on my machine reconfirmed that the also-free Anonymous Pro still beats them all.

Of course, if you don’t write Perl, you might not need expressions like “$K[$i%@K]” to look good, but I still can’t be comfortable with any font where “00” looks like it’s staring at you…

And my test sample, if you’re interested, consisted of Andale Mono, Anonymous Pro, Consolas, Courier, Inconsolata, Monaco, Osaka, and Lucida Sans Typewriter.

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