“Look, Max! It’s those pyramid-building aliens I’ve heard about in speculative films and books! They came to Earth to build these immense structures to keep their razor blades sharp and their hamburger fresh.”

— Sam and Max, Fair Wind to Java

OMC: Yūno Ohara

I suspect Yūno Ohara 大原 優乃 (twitter, blog) has gone partially blind from the number of camera flashes aimed her way since she turned eighteen. Many of her fans are probably going blind, too…

Note that I finally got around to updating my scripts to handle resizing landscape-orientation pics automatically, so I’ll be including more of them in future 2D and 3D cheesecake sets.



This is the crest of my samurai clan.


The cats at Cat Café Nekokaigi are a bit less organized about their cuddling, but they provided a pleasant, calming experience during our vacation, and we learned about the seductive powers of bonito flakes. Pics later.


In the middle of my vacation, this song got stuck in my head somehow. I’m pretty sure it wasn’t the usual problem of a muzak version playing somewhere, although I suppose it could have been a reaction to two completely different retail chains abusing “The Battle Hymn of the Republic” (Yodobashi Camera, which I already knew about, and Daikoku Drug Store, which I discovered while stocking up on Felbinac).

Someone should really remake this with vocaloids…

Dear Amazon,

There is no way to report a delivery failure on your web site. Your so-called help page, Find a missing package that shows as delivered basically says “look around, maybe it will turn up”, and “wait 36 hours, just in case”.

What it does not say is what to do after 36 hours.

I had three packages scheduled for delivery on Sunday. Two of them were oversized, and were brought to my front door, at precisely the time recorded on the USPS tracking page. The third, purportedly delivered at the same time into the locked mailbox across the street, wasn’t there.

The USPS web site has a form for reporting missing packages, but it only promises that they’ll respond to the ticket in a few days. And, sure enough, all I got was a voicemail saying “hey, our driver scanned it as delivered into your mailbox, so if you don’t see it, tell Amazon it was lost”. He left a callback number, but didn’t answer, and his voicemail is full. No surprise there.

Going back to the Amazon help page, it turns out that if you scroll down from the useless help message and redundant video, there’s a ‘Contact Us’ button that opens a chat session with someone in India. He didn’t seem surprised to learn that USPS lost a package, refunded it, and threw in an extra $5 for the inconvenience.

I wouldn’t be surprised to learn that it ended up in someone else’s mailbox, but because people do things like go to work, I can’t just go door-to-door asking about it and expect results. Nothing expensive or time-critical, just Yet Another Reason I wish Amazon didn’t use USPS.

Filevault, unvaulted

Even though I ended up having to work while in Japan, I didn’t pack my work laptop, a 15-inch MacBook Pro with all kinds of corporate IP goodness on it. I just took my little 12-inch MacBook, with all kinds of personal goodness on it. So I backed it up three times, encrypted the SSD with Filevault, and took along an encrypted backup drive that I stored in a separate bag.

In theory, between modern CPUs and modern SSDs, the penalty for full-disk encryption should be pretty small. This is sadly untrue for the 12-inch MacBook, even with a Core i7; I could cope with the N% I/O slowdown, but it rippled through the system, causing other things to either slow down or get a touch flaky. The most visible culprit was kernel_task chewing up a lot of CPU, which generally indicates thermal throttling, but the temperature sensors reported all-is-well, so I’m guessing something about Filevault was setting it off. APFS was also getting really sluggish after a few days, requiring reboots.

Now that I’m safely home and more or less caught up on life, I made three backups and turned Filevault off. Currently the system’s grinding away rebuilding the Spotlight indexes (cache-like stuff is skipped in the encryption/decryption process), and kernel_task is nowhere in sight.


I feel sorry for fan artists who want to draw Grea but can’t figure out how to attach dat phat tail, particularly when making NSFW images (which is why there are so few in this set…).


PDF::Cairo lives!

After a few more epicycles (and a two-week vacation in Japan), I have about 95% compatibility with PDF::API2::Lite, covering pretty much everything I’ve used in my scripts over the years, so that they work with a two-line change. Along the way, I learned just enough about fontconfig to coax it into finding my real Adobe core fonts based on their legacy PostScript names; I’ll need to figure out the substitution crap for any system that only has free equivalents installed, of course, but that’s for when I clean it up and add a test suite before releasing to the world.

As a bonus, my most recent epicycle was calculating the exact values of ascender, descender, and xheight for non-exotic fonts, which is more useful than the font designer’s opinion when you want to precisely position the top edge of a string (as in, say, a calendar; I was able to completely rip out the unreliable hackwork from the PDF::API2::Lite version).

Currently missing: skew transformations (matrix math), elliptical arcs (matrix math), full Cairo path support (new feature), Pango layouts (major new feature), rendering JPG/PNG/GIF/etc (under-documented API calls…), and a PDF::API2 compatibility method for cjkfont (requires messy fc-match tinkering, and I’ve never used it…).

And I just thought of another epicycle! A lot of my grid-based PDF scripts make use of a little box-manipulation library I wrote years ago, that does things like ISO folds, centering, cropping, etc, and recently I started going over the API to clean it up and improve its functionality. Then I realized: I only use this for PDFs, and I’ve already copied the big paper-size library into PDF::Cairo, so why not just make it PDF::Cairo::Box? One-stop shopping, and it will make my calendar generator even cleaner!

5/10 Update

Basic test/install done for the packages; need a lot more test code before I can release. Revised Box module really cleans up the calendar script. Played with Pango just enough to learn that it’s fragile and quirky and expensive to load, but has potential when you need real text layout; couldn’t get vertical text out of it, though, and the feature request for furigana support has been open since 2005.

If I have any working brain cells tonight, I think I’ll work on tests for the matrix transforms to get skews and arcs working correctly. Maybe take a first crack at image methods.


Well, that wasn’t so bad. Got skew transforms to work, and got PNG images to load, scale, and display correctly. I may punt and use ImageMagick’s convert CLI utility to handle other image formats. There is a Perl ImageMagick library, but I’ve never been able to get it to work correctly with a perlbrew-built Perl on a Mac, and just calling convert is easier.

5/12 Update

The last item missing for full PDF::API2::Lite compatibility is the stripped-down version of the textstart/textend functionality that I’ve never used. Adding the full API2 version of this would be more complicated and less useful than integrating Pango layouts, despite the latter’s significant startup time and entertaining quirks (such as Pango’s two completely different integer units, both of which are referred to as “Pango units” in the documentation: 1/1024pt for general positioning, 1/10000em for vertical positioning of glyphs).

As a bonus, because PDF::API2 is mostly pure-Perl, PDF::Cairo is about five times faster, similar to the speedup I got the time I converted one of my scripts to use the abandoned Haru library.

Hanaroku teppanyaki restaurant

Apple Maps is still pretty awful in Japan, so we never used it, but Google Maps had a habit of losing track of our position and facing just often enough to repeatedly send us a few blocks out of our way. It was also pretty terrible at recommending nearby restaurants. But it got it right once, and that’s what matters.

In Kyoto, in the basement of the Hotel Kanra, lies the home of what may be the finest meal we’ve ever eaten, Hanaroku. The menu is short, with only three courses and a handful of a la carte options, plus a separate daily special. The drinks menu is more elaborate, but both are seasonal, with the saké flights paired to the food. Preparation and presentation are exquisite, and the staff is quite friendly.

Not only will we go again, we did. We couldn’t stop thinking about the wagyu, so we went back another night and just ordered it a la carte with a full bottle of Kagura.