Vaxx The Vote!

Victory Over Corona-chan Day!

Joe Biden announced that over 350 million Americans have received the COVID vaccines. This includes approximately 100 million photocopied vaccination records that arrived in unmarked panel trucks, and were stored under tables in the counting room “for later”.

Or maybe he’s just including all 57 states. 😁

(samurai corn-pop is unrelated)

How A Realist Anime Director Padded Out The Runtime

Episode 6 had approximately 20 minutes of as-you-know-Bob, followed by 30 seconds of plot advancement. The credits show the fourth future wife (and she had a cameo already), but they’d have to get through book 4 to properly add her to the collection, and they’re apparently pretty early in book 2 right now. Maybe they’re ending it after crushing the rebellion and hoping for a second cour?

Related, a quick look at Tenka Seiha’s review of the second episode of Jahy-sama confirmed my worst fears: she’s going to spend almost all of her time in annoying-loli form, so not much grown-up Jahy eye-candy. Which is the only attraction. Pass.

Speaking of overly-talky anime, season 2 of Slime Demigod just drags on, and yet the few things that actually happen don’t get enough exposition. I’m sorry, but everyone at the conference should have wet themselves when Rimuru casually invented a spell that rendered national borders obsolete, and then used it at a massive scale twice in one night without any sign of strain. Instead, they don’t react at all.

Dear Amazon,

I’m not loving the new Prime:

“Get delivery tomorrow if you order in the next 10 minutes!”

“Your product may arrive up to four days later than promised.”

Promised for Friday, don’t complain about it until Wednesday. Now that’s what I call service! No, wait, that’s what I call poor service. The US Post Office is involved, naturally, and the tracking status claims it made it to the Salinas PO only to be sent back to San Jose, adding an additional delay.

(I ran out of shocked/enraged Misty pics, so barmaid Jahy-sama it is…)

For the children: don’t buy them iPhones

Apple is in mass-ass-covering mode this week, as they very carefully avoid explaining precisely what their accidentally-leaked new surveillance features are for. So far, the scenarios they’ve come up with for How To Protect The Children sound like they’d be a lot more useful for How To Erase Tiananmen Square. For instance.

However, even if their motives were pure, their intentions noble, and their walls secure against armed government agents, it would still be a bad idea, because Apple has terrible QA.

…but excellent lawyers.

(political fellatio is definitely related)

Look, a unicorn!

I’ve previously complained that Korean glamour models, even the amateurs, all appear to have been trained for ad and catalog work, so that when they try to look sexy, they give off that stiff, bored vibe that says “I’m just here to sell the product”.

So, credit-where-credit-is-due for this lingerie shoot featuring a sweet, smiling, soft-bodied cutie (NSFW! Javascript off!).

Fun with SmartyPants…

In November, 2019, the Hugo static-site generator switched its Markdown processing from Blackfriday to Goldmark, a new library with a real parser that supports rendering hooks that allow you to do things like tag blocks with custom CSS classes. One of the supplied extensions is an attempt at the common automatic conversion of straight quotes to curly quotes, etc. Most implementations of this idea are at least loosely based on Gruber’s SmartyPants Perl script, but since this one is a parser, it’s not hacked together with regexes.

It’s also complete shit at quote-smartening, and that’s as true today as it was when Hugo adopted it. Unfortunately, in the new 0.87 release, Blackfriday is officially deprecated, which means that if I want to continue using supported versions of Hugo, I need to switch to Goldmark.

The Goldmark developer has no interest in improving this aspect of the library; English isn’t his first language, and frankly he doesn’t understand how it’s supposed to work (in an old bug, he admits that it’s implemented in exactly the same way italic/boldface markup is). In nearly two years, no one else has stepped up to fix it (including me; just not interested in learning how to hack on parsers in Go).

Which leaves me with two basic options: run one of the existing scripts to post-processes my entire site after every build, smartening the HTML output, or do a one-time conversion of 4,000+ Markdown files to be pre-smartened, and add a step to my workflow to smarten new blog entries as I create them.

Trying to run the Python implementation of SmartyPants on my HTML took, well, a really long time; I gave up waiting for it to finish. The original Perl version took about 45 seconds, which is more than twice as long as it takes to build the site.

So the only practical choice is to smarten the Markdown source directly. I’ll need to strip out the front-matter, pass the body text through some smartening tool, and then merge them back together.

This turned out to be surprisingly easy, because the reference implementation of CommonMark not only has a decent quote-smartener built in, but can generate Markdown as output, passing through HTML comments. All I really ended up needing to do was convert the front-matter delimiters into an HTML comment block so they get passed through untouched, and then convert them back at the end.

Best part: 30 seconds to do the whole repo. Spot-checking the output, it looks pretty good, but it does insert mostly-gratuitous backslashes in a number of places to conform to the CommonMark standard, which creates a bit of a problem when it modifies the arguments to a Hugo shortcode, such as the URL of every picture I post. I can turn those into HTML comments, too, but it ends up inserting an extra blank line sometimes, which might break a few things. And it breaks definition lists, which is something that the CommonMark folks still can’t agree on a syntax for; fortunately I’ve only used that maybe 10 times.

I’ll probably convert everything next week after poking around with a full build. Might be a few more edge cases to sort out that require adjusting the script, which is why I version all my content with Mercurial.

(loosely related, in a “Brickmuppet physical therapy” kind of way…)

Comments via Isso

Markdown formatting and simple HTML accepted.

Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.