“If this power could be used for good, it wouldn’t be this power.”

— Teresa Nielsen Hayden

The New Perl Way: “You’re doing it wrong”

use CGI;

“I’m sorry, Dave, I can’t do that.”

cpanm CGI

“You really shouldn’t use that any more. It’s bad for you.”

perldoc CGI

“The rationale for this decision is that CGI.pm is no longer considered good practice for developing web applications, including quick prototyping and small web scripts. There are far better, cleaner, quicker, easier, safer, more scalable, more extensible, more modern alternatives available at this point in time. These will be documented with CGI::Alternatives.”

perldoc CGI::Alternatives

No documentation found for “CGI::Alternatives”.

cpanm CGI::Alternatives
perldoc CGI::Alternatives

“Let me build this strawman that doesn’t actually make good use of CGI.pm to show you how you can easily switch to one of half a dozen different frameworks that let you use half a dozen different templating systems launched with half a dozen different embedded web servers, and replace your self-contained 100-line CGI script with half a dozen files located in half a dozen directories. For more fun, my sample code gets mangled if you try to view it as a manpage, so you really should download the raw file from CPAN.”

cpanm --uninstall CGI::Alternatives
cpanm Dancer2
perldoc Dancer2
cpanm --uninstall Dancer2
cpanm Mojolicious
perldoc Mojolicious
perldoc Mojolicious::Lite

use Mojolicious::Lite;
plugin CGI => [ '/' => "trivialscript.cgi" ];

use CGI;


Dear Amazon,

I think you’re pushing your personal kinks a little too hard.

Shall-Issue Open Carry


Definition of a good time

You’ve spent the past two weeks being yelled at by a user for not getting their external partner’s incoming connection to work

and you’ve had a tcpdump running for an entire week showing that no connection attempts have been made from the IP addresses the partner provided

and they schedule a conference call at a time that’s convenient for the partner’s third-world contractors

and they confirm their IP addresses in the chat but the test fails again

and your tcpdump shows them coming in from a completely different IP address

and they start to wrap up the meeting saying they’ll contact their network team who hadn’t been invited and reschedule for the next day

and you have to yell into the microphone to tell them to try again right now since you’ve just added their real IP address to the firewall

and they confirm that it works but continue talking about who’s going to do what and how they will communicate the results and who will be responsible for the next step and oh fuck who cares you stopped listening two minutes ago

and you close the multiple tickets created by the user who doesn’t understand that CC’ing the helpdesk on every email keeps creating new tickets

and the partner emails a list of 26 possible IP addresses that does not include the two they originally claimed were the only ones they use

and then they try to schedule another meeting anyway and you reject the invite twice

and you go back to bed.

…and reach for earplugs because the neighbor puts his dog out when he goes to work and it barks and whines all day long and sounds remarkably like one of your users.

Stop Words

That is, “when you hear these words, you know it’s safe to stop taking someone seriously”. In no particular order:

  • Cis
  • Male Gaze
  • Intersectional
  • Misgendering
  • (qualifier) Justice
  • Gender Binary
  • Cultural Appropriation
  • Woke
  • Mansplaining
  • Misogyny
  • Heteropatriarchy
  • Diversity
  • Rape Culture
  • Zionist
  • Manspreading
  • (whatever) Is A Social Construct
  • Whitewashing
  • Triggering
  • (made-up personal pronoun)
  • Privilege
  • (whatever) Denier
  • Disparate Impact
  • Heteronormative
  • Patriarchy
  • Fascist
  • Structural (whatever)
  • Homophobia
  • Inclusive
  • Gender Identity
  • Nazi
  • Transphobia

What did I leave out?

(note that it is possible to use some of these words and phrases in a way that is not meaningless blather, but that’s not the way to bet)


  • Sustainable
  • Organic
  • Vegan
  • Fair Trade
  • GMO-Free
  • Gluten-Free
  • (insert latest virtue-signaling buzzword here)
  • Agency
  • Problematic
  • No True Scotsman (fallacy most often committed by people who are accusing others of committing it…)
  • Ally
  • (whatever) Traitor
  • Toxic (whatever)
  • Voting Against Their Interests (which always means “voting against my interests”)
  • The Right/Wrong Side Of History

How could I have forgotten?!?

  • Dogwhistle

…and from the reliably-fucked-up virtue-signalers at boingboing

  • Heterosexism
  • Chauvinist

(linking to an article on an “SF” site that must come with a built-in fainting couch; seriously, the brief excerpt starts with this hilariously nonsensical statement: “the heterosexism goggles, which derange content via chauvinist interpretive paradigms”)

I got nuthin’…

…so here’s a nice pair of melons.


Curry Udon target practice

I need to order these for me and my sister, for our next trip to Japan…


“Points all her own…”

“​…sittin’ way up high”

Never mind the general babehood and the token mod-black-chick amazon in the background, check out the uplifting fashions our heroes and their captor are sporting. Paradise Island’s lingerie shops clearly feature Sufficiently Advanced Technology, enough so that I wonder if the Invisible Plane was just a spinoff product.


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