June 2019

A Certain Scientific Delivery Service…

togit:: and not togit, that is the answer!

With PDF::Cairo, I’ve formalized my dev/release process a bit. I have a handful of repos published on GitHub, because it’s the place people look, but I dislike Git. Bluntly, it exposes a lot of potentially destructive features by default, including the whole tissue-paper “branch” model. I’m of the rather firm belief that the most important task of a version control system is to preserve the history of your files, and Git doesn’t.

Git didn’t win the DVCS wars for any significant technical reason, it won because: the Linux kernel devs use it, team leads really like the GitHub pull-request model, and junior devs just out of college freeze when confronted with anything unfamiliar.

When I migrated all my little projects out of RCS, I chose Mercurial as their new home, and I don’t regret it. First, because the usage reflects design choices rather than implementation details; second, because most dangerous commands are disabled by default; third, because extending its functionality is quite simple even for people who dislike Python; and fourth, because it stores your revisions in append-only files with honest-to-gosh reversible transactions.

Even on a project where I’m the only user, I appreciate the fact that “cut-and-paste from StackOverflow” is unlikely to destroy my repo, something that is definitely not true for Git. On real projects at work, there are devs who will cheerfully follow any instructions they find online when they get in over their head, and not tell anyone else unless they can’t undo the resulting damage on their own.

For solo projects, I obviously don’t get into elaborate workflows, but I do like being able to push to a remote repo as an instant backup, so I have Kallithea running in a Docker container on my Synology NAS. Not visible from the Internet, of course, but I can always VPN back to the house, which also comes in handy when I’m out and about on an untrusted network.

With that out of the way, here’s my process for PDF::Cairo:

  1. do all development locally in Mercurial (one branch, lots of little commits and extra test files I don’t plan to release).

  2. snapshot the code and copy into the local Git repo, as a single changeset containing only files explicitly listed in the project MANIFEST file:

    perl Makefile.PL
    make dist
    cp PDF*.tar.gz $GIT
    cd $GIT
    tar xzf PDF*.tar.gz
    cd $GIT/PDF-Cairo
    git add .
    git commit
    git push
  3. To keep track of exactly what changed, I have a Mercurial bookmark (which is more-or-less what Git calls a “branch”) named “togit”, which is applied to the last commit already pushed to GitHub. The following command gives the details of all of the changes since then, in chronological order:

    hg log -r 'togit:: and not togit'
  4. Once the new version’s on GitHub, I move the bookmark to tip-of-tree and set it to not auto-update to new commits:

    hg bookmark -i togit

The result is a clean public repo with a sensible history, backed by a messy private repo filled with random test scripts, todo lists, rude comments about poorly-documented APIs, etc. The distribution tarball can be uploaded to GitHub as a release, but someone who chooses to just download the automatically-created Zip/Tar archives will also get a complete usable release.

The only potential complication is accepting a pull request on Github and then merging that back to Mercurial. For that, if it ever happens, I’ll use git diff -r... followed by hg import --no-commit.


Submitted PDF::Cairo to CPAN, and PAUSE complained because it thought I was trying to take over ownership of the Cairo::ImageSurface and Cairo::RecordingSurface namespaces.

Because I added some convenience methods to them:

package Cairo::ImageSurface;
sub height {
        my $self = shift;
sub width {
        my $self = shift;

package Cairo::RecordingSurface;
sub height {
        my $self = shift;
sub width {
        my $self = shift;

Admittedly, this is a hack (and I can probably work around it by explicitly naming them Cairo::RecordingSurface::height, etc, instead of using package), but it strikes me as a rather aggressive behavior by their uploader (“Index all the things!”).

I managed to give up “ownership” of Cairo::RecordingSurface, and I’ve re-uploaded a new version with the hack to the hack. Seems to work now.

Fun with automated testing…

One feature of CPAN is that there are a bunch of people around the world with automated testbeds that attempt to build each new module on a wide variety of Perls and operating systems. Within a few hours of uploading 1.03, I got email from one that failed on 100% of his test platforms.

In the vast majority of cases, it complained that there was no such thing as a Cairo::RecordingSurface->create() method. Looking at the source for the Cairo module, this can only happen if it’s linked against a version of libcairo older than 1.10.0, released in September 2010.

Yeah, I’m okay with that. I just noted it in the docs, and added that some future features will require 1.16.0 or newer (although all current functionality will continue to work).

Unfortunately, the failure reports don’t include the C library versions, so I’ll have to add that to the test suite to make it clear that it should fail if your libraries are that old.

Pixiv Champloo 4

No raccoon girls were lewded harmed in the making of this cheesecake.


About the only Google service up right now…

…is Google+.

Probably because no one goes there any more.

“For the glory”

Wow, VMware wasn’t kidding about Photon being a small, clean Linux distro, although it would have been nice if they’d also left out colorized ls output. Shame about systemd, but tdnf looks like a nice cleanup of yum, even if my brain reads the name as to-die-in-fire.

I barely even remember the ads for this, but I was in college at the time, and wouldn’t have spent my money on 15 pounds of laser-tag gear anyway. I did like the Peter David novelizations, though, which were better than you had any right to expect.


Nearly one-eighth of the packages in the Photon repo are Perl modules. That sounds about right. No, wait that was the Alpine Linux window that I had open at the same time; Photon’s package list is only about 2.5% Perl. Which is actually better, since mixing packaged modules with CPAN downloads has always been a mess, and you can never get everything you need from just the packaged stuff. You should avoid the vendor-supplied scripting languages anyway, and use perlbrew/rbenv/pyenv/etc to build clean ones.

Also, to my surprise, I found four of the six “David Peters” Photon novels on my shelves without much effort. They’re apparently rare as hen’s teeth now, with dealers listing them for ridiculous prices that make hundred-page books on Japanese pickles look affordable.

Budget RealDoll…

…from Panasony:

No highlights, please

Why I Hate Syntax Highlighting: Mac Pascal.


Had to use this in a programming class back in the Eighties, and if the windows in the lab had been openable, I’d have defenestrated about three Macs a day.


Good Omens

I’ve been reading Good Omens every year or so for quite a few years now, so I had my fingers crossed that the Amazon/BBC mini-series wouldn’t screw it up.

They did not, in fact, screw it up. Pity they didn’t manage to get the two Doctors into the same scene, but Morrissey’s role was quite small and not really connected to Tennant’s.

Only one spoiler comment:

They did not undo the grisly fate of the telemarketers. I like to think that this reflects a positive change in society.

A Certain Scientific Lovely Angel

Well, this won’t end well…

Keep your Javascript off my back button!

Infinite-scrolling web sites are garbage. The increasingly common model where new content is loaded as you scroll down is actively user-hostile, because content is never unloaded, guaranteeing that eventually your browser will decide it’s had enough and force-reload the page. From the top.

Adding insult to injury, however, is the trick where it also inserts artificial navigation commands into your browser history, changing the URL to reflect your offset into the infinite scroll. As much as I like the content over at Mad Genius Club, I hate the fact that I have to hit the back button multiple times to leave. Just now, without having scrolled down very far at all, I had to hit the back button four times, because each time it decided I was still far enough into the scroll to need my history re-fucked-with.

Begun, the login-button wars have

Want to let users sign in to your iOS app using Google, Facebook, Github, or any other third-party service? Better put the new Apple login button first on the list, or you’re fucked.

Did I hear something recently about antitrust investigations in Silicon Valley? Will I hear more soon?

Forgotten SF Novels: The Alien

I’ve got floor-to-ceiling bookshelves in two rooms that are crammed with old SF novels. Every once in a while one of them catches my eye, and I give it a re-read. Some are old friends that deserve the attention, while others are basking in well-deserved obscurity.

First up is one that I read back in the late Seventies, after I’d just heard about a new movie called “Alien”. Since I wasn’t really in a position to go see it in a theater, I popped into the local library to try to find a novelization and see what it was about.

They didn’t have it. Instead, I found something called The Alien, and the cover made it pretty clear that there weren’t going to be any spaceships.

I don’t remember when or where I actually bought a copy, but it was almost certainly out of the same misplaced nostalgia that led me to hunt down a copy of Manly Banister’s Conquest Of Earth (aka The Scarlet Saint), another dusty old library classic.

The Alien was the second, and last, novel by one Victor Besaw, published in paperback by Fawcett in 1979. The Internet doesn’t seem to know a damn thing about him, but I’m inclined to say he lacked the Gift of Names:

“Outside Gelsan on the road to Malkha Voet,
on the third day of the year of Lilkhanflet
Bdengi got himself a strange new thrall…
a small Nyarlethu, scarce five mangi tall.”

That’s how it starts, and before the brief prologue is over, we’ve heard about the Vilarian sun, the Chalkhrondu, the Volsek river, a carriage pulled by delkhators, Bdengi’s wife Verla (who calls him Zhen), some sort of divinity to swear by named Khanophet, his driver Haldor (who calls him vlan), his guard Arlo, and Our Hero himself, the toddler Godranec, fed a nice piece of roasted tharg by Verla after being dropped in the middle of the road by a skaldu bird.

And that’s just the first three pages. I’ve gotten more consistent names out of a pile of Boggle dice. The world-building is just as consistent, which is to say not at all. Every few pages, something happens that introduces a half-dozen more boggle-words, another strange race, and a minor challenge for Our Hero to overcome. It makes for a rather quick read, and it isn’t a long book to begin with.

When he’s fully grown and conveniently armed with a magic spear (given to him by his master to destroy in the forge), a noble’s sword (given to him by the Halzhengim lizard-men, along with some advice from their tribe’s shogan on how to find his people), and a mighty axe (made by Our Hero in his master’s forge, which he conveniently had to himself that night), he murders the kitchen overseer Kula (as promised 40 pages earlier) and sets out for his freedom through the mysterious and deadly wierwood.

About a hundred pages later, Our Hero defeats a mighty cave bear, is reunited with his people, learns his true identity, and gains a beautiful princess as his wife, all in about ten pages. The end.

The book is stuffed with Tiny Adventures that are over almost before they start, each involving a new and different and vaguely-sketched element of this fantasy world, with no real thought to fitting them together into a coherent whole. Most disasters are averted by the convenient fact that his horns have a Spidey-sense, alerting him to plot points. It’s like reading an ADHD teen trying to imitate Edgar Rice Burroughs.

These days, it would be a 14-book indie series on Kindle, with each volume over 300 virtual pages long, but Besaw crammed it all into one, and that was that.

Worth reading? Only as a snapshot of the sort of brisk pulp fantasy that fed a hungry young SF market in that era. No sex, no gore, no character development, no world-building, just a nondescript protagonist who overcomes every obstacle in a few paragraphs and gets the girl.

On a related note, Good Show Sir collects terrible SF covers…

Safety first!

Fortunately for them, no one ever robs jewelry stores…

OMC: Nanoka

After lengthy, careful inspection, it’s not true that there are eight different models named Nanoka (菜乃花). That would be nice, but the reality is that she’s got an unusual face, with features that are strongly affected by the perspective effect from different lens focal lengths. Where most models look more attractive when shot with the flatter perspective of a longer lens, Nanoka just turns into a different girl. That’s in addition to the effect of makeup, of course, which also acts to exaggerate or minimize different features. If it weren’t for selfies on her Twitter and Instagram accounts, I suspect fans would have trouble spotting her on the street.

Note that the intersection of “Nanoka” and “Safe For Work” is quite small. Rather similar to the intersection of “Nanoka” and “warm clothing”.

In related news, bigboobsjapan.com (backup site) is back online after being suspended by their previous hosting company, but without their archives. They’re making up for it by posting new stuff quite frequently, but a lot of quality cheesecake was lost. Remember, boys and girls, if your data only exists on Somebody Else’s Servers (sometimes called the “cloud”), it can go away at any time. Only downside is that they’ve switched to a Javascript-only template that not only dynamically loads thumbnails, but doesn’t allow you to right-click to download images; you have to click each thumbnail in turn, download, then press the back button.


Early Japanese drone technology

Honestly, I’m surprised Thanko doesn’t make this gadget…



# tdnf install perl
# cpan App::cpanminus
# tdnf install man-db man-pages gawk tar diffutils
# tdnf install make gcc binutils glibc-devel linux-api-headers ncurses-devel
# su - build
% curl http://ftp.gnu.org/gnu/emacs/emacs-26.2.tar.gz | tar xzf -
% cd emacs-26.2
% ./configure --without-all --without-x
% make
# cd ~build/emacs-26.2
# make install
# cat <<EOF > /root/.emacs
(setq-default initial-major-mode 'fundamental-mode)
(defun set-auto-mode (&optional foo) (interactive "p") (fundamental-mode))
(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))
(global-set-key (kbd "TAB") 'self-insert-command)
(setq-default tab-width 4)
(setq-default enable-local-variables nil)
(setq-default inhibit-eol-conversion t)
(setq inhibit-startup-screen t)
(setq inhibit-splash-screen t)
(setq line-move-visual nil)
(setq transient-mark-mode nil)
(setq sentence-end-double-space nil)
(setq isearch-lax-whitespace nil)
(setq search-whitespace-regexp nil)
(put 'narrow-to-region 'disabled nil)

Okay, now I can start exploring Photon.

File under baffling the fact that there’s no Emacs RPM at all. Admittedly, even my “minimal” build adds 200MB to /usr/local/, but:

“When you don’t have enough space for Emacs, you don’t have enough space.”
     — Sandy Wambold

Dear Apple QA,

I like to think that there’s someone out there to address this message to, but all signs point to “no”.

Let’s look at the intersection of several features:

  1. Quick Look, activated by pressing spacebar.
  2. “Display as Folder” view for the Downloads folder in the Dock.
  3. Keyboard event passthrough to the active application.
  4. Spacebar as “mark item completed” in Reminders.
  5. Auto-select next item.

Now, let’s suppose that I have recently downloaded some items to which quicklook can be applied, perhaps pictures of scantily clad young ladies. While the Reminders app is active and an item is selected, I click on the Downloads icon, bringing up thumbnail images of these downloads, which I wish to view more closely.

I do this by pressing the spacebar, once to preview an image, once to make it go away again. I repeat these keystrokes several times, examining several images. When I click the Downloads folder again, I am returned to the Reminders app, which is now empty, because I’ve just marked every single item as completed.

This behavior is not consistent between applications. It never happens with Terminal, sometimes happens with Safari, where it’s a minor nuisance, and always happens with Reminders, where it is destructive.

Dear Souji Okita,

This is a block. Not a great block, since it’s a little low, and too close to your head, but an incoming strike will at least hit the blade before it hits your head:

This is not a block. Honestly, you’re about five seconds away from re-enacting Ben Kenobi’s final scene in Star Wars:

Fun with software testing

Before I released PDF::Cairo, I gave it a basic test suite to make sure that everything at least loaded correctly. I wanted to fully exercise the various methods, but that wouldn’t tell me if they actually worked or not. I needed to put ink on the page, and then compare it with a reference page. Automatically, using tools likely to be available (or at least easily installed) on the target platforms. I decided to generate an N-page PDF with small pages, draw a single test per page, and convert the results to a series of PNG files; if they were byte-for-byte identical to the files generated from the reference PDF, the tests passed.

ImageMagick’s convert utility was out, even though I currently use it to import non-PNG images into PDF::Cairo, because it can choose between multiple PDF backends, and I didn’t want the added test complexity. I considered Ghostscript, which I have a few decades of practice with, but then I came across Poppler’s pdftocairo utility. Not only does it have the functionality I need, but it’s built on Cairo, FreeType, and Fontconfig, the same libraries I’m generating the PDFs with in the first place.

Here’s what it looks like:

my $pdf = PDF::Cairo->new(
    width => in(2),
    height => in(2),
    file => $OUT,
push(@test_desc, "bezier curves");
$pdf->move(10, 10);
$pdf->curve(20, 120, 40, 40, 140, 60);
$pdf->rel_curve(-10, 10, -40, 40, -100, -30);
$pdf->linedash([12, 4, 8], 2);
  my $tmp = `pdftocairo -v 2>&1` || '';
  skip("need poppler's pdftocairo to compare images")
    unless $tmp =~ /pdftocairo/;
  my $PDFTOCAIRO = "pdftocairo -png -r 200 -antialias gray";
  system("$PDFTOCAIRO t/02-cairo.pdf $TMP/ref");
  system("$PDFTOCAIRO $OUT $TMP/02");
  foreach my $i (1..@test_desc) {
    $i = sprintf("%02d", $i);
    my $test = "page $i: " . shift(@test_desc);
    subtest $test => sub {
      plan tests => 3;
      ok(-s "$TMP/ref-$i.png", "reference page non-empty?");
      ok(-s "$TMP/02-$i.png", "page non-empty?");
      ok(compare("$TMP/02-$i.png", "$TMP/ref-$i.png") == 0,
        "page matches reference?");

Works quite nicely on Mac and Linux, and the small page size speeds up the PNG conversion. To test text methods, I had to add a free TTF font from Google Fonts. I can’t really test the effect of Fontconfig font substitution, which also means that I can’t really test Pango font-handling; currently, the work-in-progress Pango tests only run if you install the fonts included in the tarball.

Naturally, the act of writing the tests smoked out half a dozen bugs, so once I had decent coverage of the main module, I pushed out a new release to Github and CPAN.

R.I.P Dr John,

New Orleans gave him a proper farewell:

Picturing the new era…

Best Reiwa-chan I’ve seen so far:

Pixiv: customer-attracting-pretty-girls

Perhaps the closest translation of kanban musume (看板娘) is spokesmodel. The trade show variety are often derisively referred to as “booth bunnies”, and strident complaints have pretty much eliminated them outside of Asia, where company leadership isn’t so woke that they shoot themselves in the foot to pacify people who will never be their customers.

But “spokesmodel” doesn’t really cover how it’s used in Japan, where it’s just common sense to have a pleasant, attractive “face” for your business, whether it’s a café, apartment building, or even noodle delivery service. Or artists on Pixiv, to get you to click through and see the rest of their portfolios.

Pixiv’s own translation of the tag is “showgirl”, which is very, very wrong. Not that some of them aren’t putting on a show…


The Grooming Of The Raccoon Waifu

I’m finally caught up on 狸の幼妻の育ち上がり, er, “The Rising of the Shield Hero”. I like it, but it helped that I went into it with fair warning about the infodumps and enough episodes out that I could watch two at a time. And that I ignored the fan-wanking about how it was just awful compared to the manga and the light novels and the web novels, etc, etc.

(original image by yodane, here; titling by me; click for full-sized image upscaled with (appropriately) waifu2x)

Hopefully it will do well enough for a second season, because they can’t possibly wrap up even a highly-condensed adaption of the main story, currently spread across 20+ novels and not yet finished. Unless they blitz through the waves to a Type 1 Tenchi Solution in the last few episodes. 😁

Now all I have to do is come up with something else to watch while on the elliptical…

Forgotten SF Novels: Fane

Fane, by David M. Alexander, 1981:

Beyond the stars, a fool’s paradise lies waiting to be saved!

The planet Fane, inhabited by earthlings and native four-armed Fanists, is threatened when the wizard Greyhorn contrives a fiendish plot to conquer the world and enslave its inhabitants.

Greyhorn’s scheme lacks one essential ingredient, so the great wizard sends his bumbling newphew, Grantin, to find it. But when Grantin unwittingly foils his uncle’s plans, he is plummeted headlong into a strange adventure.

Evading bandits on lizards, pleading mercy from talking trees, battling poison-toothed demons, the unwilling Grantin journey through the Weird Lands into the domain of evil where the gorgeous Lady Mara is waiting to be saved…

But to save the Lady, the planet, and himself for the simplest pleasures of Fanist life, Grantin must rise to the occasion— and learn how to fight!

The cover picture is 100% accurate, except for the tights. The back-cover blurb, on the other hand, is batting about 0.300. Among its other problems, there’s a third race with a significant role in the plot (lower right), uncle Greyhorn isn’t the one trying to conquer the world (but he’s willing to help for a piece of the action), Grantin is just sent into town to pick up the essential ingredient from a courier, Mara doesn’t know that she needs saving until quite late in the book, and Grantin isn’t so much interested in saving her as in getting her to undo the mistake he made that sent him fleeing from his uncle’s wrath.

To my surprise, this one’s still in print and available for Kindle, as The Accidental Magician, under the pen name David Grace. The cover art is a bit less accurate (depicting uncle Greyhorn contacting the actual villain through a crystal ball), while the blurb is a bit more, so it balances out.

Is it any good? Mostly for the world itself and Grantin’s two alien allies, Chom and Castor. Grantin, Greyhorn, Mara, and the rest of the humans don’t have much to offer.

We fits


3D Cheesecake 17

I’m way behind on adding names to these, but I’m even more behind on posting them.


Pixiv: my (original) girl

The uchi no ko (うちの子) tag is generally used to indicate an artist’s original characters, but sometimes seems to just be “my dream girl”, plus the occasional “girls I keep tied up in my basement”. That last group is not represented in this collection…


Open for business…

The sign says “Heisei Girls’ Academy”, but most schools don’t have neon signs that are lit up at night, with another sign nearby offering DVDs…


As expected, 18-or-older young women do the educating at this ‘fashion health’ chain. But they do wear school outfits. Briefly.

Forgotten SF Novels: Heroes of Zara Keep

The isekai genre that’s more-or-less taken over the Japanese anime and light-novel markets has a long history. You could argue about the precise definition, such as whether the protagonist is required to have been a loser in real life before being transported to another world, and whether or not it’s a one-way trip, possibly involving reincarnation. And whether the other world is specifically based on RPG tropes, including concepts like “levels” and “hit points”.

You could say that Edgar Rice Burroughs invented it in 1917 with A Princess of Mars, but it was certainly a familiar genre trope before Piper’s Lord Kalvan of Otherwhen in 1965, and it was only a minor novelty when Brian Daley brought modern military weapons into the mix in 1977’s The Doomfarers of Coramonde. By the time Joel Rosenberg’s Guardians of the Flame series kicked off in 1983, it was old hat.

But a year before Rosenberg made the idea of living in a D&D world a bit less cool, Guy Gregory’s one-and-done novel Heroes of Zara Keep hit the shelves.

Left to right, that’s Flos, Jason, Lyca, Sax, and Culter. Perfectly ordinary young adults with perfectly ordinary names. Okay, Jason has a perfectly ordinary name, but he compensates for that by being the only one who’s not obviously ordinary, having Very Unusual Hands. By the way, the tiny speck under the author’s name is the massive, threatening dragon that the Big Bad rides, or maybe a pigeon.

It’s… okay, I guess. A generic wizard summons a group of Chosen Ones at the moment of their (mostly foolish) deaths, sets them up with mentors who have exactly the right skillsets, and then when the Great Danger arrives ahead of schedule, cuts short their training and arranges a meet-up in just the right way to cause Our Heroes to fight before becoming besties. Their pretty darn quick journey to Zara Keep to defeat the Big Bad provides precisely the challenges each was trained to overcome, while also providing precisely the situations needed to trigger each one’s PTSD over the manner of their deaths. But not so much that there’s any doubt they’ll make it there in time. Honestly, it took me about a week to re-read it, because I kept nodding off.

The module book wraps everything up neatly, with no loose ends, and happy endings all around for Our Heroes. The complete lack of a sequel hook is perhaps the most novel thing about it.

Guier S. Wright III and G. Scott Wright, Jr. share the copyright on this one, and about nine years ago a Guy Wright turned up on an SFFworld forum thread to mention that his dad wrote it, he had a bunch of copies in the garage, and to feel free to email him any questions. That pretty much sums up the Internet’s collective knowledge of both book and author.


I just noticed that all five of Our Heroes are looking in different directions, and none of them are looking at the titular keep or the massive, threatening dragon.

Dear Apple keyboard ‘designers’,

It wasn’t cheap, but I finally have a fully-functional keyboard on my MacBook Pro:

Yes, that’s a one-key mechanical USB keyboard with an Escape key. I wish the case were a bit shorter (the USB port’s on the bottom side of the board, sadly), but even with the extra height, it’s so much easier to work now. I may try to CNC something that lets it “clip” onto the side with a very short USB cable; longer reach but better height, might be worthwhile.

A Certain Scientific Superhero

BBQ Maids

Yes, please.


Slower than cheesecake…

Illustrator Yuu Shirousagi seems to have mostly abandoned posting cheesecake on Pixiv, but maintains an active presence on Twitter.

I’m okay with only one pic every 18 months if it’s as interesting as this one. It definitely passes my “want to read a novel with this cover” test.

“artists who know what they like to draw”: Studio Zombie

Wonderduck commented that the artist responsible for my Certain Scientific Cosplay posts “certainly knows what he likes to draw”, which reminded me of one I posted two years ago, where almost every girl CCreayus draws is just C.C. in cosplay.

Here’s another, appropriately named Studio Zombie, where a bit over a third of his drawings consist of Junko and Ai from Zombieland Saga as a very cute couple:

Things no one has ever said…

“Needs more Lobo”.

What’s worse than a rap break in a Barry Manilow song, gravel in your Grape Nuts, or the feces-filled streets of San Francisco? Adding Lobo to a dramatic series about Superman’s grandfather on Krypton.

The tonal shift is jarring, and the reasoning behind it turns out to be that SyFy is developing a Lobo series, and dropped him into Krypton with all the subtlety of Mork from Ork’s appearance in Happy Days.

Seems like a terrible thing to do to a series that’s starting to figure out what it wants to be when it grows up.


That’s “Democrats Insisting on Reparations for Everything”, the cornerstone of the “free shit good, orange man bad” platform that pretty much everyone in the clown car is running on.

Reparations for being a gay couple denied a wedding license. Reparations for getting a graduate degree in underwater genderqueer dance therapy. And that’s just Warren and Sanders this week. How long until they promise reparations for trans activists denied dates by people who don’t find them attractive?

(raise your hand if you immediately answered “next week”…)


Pixiv Champloo 5

I think there are currently more Democrats running for President than there are pictures in this set…


Acute mercury poisoning…

There is no cure.

“Hmmm, those guys in the iron carriages have a mage? And an elf shaman? And… Rory Mercury?!?”

“Fetch me my brown armor!”

— Princess Piña Co Lada (loosely translated)


I knew that Google’s company culture was fucked up, but not that it was just a daycare center.

To pick on just one of the issues these people have, my feelings on the pronoun madness are pretty simple:

  1. Honestly, for 95% of the people I meet, at work or elsewhere, I forget their names within five minutes, so demanding at gunpoint that I remember their invented pronouns is just never gonna happen. I can’t tell you the names of the people who’ve been my neighbors for the past twenty years, and they all know mine!

  2. Forms of address are a courtesy and/or a sign of respect, and neither discourtesy nor disrespect are crimes, particularly when the $other demanding compliance is $self rude and insulting.

  3. “Okay, $other, my pronouns are: normal, normal’s, normself; use them or else!”


(yes, I wrote a generalized hello-sticker-making Perl script using PDF::Cairo…)

3D Cheesecake 18

Apropos of nothing, a mostly-complete fan-translation of the original web-novels for Restaurant To Another World is available. While there’s cheesecake in these stories, it’s the literal sort, not involving the female cast. The more familiar form of cheesecake was apparently anime-original, dropped in at intervals to make sure the audience was paying attention.


Pixiv artists I follow

I currently have 1,596 illustrations bookmarked on Pixiv. Almost all of those are from images included in my various cheesecake posts.

Periodically I update my follow list to include anyone I’ve blogged more than 3 images by. After the most recent update, that brings me to 325, listed alphabetically after the jump (recommended if you’re NSFW-shy, since clicking on either of the links above will fill your screen with cheesecake and other delights).

(and, no, I don’t have Brickmuppet’s Boy Problems, mostly because advertising on the Internet is something that happens to other people; every once in a while I see what popular sites like ZDnet look like for people without ad-blockers, and I run away screaming)


Best. Day. Ever.


If I made an AMV… (2)


…it would set scenes of Rory Mercury to Biyuden’s Jajauma Paradise:

The lyrics translation is iffy (particularly handling attributive verbs and te-form), but it should suffice to know that, in context, jajauma means “spirited filly”.

Itami Hoihoi!

Fear the cute ones!

Besides the sheer cuteness, this picture is notable for including an amusing conceptual tag, 伊丹ホイホイ = “Itami (Our Hero) trap”, from the popular “Gokiburi Hoi-hoi” cockroach trap.

This is the only acceptable kind of trap in anime.

PDF::Cairo update

New version of PDF::Cairo uploaded to CPAN and Github. Mostly bug fixes uncovered by automated testing on Linux/BSD distros that have really old libraries, but also new autosize() and extents() text methods, as well as the hello-my-name-is script example (still fiddling with the command-line option processing on that one…).