“Genuinely skillful use of obscenities is uniformly absent on the Internet.”

— Karl Kleinpaste

Now with mask support!


Tiny site tweak

The multi-topic “fun” posts I’ve been doing for a while led me to finally figure out the rendering hooks that were made possible by switching Hugo to use the Goldmark markdown renderer, and I added itty-bitty permalink icons to every H3 header, which is the standard section break I use.

It also supports hooks for images, so I think I’ll try adding them to the cheesecake posts. Because it’s a hook, it would be retroactive for all the ones I did in the past, which is a better way to refer to them than my current hack of adding “picN” to the alt text. Not today, though; the headers were an easy hack I could do between bouts of packing and pitching.

I found that the one-second delay of using hugo list all to randomize my top quotes was too much for my workflow, since I do a lot of preview runs with a subset of the site as I’m composing new entries. So I wrote a little Perl script to open every markdown file in the quotes directory, parse the TOML metadata, and check for draft/expired ones. This was faster, but still surprisingly slow.

Sure enough, the standard TOML module is pure-Perl. Downloading the C-library-based TOML::XS module and switching to it (not API-compatible with the regular module!) dropped the runtime to less than a tenth of a second.

Sadly, my attempt to file a feature request to add support for a single-section option to hugo list was met with obfuscating stupidity from someone who simply couldn’t accept that the command could ever possibly be slow in any environment at any scale.

(picture is unrelated, but makes a nice antidote to obfuscating stupidity)

Nothing against Apple…

Apple is being attacked across the world for its “everything within Apple, nothing outside Apple, nothing with QA” walled-garden approach to computing. This week, it’s iCloud private relay, which protects i{,Pad}OS users from everyone except Apple.

Governments resent Apple in the same way they resent organized crime. They can’t stand competition.

(picture is unrelated, but may provide aid and comfort to people who enjoy a little white-hair/dark-skin in their cheesecake)

Speaking of Apple…

Today, March 14 2022, Apple released iOS 15.4 with FaceID Mask Unlock, which would have been really useful a year or so ago.

(speaking of things that are arriving way too late to be useful, here’s decent fan-art of Rit from No true comrade)

“…for the end of that game is oppression and shame…”

To celebrate the Brandom regime’s attempts to Make Iran Great Again, the Iranian military fired missiles at a US consulate.

Apparently they’re unhappy about the late ice cream, too.

Fifty Shades Of Hugo


Update Your Firmware, HP edition

Why, yes, the increasing complexity of computer firmware has created a new market in firmware analysis, as evidenced by Binarly finds 16 serious vulnerability in HP firmware. I’m not the least bit surprised, since this sort of low-level code is generally maintained by Some Cranky Old Guy who isn’t given nearly enough resources or time, I just want to know if the company’s name is pronounced bi-gnarly, bin-arly, or perhaps an Irish-ish b’narly.

Realist Hero, episode 23

Note to Our Producers: when Our Realist Hero casually says that he wiped out gangs and illegal drugs while cleaning up the slums, it does not count as lampshading to have another character say “did he really say he did that?” and then move on. You’re just pointing out how ludicrous it is for him to announce that his otherworldly book-knowledge has handwaved away a serious problem.

Also, “I’ll skip the explanation because it’s complicated”?!? Yeah, that’s a first for this talky series. At least we got to check in with Our Bold Raccoon Girl and the man she’s raising.

(picture is unrelated except for the presence of underrim glasses…)

Kuroitsu, episode 9

In which The Days Are Just Packed, and We Thank You For Your Service. Seriously, there’s so much going on in this one that I won’t even try to summarize, and the only missing member of the extended cast is Our Part-Time Hero.

Screencaps from last week’s episode, courtesy of Tenka Seiha’s usual downer of a review.

Breezy storytelling…

I checked in on WTF? I turned into an OP loli wizard! this week, and it starts with a female character shoving her head up Our Loli-Wizard’s miniskirt and asking why she doesn’t wear panties. Later, she accompanies a party of soldiers on the road, walking on air above them to scout, and the writers completely forgot about her going commando, even when the soldiers are looking up to talk to her. They could have at least tossed in a shot of one guy in the back enjoying the view. And, yes, she continues to face no challenge to her unparalleled OP-ness.

Still later, she travels to a magical forest while following the trail of a missing ally, only to be bullied by mind-reading dryads who pick up her desperate need to pee and demand she fertilize the plants with her high-mana urine. (this is apparently the second time her tiny bladder has been a plot point)

I… won’t be checking on it again.

(unrelated loli is unrelated)

Meanwhile, on Amazon,

The top two ebooks recommended to me right now are Instead of becoming a hero, I’ve reincarnated as a billionaire and Reincarnated as a dragon hatchling. For the hoard!

The top three electronics devices recommended are a pseudo-Switch, a psuedo-Amiga, and a pseudo-C64.

Apple AI at its finest…

…also Apple QA.

I went to rip the soundtrack CD from Interspecies Reviewers, after using up my Amazon store credit to overcome the painful price. My Macbook simply could not successfully read the disc without erroring out after one or two tracks (with several completely different USB CD/DVD/Bluray players), but it could load album art, and it chose… Fifty Shades of Gray.

All three players mounted it successfully on my HP Aero 13, and gave me no trouble ripping the disc.

Dynamic Static Page Error

I accidentally broke the page structure here for a while. I had set a few quotes to expire to take them out of the top rotation, but hadn’t tested it against the script that randomizes them.

Back in The Before Times of 2019, I replaced my original scheme for random top quotes with a new data-driven one that ran faster. In my makefile for updating the blog, I added a script that groveled over the file system to find Markdown files in the quotes directory, shuffled their order, and added the filenames to a TOML array, so that their contents could be inserted with Hugo’s page-lookup function. But that just meant that each site build had different quotes, that would remain the same for hours or days.

To make them update more frequently than that, I added very specific CSS around the top-quote section, so that a fraction-of-a-second server-side script could pull them out of all ~540 index pages, shuffle them, and put them back in a new order. The result is that every quote gets used at least once, the subset that gets used a second time changes every build, and the quote on each index page changes every three minutes.

This works great until you expire some of the quotes, so that they’re still in the source file system, but don’t get included in the build for the page-lookup function.

Hugo Is Not A Database, but it does include a command to dump a CSV file containing the details of all of your content, which can be parsed to find draft and expired entries:

With Miller:

hugo list all | mlr --csv --headerless-csv-output \
	filter '$expiryDate == "0001-01-01T00:00:00Z" && 
		$draft == "false" && 
		$path =~ "^content/quotes"' \
	then cut -f path | sed -e 's/^content\///' > $TMP

With q:

hugo list all | 
	q -Hd, 'select path from - where 
		expiryDate = "0001-01-01T00:00:00Z" and 
		draft = "false" and 
		path like "content/quotes%"' |
	sed -e 's/^content\///' > $TMP

Takes about a second to extract the list of valid top quotes. And now I don’t have missing quotes corrupting the DOM structure on random index pages, which then end up percolating up to the main page.

…then of course I forgot to turn the cron job back on, so the same quote was on the main page for two days…

On the bright side, the latest release of Hugo renders this site 28% faster. Most users are seeing at least a 20% improvement and some are seeing 50% or more. Which can save minutes or hours for really large sites, but in my case is a still-respectable 5 seconds.

(note that almost every time someone complains on the forums about build time, they’ve designed or borrowed extremely expensive templates filled with lookups and cross-references that explode at scale)

(troubleshooting catgirl maid is unrelated, and probably doesn’t do windows)

More fun with spam…

This one went to my CPAN email address, so apparently my Perl code is very sexy!

From: Evangelist Cynthia
Subject: Sophia been all over me about getting in touch with you

Hi Handsome,

I am online today and was about to close my account since I already got a life partner here on facebook that was when my cousin, Sophia came across your profile as she was actually standing behind me, she has been all over me about getting in touch with you. she said you seems like a man she will like to know better. She lives in the same area as you. She was only here for a job inspection. You don’t need to write back here as I will be deactivating my account on this site soon. This is her direct email: (gmail acct removed)

I hope you get in touch with her and I promise you won’t regret anything. I believe you will thank me later for this.

My warms regards.
Evangelist Cynthia Stout.

The body text assumes this email address is tied to a Facebook account, so they purchased their contact list from the lowest bidder. And I’m not sure if “evangelist” is supposed to be a name, an occupation, or a religious signifier.

The actual sender is a Russian domain, laundered through pobox.com, so my spam filter is helping me boycott Russian con women!

(picture is unrelated, and I’m not sure I want to know what’s going on here)

Old Man Yells At Cloud

At the Democrat Retreat (which, sadly, does not involve them abandoning the US and fleeing to Cuba), Joe Biden lost his temper because the ice cream was late people were blaming inflation on his administration’s insanely reckless spending.

The ice cream was, in fact, late. The price increases, however, came early.

“Be careful how you wish...”


(classical reference)

A Series Of Fortunate Growth Spurts

I wouldn’t say I missed the Jim Carrey version of Lemony Snicket’s A Series Of Unfortunate Events. That would imply some desire to see it. However, recently the Netflix miniseries with Neil Patrick Harris popped up on my recommendations, so I gave it a shot.

…and ended up bingeing all three seasons over a long weekend. It’s quite good, with Patrick Warburton narrating, Nathan Fillion fillioning, and brief appearances by familiar faces like Morena Baccarin, David Alan Grier, and Don Johnson.

But I’m here to highlight lead actress Malina Weissman, an extremely pretty young girl who was 13 when the first season was filmed. An appropriate age for her 14-year-old character, but after filming the first season she didn’t so much blossom as explode, to the point that the costuming became a source of comedy for me. They worked very hard to mask her curves, and weren’t quite up to the challenge.

(picture is unrelated, because thankfully no attempt was made to hide Raphtalia’s sudden growth spurt)

It came from BEYOOOOONDS…

I didn’t recognize this as a Hello!Project group at first, because the costumes lack almost all of the familiar elements. They each have slightly different outfits and hair styles, but where’s the taffeta, the bedazzling, the boots, and the feathers?

(pictures are safe for work, but the site is emphatically NOT; and disable Javascript before going there)

Arceus design flaw…

There’s a not-quite-death penalty in this game for whenever you fall off a cliff or get curb-stomped by wild pokemon: you lose some items from your inventory. The good news is that you can get them back. The bad news is that you have to go online, with a Nintendo online subscription, and wait for another player to find them. They receive a reward used to buy stuff at one of the vendors, and even if you’re not online, the game will generate NPC “lost satchels” for you to find, although not in the same quantity.

They don’t actually tell you that you have to be online to get your stuff back, but that’s not the flaw. The flaw is that it only works while there are a lot of other people playing the game who are at the right level to reach your corpse satchel. Unless they release a patch, this feature will degrade in functionality over time.

The workaround is to have two Switches and two copies of the game, so that you can find each other’s satchels via local networking. This will also be the only way to reliably farm satchels once there are few active players; you’ll just have to keep suiciding to generate satchels for each other.

Isekai From The Depths Of Pixiv

The tall, lush-bodied blonde was dressed like some kind of wizard. An elf wizard, judging from the ears.

Must be a cosplay event this weekend, I thought, drinking in the sight. She was gorgeous, stacked, and squeezed into a costume that left very little to the imagination, and every man within fifty yards was imagining as hard as I was. I heard several car crashes as she jiggled down the sidewalk and stepped into the street.

Wait. My lust-fuzzed brain suddenly snapped into focus as I realized she hadn’t checked for traffic and… truck! My body responded on its own and I shouted a warning and raced to rescue her.

She whipped her head around as if she were surprised I could see her, her golden eyes widening. I’m not gonna make it, I thought, as the truck and I competed to reach her, but then my hands sank into her massive boobs and I pushed, and Yes, she’s… wham!

Our bodies went flying, hers to safety, mine to oblivion. I was going to die a virgin, but at least I was a hero, right? As the life faded from my broken body, I heard the click-click-click of her high heels, and through a bloody haze I could see her swaying towards me. She kneeled down, kissed me on the lips, and in a husky, thickly-accented voice, said, “Thank you, brave one. You died to save me, and so I grant you a wish for a new life elsewhere.”

Her kiss gave me just enough strength to speak my final words, which seemed to shock her; oh come on, doesn’t she know what men are like?.

As I sank into the darkness, I felt a sudden chill, and thought, maybe I should have been more specific…

“That time I rescued a wizard from a runaway truck and was granted my wish to live in a fantasy world with a harem of sexy monster girls but forgot to specify that I’d be their master so she turned me into a busty bunny-girl futa and sold me to a tentacle monster”

I figure it would take three minutes, tops, to find matching cover art.

(The Witch of the Highlands is definitely unrelated, and would never, ever do something like that!)

Another first…

I haven’t gotten any spam in Japanese for quite a while, and I honestly miss it a little, since it gave some rather entertaining insights into what pitches were considered likely to succeed (“wealthy younger women will pay you for sex”, “we’ll hook you up with high-school runaways who’ll do anything for the chance to sleep in a bed”, etc).

Sadly, today’s junk-folder refugee is just one of those spams:

良い一日、

私はこの手紙が非常に驚くべきことにあなたに会うかもしれないことを知っています。 しかし、それはただ
外国人パートナーの緊急の必要性。 知りたいのですが
この提案は
あなたの受け入れに役立ちます。 私はあなたの誠実な助けが必要です
私の人道的プロジェクトを実現します。
残念ながら、私は末期症状で死にかけています。 お金を使ってほしい
私の相続は350万ドルです
($ 3,150,000.00)あなたがそれを受け取ったときにあなたの国の慈善団体のために
お金。 このプロジェクトをあなたと一緒に終えることができれば幸いです
私が死ぬ前に。
あなたが私の提案に答えるとき、より多くの情報があなたに与えられます。
あなたの肯定的な反応は高く評価されます。
(mrs.jenniferabas@gmail.com)

あなたの妹、
ジェニフィアス・アッバス夫人、

Their Japanese is no better than their English…

(picture is unrelated, but she did perk up when she heard ‘futa’…)

30 characters is enough for anybody...


I’m pretty sure now that the root cause for my recent Atlassian clusterfail, which support had us work around by replacing hostnames with IP addresses in both setenv.sh and cluster.properties, was that the hostnames were too long.

Not the fully-qualified domain name, just the hostname component. We have a fairly verbose naming convention, where you can search for things like “jira-appserver” and see all environments, or “sandbox-jira-app” and see just the ones in a single cluster (both of these are useful for clustershell incantations). Since we’re doing an A/B cutover for this upgrade, the new sandbox machines also got the application version added to their hostnames, pushing them to 31 characters.

The official limit is 63, so either someone wasn’t reading the standard, or they’re internally using a double-byte encoding like UTF-16, possibly for Windows compatibility reasons.

(Komi-san wants a second opinion)

The annoying symptom for this failure is that a bunch of the core add-ons simply refuse to load, taking a full 5 minutes to time out during startup. This is also the way it fails if you leave out the allegedly-optional ehcache.* options in cluster.properties, even when upgrading the first node.

By the way, when upgrading a Jira cluster, the node that comes up first (which does the heavy lifting for the upgrade) must be active in the load-balancer that answers to the official base URL, because when the other nodes come up, that’s the hostname they’ll contact to ask about the upgrade status, even though the cluster members are stored in the database so they know how to reach it directly. If you don’t want users to try to log in during the upgrade, you have to tinker with your load-balancer config so that only the other nodes get directed to the upgraded one, while everyone else still gets a “go away” page.

(pictures are related, in the sense of “every time I shoot down one problem with this upgrade, three more appear out of nowhere”)

Sleep-booting


How A Bold Raccoon-Girl Slave Rebuilt Society, episode 22

In which Our Realist Hero is reduced to a framing device for a side story about what happens when a nice guy inherits a slave shop.

(no, not that raccoon-girl slave, but still quite tasty)

Kuroitsu, episode 8

“Leave him alone, he’s master-blading!” (classical reference)

In which Our Magical Girls go undercover (but sadly not under the covers), Our Evil Chief Of Staff does his job quite well, Our Evil Researchers take two steps forward and three back, The Temp On The Mantelpiece almost goes off, and Our Hero lost the manual (classical reference courtesy of Pixy).

In keeping with my new tradition of giving up on fan-art for this show, here are some screenshots from last week’s episode, featuring the delicious-but-inedible Melty:

Separation of Work and Porn

A vtuber shared his entire screen by mistake, and eagle-eyed fans spotted his stash. The story doesn’t make clear whether it was “porn, downloaded illegally” or “illegal porn, downloaded”, but either way, he’s off for a few weeks.

…and that’s one of the reasons that I carried two laptops to work, back when I had an office to go to. Porn is the most obvious mistake, but there are a lot of other over-sharing possibilities, even before you take into account online conferencing and streaming to people outside your company. All the streamers at that company are now having their work machines thoroughly examined by IT/management, which is something you never want to happen.

Speaking of porn…

Once upon a time, I had a manager with a strong interest in adult materials, which were often viewed on his company-owned Mac laptop. One day, he stopped by in a panic, and asked me to quickly-and-quietly retrieve the DVD that was stuck in it, because not only wouldn’t it eject, but at random intervals the OS re-recognized it and auto-started the DVD player. And he was set to present in front of the execs in a few hours.

The drive had broken in a fashion that left a metal tab of some sort blocking the opening, so whenever it tried to eject, it would stop, pull it back in, and start the cycle all over again. Fortunately for him, I had the correct screwdrivers to not only open the case, but also the drive itself. When I pulled the top off, I was greeted with a picture of a naked filipina and the title Manila Milkshakes.

(Zelda doesn’t know what that means, but she’s quite certain it’s naughty)

Also speaking of porn…

I took a look at the Elgato FaceCam on Amazon, which promises pro-quality optics and autofocus for improved streaming. The “customers who viewed this item also viewed” list consisted entirely of sports bras.

(definitely not a sports bra!)

Sleep, reboot, same difference

I closed the lid on my MacBook Air last night, and once again it rebooted when I opened it this morning, once again without the expected dialog box reporting a reason for it to have done so. If I weren’t so busy packing and cleaning for the move, I’d spend the entire weekend migrating everything else off of it over to the HP Aero 13. Grrr.

The annoying thing is that now that I’ve stopped using the Time Machine backups that take hours-to-days, a reboot convinces Carbon Copy Cloner to do its next incremental by scanning the entire file system rather than using the quick update method. Which is still much, much faster than TM, but hits the memory just a little too hard, causing wireless-mouse lag and slow response when switching windows; more precisely, vm_stat suggests that the kernel is constantly compressing and decompressing pages in virtual memory. SuperDuper, on the other hand, hits the CPU hard and leaves the memory alone, spinning up the fans during a backup but not affecting performance at all.

It was nice to go old-school at work yesterday and debug a problem using tail -f and tcpdump, but it wouldn’t have been necessary if the VM team hadn’t silently migrated a key engineering resource to a cluster in a new data center during business hours. And by silently, I mean “we found out the next day when stalled mirrors shut down the CI pipeline”.

Seems there was a tiny routing difference for IPv6 traffic between the two data centers, so that return packets went “somewhere”. Forcing the traffic to go via IPv4 instantly fixed the problem, and since it was a Friday afternoon, we left that workaround in place while they sort things out.

(Raphtalia would like a few words with the VM team…)

Okay, that’s a new one…

Got an identity-theft spam in my junk mailbox today that reverses the usual direction:

Greetings to you my beloved one.
My name is Mrs. Edith Benson from the USA, a widow suffering from cancer disease.

My dear I want to donate some part of my inheritance US$6.5 million to you for charity project in your country.

please reply back for more details.

Mrs. Edith Benson

This was sent to one of my gmail addresses; reply-to is also gmail, but actual sender is a different, phony gmail address routed through the common spam-whore pobox.com.

(picture is most definitely unrelated)

Pixiv: Arknights


I know only two things about the mobile game Arknights: it has a terrible web site, and fan-artists love to draw the female characters.

more...

Happa ichimai areba ii!


House status: mine.

Now deploying… Yatta!

(fun fact: there’s a reason this song feels a lot like classic Morning Musume (and, no, that’s not a flattering look for any of them, especially with the aggressive ring-lighting), right down to the woo-woo-woo bit; same guy)

Shifting the closing date to the beginning of March set my first mortgage payment for the end of April, which means I’ll only have one month of paying for both houses if the old one sells quickly. Fingers crossed the current rabid housing bubble continues until at least June!

Anime status: crunchy

Sony is consolidating Funimation into Crunchyroll, not, as many feared, the other way around. There’s a list up for things that have already moved over, although most of them are dubs.

Dictionary status: undead

Slashdot has a headline about “animal-free dairy milk”. I expect woke dictionaries have received their marching orders, and soon the definition of “dairy” will always have been at war with Eastasia.

(free-animal dairy is unrelated)

Pokemon status: Japanese

I decided to step back from the do-it-again-stupid final boss fight in Arceus for a while and start a second run-through on my Switch Lite, in Japanese. It’s refreshingly difficult compared to Sword/Shield, where the game was so linear and the menus so fixed that you only had to recognize maybe 10 words, and then you could play through to the end in any language.

Arceus, on the other hand, has a variety of RPG-ish side quests, many of which gate access to features of the game. For a simple example, the inventory at the general stores is expanded by turning in specific items. As a result, in any language you’re not fluent in, you’ll need to lean on a site like Serebii to figure out the helpfully-numbered requests.

The most interesting thing about the Japanese version is that they didn’t have room to include the damage/accuracy details for your attack moves on the combat screen, so you have to actually remember what they do, making the game a bit harder even if you do read Japanese.

Sibling Rivalry


Backstory and worldbuilding

In the world of Kuroitsu, heroes, monsters, and magical girls are all real, and this is not a secret. Indeed, when (episode7-spoiler), it’s revealed that bad men often prey on cute monster girls because they have no civil rights and can’t complain to the cops. This also suggests that there are a fair number of non-combat monster girls around, at least in Tokyo.

Even in Our Progressive Monster Development Department,

tasty-but-flawed seasonal monster Melty is stored in a file cabinet, conscious, although they do let her reconstitute herself to participate in the office drinking party.

On a lighter note, they haven’t made a fuss about it yet, but it’s an open secret that Our Bento-Making Hero Kenji Sadamaki (Kenshin Blader) is the younger brother of Our Monster-Making Doctor Hajime Sadamaki, making him doubly oblivious to the people responsible for the monsters he fights.

(picture is unrelated; moo)

“Papers, please!”

My gmail account bounced the PDF paperwork from the title company, so they contacted the realtor, who gave them my other email address. Yes, there was a flying trip to the notary. Still on schedule to wrap this up Tuesday afternoon.

Dear Pixy,

Been there.

Done that.

Good luck!

😁

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