Shy and entropy


Shy 2, episode 4

I Shy With My Little Eye, something beginning with the letter P. No, not the plot, the planning meeting. I think someone tripped and got Slime all over the script.

This week wraps up the sleepover, has Dark Ninja Gal kick off the villainy, and then… the heroes spend the rest of the episode getting together to talk about what they’re going to about it. Our Shy Hero Shy is vigorously shoved into a leadership role, which triggers a panic attack and a series of confidence-builders, and ends with the Shy Strike Team heading out in a classic power walk.

Verdict: this was basically a 20-minute transition between last week’s cute girls doing cute things and next week’s heroing. The good news is no Stigma and no Kufufu.

Red Cat Ramen, episode 4

Cat naps, poster girl, cat at play. Also, ramen is not a low-calorie food.

Verdict: No real lol moment like last week, but amusing.

Dear Crunchyroll,

I hope you’re not spending money on AI for this…

Longpass: long-overdue rewrite

I’m so old that I can remember when Github could render pages in under a second for a small repo. Aaaaaanyway, since I’ll never have a use for Ruby again, and kids today are terrified of Perl and most comfortable with Python, I completely rewrote my old longpass flexible passphrase generator, taking the time to clean out all the cruft and learn the modern Python 3 way of doing things. And I even had fun doing it.

The actual guts of it is trivial; most of the work is in the setup:

for c in range(args.count):
    result = []
    for i in pattern_elements:
        result.append(secrets.choice(rule.get(i, i)))
    result = collapse(result)
    if args.shuffle:
        random.shuffle(result)
    r = args.joinchar.join(result)
    print(r)

I finally got the entropy calculation right for shuffling. That is, if you select five words from the same list, shuffling them adds 0 entropy, while shuffling words from five different lists adds log2(5!) bits. It’s the middle that’s tricky, where you might select three words from one list, one from a second, and one from a third; I had to refresh my memory of multiset permutations to get the correct answer of log2(5! / (3! * 1! * 1!)), and the primary difficulty was composing a search incantion that did not include the word “multiset”. 😁

Something to add to the repo

I noticed that Github considers it an important part of each project’s “Community Standards” to include a Code of CONduct, of which they offer only two and discourage you from writing your own by not counting that as meeting the checkbox requirement.

So I think it’s finally time to use this…

Road House Code of Conduct

(classical reference)

Dalton: “All right. People who really want to have a good time won’t come to a slaughterhouse. We’ve got entirely too many troublemakers here. Too many 40-year-old adolescents, felons, power-drinkers, and trustees of modern chemistry. It’s going to change.”

Bouncer 1: “Man, that sure sounds good, but a lot of the guys who come in here, we can’t handle one-on-one. Even two-on-one.”

Dalton: “Don’t worry about it. All you have to do is follow three simple rules.”

“One, never underestimate your opponent. Expect the unexpected.”

“Two, take it outside. Never start anything inside the bar, unless it’s absolutely necessary.”

“And three, be nice.”

Bouncer 2: “Come on.”

Dalton: “If somebody gets in your face and calls you a cocksucker, I want you to be nice.”

Bouncer 2: “Okay.”

Dalton: “Ask him to walk. Be nice. If he won’t walk, walk him, but be nice. If you can’t walk him, one of the others will help you, and you’ll both be nice.”

“I want you to remember that it’s a job. It’s nothing personal.”

Bouncer 3: “Uh-huh. Bein’ called a cocksucker isn’t personal?”

Dalton: “No. It’s two nouns combined to elicit a prescribed response.”

Bouncer 3: “Well, wonder if somebody calls my momma a whore?”

Dalton: “Is she?”

“I want you to be nice, until it’s time to not be nice.”

Bouncer 4: “Well, uh, how’re we supposed to know when that is?”

Dalton: “You won’t, I’ll let you know. You are the bouncers, I am the cooler. All you have to do is watch my back, and each other’s, and take out the trash.”


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.