January 2011

Idol age gap

Average age of the members of Morning Musume yesterday: 21.

Today: 17.

Distribution: 24, 22, 21, 21, 17, 14, 13, 12, 12.

This does not look like a recipe for success to me. The four oldest girls have been in the group for more than seven years, and will have to bend over backwards to not crush the little girls on stage and in public appearances. They know all their lines and dance steps by heart, they have legions of devoted fans who will not be happy if they get less spotlight time, and the competition is much fiercer than it was even a few years ago. It was bad enough when AKB48 and Idoling were poaching their fans, but Girls Generation has been a massive success in Japan recently, making the local talent look like, well, terrible dancers in funny-looking outfits.

Ding! “Grats”

Recettear has sold over 100,000 copies. Both the original developers and the English localizers deserve every penny.

Life with SSD

For a slightly-early birthday present to myself, as part of a post-Thanksgiving sale I bought myself an OWC Data Doubler w/ 240GB SSD. After making three full backups of my laptop, I installed it, and have been enjoying it quite a bit. This kit installs the SSD as a second drive, replacing the optical, allowing you to use it in addition to the standard drive, which in my case is a 500GB Seagate hybrid. I’ve set up the SSD as the boot drive, with the 500GB as /Users/Shared, and moved my iTunes, iPhoto, and Aperture libraries there, as well as my big VMware images and an 80GB Windows partition.

[side note: the Seagate hybrid drives do provide a small-but-visible improvement in boot/launch performance, but the bulk of your data doesn’t gain any benefit from it, and software updates erase the speed boost until the drive adjusts to the new usage pattern. Dual-boot doesn’t help, either. An easy upgrade, but not a big one, IMHO.]


  • Straightforward installation. There was only one finicky bit where OWC’s detailed instructions didn’t quite match reality, which just required a little gentle fiddling to get the cable out of the way.
  • Boots faster. Much.
  • All applications launch faster, especially the ones that do annoying things like maintain their own font caches. Resource-intensive apps (pronounced “Photoshop”) also get a nice speed boost for many operations, especially when I’m working with 24 megapixel raw images.
  • Apple’s gratuitous uncached preview icons render acceptably fast now. Honestly, I got so sick of delays caused by scanning large files to generate custom icons that I turned it off a long time ago (except the magic Dock view of the Downloads folder, which you can’t disable it for).
  • SuperDuper incremental backups are ~4x faster. 10-15% of this comes from not having to scan the 160GB of stuff that’s now on a separate drive, but most of it is due to not seeking around on the disk to see what’s changed. I’ve actually switched my backups from a fast FireWire800 enclosure to a portable USB2 drive, and I still save a lot of time.
  • A little better battery life, a little less heat. The hard drive stays spun down most of the time unless I have iTunes running.
  • External USB DVD drives work fine for ripping, burning, and OS installation.


  • Apple’s DVD Player app refuses to launch at all unless an internal DVD drive is present; external drives aren’t acceptable (unless there’s also an internal, in which case you can cheerfully use both, and even have them set to different regions). VLC is a poor substitute. You can get it to work with external drives… by editing the binary. Seriously, you replace all instances of “Internal” with “External” in this file:
  • Time Machine backups don’t pick up the second drive. Neither does SuperDuper, so I added a one-line script to my SuperDuper config that does:
    rsync -v -‍-delete -‍-exclude .Spotlight-V100
        -‍-exclude .Trashes -‍-exclude .fseventsd
        /Users/Shared/ /Volumes/Back2/
  • Snow Leopard seems to have lost the ability to reliably specify the mount location of a second drive. In previous releases, you could put the UUID or label into /etc/fstab and it worked. Now that file only accepts device names, which are generated dynamically on boot. This works if only two drives are present at boot time, since the boot drive will always get disk0, but having an external drive connected could result in a surprise.
  • (obvious) Can’t watch actual DVDs without carrying around an external drive.

So, file this little experiment under “expensive but worth it”. I do watch DVDs on my laptop, but only at home or in hotels, so the external drive isn’t a daily-carry accessory. The SSD has a Sandforce chipset and 7% over-provisioning, and is less than half full, so there’s no sign of performance degradation, and I don’t expect any. Aperture supports multiple libraries, so I can edit fresh material on the SSD, then move it to the hard drive when I’m done with it. Honestly, unless Apple releases MacBook Pro models that wil take more than 8GB of RAM, I really see no need to buy a new one for quite a while.


I hate blogfights, so here’s a picture of a pretty girl in a bikini.


Mac App Store, first take

[Update: wow, what a scam! $59.99 for a front-end to Google’s free translate service. Way to curate those apps, Apple!]

[Update: steaming pile of app.]

Lots of shallow, borderline-functional apps, many with undeclared dependencies. For instance, take Translate, which claims to offer translation between 55 different languages for $2.99. The only requirement listed is Mac OS X 10.6.6, and the app size is 1.2 MB.

Translation: it’s a front-end to Google’s free online translation service, useless to anyone who’s offline, and pointless for anyone who knows how to operate a web browser. Instant five-star review, of course.

The UI for the store is taken from the iPhone app store, so it suffers from the same lack of searchability and scalability. Very, very limited information on each app, which is significant because they’re not running in a safe little sandbox like an iPhone; this stuff has full access to your hard drive and home network, opening up all sorts of unhappy possibilities.

Pricing is all over the map as well, like iKana, an obvious port of an iPhone app with limited functionality, for the low, low price of $14.99. And, once again, Apple demonstrates their cluelessness by prominently featuring a list of the top-grossing apps, something that has no value to app buyers.

Expect to see a lot more lazy iPhone ports with ambitious pricing, undeclared dependencies, and random keywords to game the clumsy search system. And maybe a few decent applications that you will find out about elsewhere, and would have bought directly from them before today…

[Update: what inept clod wrote this application? Select a large category, like “Utilities”. Click “See all”. Set sort-by to “Name”. Scroll halfway down the page. Click on an app. Click on the back button. You are now halfway down a page that is sorted by release date. Congratulations on not even getting basic navigation right, Apple.]

Dear Apple,


The Mac App store listing for one of your featured apps says “You must be at least 17 years old to download this app. Frequent/Intense Mature/Suggestive Themes”.

The app is YummySoup, a cookbook.

Spam that is not spam

Looking through the messages that were trapped by my spam filters, I found an odd one today. At first glance, it was very spammy:

  1. Sent to username johngreely at my domain jgreely.com, something I have never, ever used.
  2. Supposedly from a travel agency in the UK.
  3. Booking a room at a Four Seasons Country Club in Portugal, 2 adults, no children, checkin date today.
  4. Listing a home address for me in Ireland.
  5. With a "click here to complete your payment" link at the bottom of the invoice.

Except, the agency seems to really exist, and all of the links in the message went to their site, and there really is a Jigginstown in Naas, County Kildare. To ice the cake, a search of the Irish Times family notices page turns up engagements for both the son and the daughter of John and June Greely, of Jigginstown, Naas.

So, enjoy your vacation, folks, and I hope the misdirected email didn’t screw up your booking.

Guiltless Pleasures

For those of us who feel really, really old when we find our eyes drawn to an eighteen-year-old in a bikini, here’s the latest photo of the former den mother of Morning Musume, first-generation member Yuko Nakazawa, age 37.


Dear John Gruber,

Please start a new blog for your knee-jerk political scapegoating. It detracts from your knee-jerk Apple fanboyism.

Well, that explains a few things…

Now I see why Girls Generation is unstoppable: they’re cyborgs.


You can keep your tsuns and your yans…

…I like the sound of this one better: Ero-dere.

A look at the “customers who bought this item also bought” list turns up titles like Cool masochist, My maid is a classmate, My little sister is a bikini model, My S big sister and my M little sister, Dangerous sisters, School-swimsuit-maid at your service!, Milk academy, My big sister, My little sister, My maid, My princess, My doll, etc.

I think it’s safe to conclude that the main character lives up to her description. Often. With illustrations.

[Yes, all of the “My X” ones are by the same author. I imagine she got some crossover sales from fans of the Mai HiME manga/anime series when she got up to princesses and released My Hime. Interestingly, they also hired her for a To LOVEる book called Dangerous Girls Talk; sounds like someone qualified to work in that universe!]

My next screensaver…

…will use a random set of book covers downloaded from Amazon Japan’s “dirty stories for men” collection. Not the trendy manga/anime-style covers, but the more realistic airbrushed cheesecake style many of them use.

For instance:

book cover

The title of this little gem, もっちり熟尻, breaks down into a current slang term for “firm texture”, followed by a kanji meaning ripen or mature, followed by the kanji for buttocks, translatable quite effectively as Firm Ripe Ass. This is not the least subtle title I’ve seen; that award would probably go to ごっくんOL (mouseover for NSFW translation).

[side note: I’ve noticed a lot of invented-word kanji combos in genre titles, and I suspect many of them are wordplay. In this case, 熟尻 might be read as jukkou, which when written 熟考 means “deliberation”]

Other covers I’ve liked in this genre include Wife-play, Temptation Paradise, My Aunt and Me, and Welcome to Honeyfun Island. I’m not terribly interested in the books, mind you, but I do like the cover art. [Update: and another, Saucy Sister-in-law (literally “with extra sauce”, usually used when ordering beef bowls).]

Not all of the artists working on these books are equal, of course. Welcome to the Honey Garden is a poor sister to Honeyfun Island’s main attraction, and Beloved Kindergarten Teacher isn’t as well-drawn as The Naughty Kindergarten Teacher, but there are a lot of these books available (as I first discovered here and later here), many with quite pleasant covers that are considerably classier than this vintage American example:



[Update: significantly improved the Perl script]

The hardest part of my cunning plan isn’t “making a screensaver”; I think every OS comes with a simple image-collage module that will do that. The fun was in collecting the images and cleaning them up for use.

Amazon’s static preview images are easy to copy; just click and save. For the zoom-enabled previews, it will fall back to static images if Javascript is disabled, so that’s just click and save as well. Unfortunately, there are an increasing number of “look inside” previews (even in the naughty-novels genre) which have no fallback, and which are not easily extracted; for now, I’ll write those off, even though some of them have gorgeous cover art.

[Update: turns out it’s easy to extract previews for the “look inside” style; just open the thumbnail in a new window, and replace everything after the first “.” with “SS500.jpg”.]

A bit of clicking around assembled a set of 121 pleasant images at more-or-less the same scale, with only one problem: large white borders. I wanted to crop these out, but a simple pass through ImageMagick’s convert -trim filter would recompress the JPEGs, reducing the quality. You can trim off almost all of the border losslessly with jpegtran -crop, but it doesn’t auto-crop; you have to give it precise sizes and offsets.

So I used both:

crop=$(convert -trim $f -format “%wx%h%X%Y” info:-)
jpegtran -crop $crop $f > crop/$f

So, what does a collage of naughty-novel cover-art look like? Here are some samples (warning: 280K 1440x900 JPEGs): 1, 2, 3, 4, 5. [Update: larger covers, and full-sized]

These were not, in fact, generated by taking screenshots of the screensaver. It takes a long time for it to fill up all the blank spots on the screen, so I wrote a small Perl script that uses the GD library to create a static collage using the full set of images. If I desaturated the results a bit, it would make a rather lively background screen. For home use.


While reading the comments over at Chizumatic (yes, dream-eating is the correct way to interpret yumekui, given that hitokui = cannibalism), I belatedly realized another bit of kanji wordplay in my expanding collection of naughty-novel cover art: 蜜楽.

I didn’t think much of it the first time I saw it, on the cover of Welcome to Honeyfun Island, but then I saw it again on Honeyfun-hunting and made a mental note to see if it was a common genre term. When I saw the comments on Yumekui, it snapped into place.

The word on the covers is mitsuraku. Compare these two characters:

蜜 密

The first one means honey, the second one means secret, and they’re both read as mitsu. There’s also a word itsuraku that means pleasure. So, adding an initial consonant sound and substituting a suggestive kanji converts simple “pleasure” into “secret honey pleasure”, which certainly sounds like something you’d look for in a naughty novel.

I found a less wholesome example on another cover, 蠢(うごめく), whose main title is a rarely-used character for the verb “to squirm; to crawl like a worm”. The subtitle is 姦獄美姉妹, which is read as kangoku bi-shimai, “prison beautiful sisters”. Or, rather, the first word would mean prison if it were written 監獄, but the first kanji has been replaced with another one that is also read as kan, but has various meanings including “wicked” and “boisterous”. And, unfortunately, “rape”, which is probably the intended meaning in this context. (supported by the people-also-bought list including a number of books with prison bars and tied-up women)

Note to self: do not browse for cover art in a session where you have confirmed to Amazon Japan that you’re over 18. This opens up the search results to include material that’s been flagged adults-only in their database, such as bondage, rape, and lolicon. These really don’t fit my cheesecake-pin-up theme, and the cover art on the lolicon novels is seriously creepy.

Cover sampler

First, yet another update to the collage-making Perl script. I added a number of tweaks so that I could reduce blank spots and overlap. If my interest holds up, I may add code to search for the largest empty areas more intelligently, but the current version works pretty well, and only took 13 seconds to generate a 1024x4096 collage of 481 naughty-book covers at 36% of their original size.

Warning! Clicking on the thumbnail loads a 1 megabyte JPEG that is unlikely to be work-safe:

Naughty-book cover sampler

Yes, I’m up to 481 covers. Some of them are second-rate, and some of the titles reflect subject matter less innocent than the cover images, but there’s a lot of terrific cheesecake in there. I’m probably going to track down the names of several of the artists so I can look for collections of their work.

One thing I didn’t do as I was idly gathering covers was keep track of the original pages on Amazon, so if I want to do something with the book titles, I have to type them back in by hand. This isn’t too bad, since I can sketch most unfamiliar kanji on my laptop’s trackpad, and find most of the remaining oddballs with Ben Bullock’s Multi-radical search tool, but it turns out that for many of the books, the really spicy bits are in the sub-titles, which are often too small to read. In some cases, the large title is just the series name.

Still, I’ve done enough to confidently state that at least one of the following words appears on the cover of almost every naughty novel in Japan. Sometimes three at once, with three at once. Cut out and save this handy guide!


Dear Amazon,

Just a quick FYI, but you might want to have a chat with the folks who supply your Kindle wireless coverage map.

Kindle revises Japan

Dear Apple,

When evaluating submissions to the Mac App store, you really should check to see if a limited-functionality app also happens to include a limited-creativity ripoff of one of your own icons. Like Screen Grabber, which made a few light edits to your Grab app icon.

Note that this was not one of those “let’s stuff the store with crap on opening day” apps. No, this one was approved two days ago.

“Y’see, software has layers

Just spent a merry, no wait, hellish few hours fighting to get a LaTeX distribution up and running for the sole purpose of running a single script that uses it to convert marked-up Japanese text to PDF in convenient ebook sizes.

I failed. Or, more precisely, I got all the way to a DVI file that could be displayed quite nicely on screen, with all the kanji and furigana intact, but then the PDF converter that was part of the same TeX package that had generated it started barfing all over my screen, and I refused to spend more time on the project. I simply have no desire to navigate the layers and layers and layers of crap that TeX has acquired in its hacked-together support for modern fonts and encodings.

Honestly, if I want to generate cleanly-formatted Japanese text as a PDF, with furigana and vertical layout and custom page sizes, it takes 10,000 times less effort to spit out bog-standard HTML+CSS and feed it to Microsoft Word.

[Note to the MS-allergic: performing the equivalent import into OpenOffice is possible, but not reasonable. Getting basic unstyled plaintext+furigana wasn’t too bad, but anything more complicated would be an exercise in tedious XML debugging.]

[Update: gave it another go, and eventually discovered that running dvipdfmx with KPATHSEA_DEBUG=-1 in the environment returned a completely different search path than the kpsewhich tool used. Copying share/texmf/web2c/texmf.cnf.ptex to etc/texmf/texmf.cnf made all the problems go away. At least until the next time I upgrade something in MacPorts that recursively depends on something that obsoletes a recursive dependency of pTeX and hoses half my tools.

And, no, I can’t use the self-contained and centrally-managed TeX Live distribution (or the matching GUI-enabled MacTeX). That was the first hour I wasted. Its version of pTeX is apparently incompatible with one of the style files I needed.]

Dear travel writer,

I am not as impressed with your clever prose as you are:

“Fukagawa is a neighborhood in Tokyo’s Koto ward, just 3km east of the Imperial Palace and Tokyo Station, and across the Sumida River. Like most wards in the east of the city, it is not a place where wealth is overly evident, but neither is want. While by no means a sleepy hollow, it has none of the pent-up-ness of the central business districts, or the brittle proud-of-itself chic of the city’s shopping meccas only a few stops west.”

One of these sentences contains information. The rest say a lot about the writer, but nothing at all about Tokyo.

Fun with LibreOffice…

Since a new version of the free-as-in-fork LibreOffice package was just released, I thought I’d take a look and see if it’s gotten any easier to import formatted text.

The answer: “kinda”.

Good: It imports simple HTML and CSS.

Bad: …into a special “HTML” document type that must be exported to disk in ODT format, and then reopened. Otherwise, all formatting not available for web use will either disappear from all menus and dialog boxes, silently fail, or be deleted when you save (generally the result of pasting from another document).

[note that the Mac version crashed half a dozen times as I was exploring these behaviors, but it usually managed to open the documents on the second try]

Sadly, furigana are not considered compatible with HTML, so they’re stripped on import, making it rather a moot point that you can’t edit them in HTML mode. The only way to import text marked up with furigana is to generate a real XML-formatted, Zip-archived ODT file.

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