Subfolders
Latest "Articles" files
home
At Last, A Blog

I'm a hog, and you're a frog: At Last, A Blog

Yes, here it is! I have started a blog page for thoughts a little too timely to be perserved as articles but a little too long-form to be spewed in Indieweb chat.

Nothing on this site is open for public comment because I don't want to deal with spam, but for now, if you have your own website and are set up to send webmentions to reply to anything here, these posts accept them, with my manual approval before they're made public. We'll see how that goes. But, either way, it means I have finally rejoined the social web for real.

As this page will be my social nub, for now, please direct any site-wide webmentions to this page, https://michaelkupietz.com/blog/. The homepage doesn't accept them.

Workshop » Reference Section » Grimoires » IT » Applications » Web Browsers » Plugins » uBlock Origin

Hide comments from blocked users on Reddit with uBlock Origin

Reddit collapses comments from blocked users so you have to click to read them, but does not hide them.

Add this custom rule to uBlock origin to completely hide comments from blocked users.

! https://www.reddit.com - hide blocked user
www.reddit.com##shreddit-comment.relative:has(.text-neutral-content-weak:has-text(Blocked User))

Workshop » Reference Section » Grimoires » IT » Platforms » MacOS » Apps

Things That Don’t Get Firefox To Start Loading Pages Again When It Decides It Doesn’t Want To

Firefox as of v 148 (actually a bit earlier than that, but that's what I'm on right now) frequently decides not to load pages anymore. You enter a URL or click on a link and get the status message "Waiting for [URL]..." and you can wait as long as you care to.

When this begins, your only choice is to restart Firefox.

Here is a list of "solutions" to the problem from around the web, which I have tried and found do not fix the problem:
• Turning off DNS-over-HTTPS in Firefox Settings
• Flushing MacOS's DNS cache.
• Going to about:networking and clearing Firefox's DNS cache
• Going into about:config and changing network.dns.disableIPv6 from false to true
• Opening in "troubleshooting mode" or disabling all extensions
• Turning VPN off
• Turning VPN on

Workshop » Reference Section » Grimoires » IT » Troubleshooting log

Playlist shortcodes not working in Chrome because Lightspeed cache is set to defer jquery

Long story short, I got a message from a user that audio playlists were working in Firefox but not Chrome. The Chrome console had an error that "jQuery" wasn't defined, but typing jQuery into console did show a function definition. Turns out, in Lightspeed Cache's JS Delayed Includes, I had entered the word jquery by itself on a line, with a note to myself that something was causing a browser flash if I didn't do that. But removing this made the playlist shortcodes work on Chrome again. Ergo: don't defer jQuery.

Workshop » Reference Section » Grimoires » IT » Platforms » MacOS » Apps

iOS Shortcut to dictate your shopping list into Reminders.app

I uses this shortcut to dictate my shopping list into the iOS Reminders "Shopping" list. It breaks spoken lists on the word "and" to create separate shopping list items.

So I might run the shortcut, say the phrase "pickles and hot dogs and mustard", and it will add "pickles", "hot dogs", and "mustard" as separate checkbox items to the Shopping list in Reminders. It's handy for rattling off my shopping list as I'm staring into my fridge.

Obviously you need a list called "Shopping" set up in your Reminders app.

This shortcut executes the following steps:

  1. Dictate text - listens for spoken input. Make sure set to '''stop listening after pause'''.
  2. Split Dictated Text by Custom and - splits the text into a list with "and" as the delimiter
  3. Repeat with each item in Split Text - begins the loop that adds…
Workshop » Reference Section » Grimoires » IT » Platforms » MacOS » Networking

SSH into local mac, error “WARNING- REMOTE HOST IDENTIFICATION HAS CHANGED!”

SSHing into a local MacOS machine at address "macbook.local", I suddenly got this:

[code]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ED25519 key sent by the remote host is SHA256:oKCEu3pDdq7xBhSPZwOzR2q0eWTvfphtvn3D4Bjz8v4. Please contact your system administrator. Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /Users/username/.ssh/known_hosts:147 Host key for macbook.local has changed and you have requested strict checking. Host key verification failed.[/code]

The solution was to run ssh-keygen -R macbook.local then try the ssh again. Then it asked me whether or not to accept the key, instead of rejecting it:

[code]$ ssh username@macbook.local The authenticity of host 'macbook.local (fe80::1890:fd32:c304:69cd%en0)' can't be established. ED25519 key fingerprint is SHA256:oKCEu3pDdq7xBhSPZwOzR2q0eWTvfphtvn3D4Bjz8v4.…
Workshop » Reference Section » Grimoires » IT » Platforms » MacOS » Apps

Xbar/BitBar gives “Couldn’t Posix Spawn” for script.

Apple's quarantine system can cause this. Try

[code]chmod +x com.apple.quarantine /path/to/script.sh xattr -d com.apple.quarantine /path/to/script.sh[/code]

In my experience only the xattr is needed but the chmod might help and couldn't hurt.

Workshop » Reference Section » Grimoires » IT » Applications » Web Browsers » CSS

If CSS animations cause a layout shift during rendering, even if they’re on compositable attributes

If CSS animations cause a layout shift even if they're on compositable ettributes, look for clip paths, overflow:hidden, or css filters on them or their ancestors.

Workshop » Reference Section » Grimoires » Trading Education Notes » Explainers, Definitions, & Terminology

Put Options or Collar Can Reset Your Short-Term Capital Gains Holding Period For Stocks To Zero, Or Worse

It's a bit complicated, but under IRS Title 26, most* positions which combine normal stocks and options on that stock which hedge or lower the risk of losses are considered a "straddle" for tax purposes.

https://www.law.cornell.edu/cfr/text/26/1.1092(c)-1:

(a) In general. Section 1092(c) defines a straddle as offsetting positions with respect to personal property. Under section 1092(d)(3)(B)(i)(I), stock is personal property if the stock is part of a straddle that involves an option on that stock or substantially identical stock or securities.

Stocks or options held longer than 12 months may be subject to lower long-term capital gains tax rates. However, if certain option positions are purchased on a later date than the stock, but within the initial 12-month period, this resets the stock's short-term holding period to begin again from zero on the day after the option positions are closed.

So if you hold a stock for…

private » Programming Hacks Used In This Site
Algorithms & Old Lace: LLM Poisoning For Personal Websites

Rage Against The Machine: Algorithms & Old Lace: LLM Poisoning For Personal Websites

Private AIs: They're Watching You

Last year my friends in an Indieweb meetup began to notice that information about them was turning up in LLMs... some comically inaccurate, some uncannily personal. As a group of personal website developers, we knew that much of the information must've been scraped of our website.

It might not be apparent reading my site, but I've always been a little careful about what information I allow about myself on the web. It's near impossible to prevent personal information from leaking out, and my name is unique enough that I'm not hard to find. I had an unfortunate incident with an online stalker a number years ago and since then have always been careful. I also once had a real-life harasser who broke into my home, although that was a much different and more complex situation. But together these made me aware that…

Workshop » Reference Section » Grimoires » IT » Platforms » Linux » Packages » PHP

Enable PHP 8.4 in Apache on Debian

According to the installer, to enable PHP 8.4 FPM in Apache2 do:
a2enmod proxy_fcgi setenvif
a2enconf php8.4-fpm

home » Site Info
Jan 2026—Site under construction, expect problems

Everything Is Broken: Jan 2026—Site under construction, expect problems

I'm currently doing a major refactoring of scripts on the site for performance.

At the moment, many features may be erratic or nonfunctional. Expect problems, things to not work when you click on them, etc.

I'll take this notice down when I'm sure everything is working again. Until then, apologies.

private » Programming Hacks Used In This Site

War And Precedence: Plugin positioning of unpositioned elements that aren’t yet positioned by later-loading stylesheets: A CSS Odyssey

So, I had a crazy problem. You'll notice that there's various draggable elements on this site... such as the "Kupietools" plugin tabs seen at left, the occasional "the site is being worked on right now" notices that pop up, etc. You can drag them around with your mouse.

This is done with a plugin (also available as a standalone javascript module, a few versions behind the plugin as I write this) that retrofits code onto various HTML elements by giving the plugin the classnames it needs to make interactive.

I was doing some optimization on the site loading to speed things up, such as getting WordPress to load a lot of CSS file late so as not to interfere with initial page load stats. (This is a whole art, beyond the scope of this article.)
Suddenly…

Workshop » Reference Section » Grimoires » IT » Platforms » Web » Email setup)

Resolving cloudflare error “The number of lookups on your SPF record exceed the allowed limit of 10. This will result in emails failing SPF authentication”

I got the error "The number of lookups on your SPF record exceed the allowed limit of 10. This will result in emails failing SPF authentication" in my Cloudflare DNS dashboard.

My spx record for, say, kupietz.com was "v=spf1 include:_spf.myEmailHost.com include:kupietz.com ~all"

Turns out, the problem is, every include can get parsed to be multiple servers. the include:kupietz.com apparently causes a recursive loop, creating more than 10 lookups. I updated it to "v=spf1 ip4:[my server's external IP address] include:_spf.google.com ~all", removing the recursive lookup, and adding my server's IP so it can send me administrative notices.

Also today my ISP changed my IP address unexpectedly... all DNS updated.

Workshop » Reference Section » Grimoires » IT » Platforms » Linux » Packages » rsync & rsnapshot

How to backup a WordPress site via SSH

To make a complete local backup of a remote WordPress install over SSH, you need to perform two distinct steps:

  1. Download the files (using rsync).
  2. Export and download the database (using mysqldump piped through ssh).

Here is the step-by-step guide.

Prerequisites
  • SSH Access: You need the username, host (IP or domain), and password (or SSH key) for the remote server.
  • WordPress Path: You need to know where WordPress is installed (e.g., /var/www/html or /home/user/public_html).
  • Database Credentials: You will need the database name, user, and password. (I will show you how to find these below).
Step 1: Find Database Credentials (Optional)

If you don't know your database login details, run this command to read them from your remote wp-config.php file: ssh user@remote-server.com "cat /path/to/wordpress/wp-config.php" | grep 'DB_'

Note the DB_NAME, DB_USER, and DB_PASSWORD for Step 2.

Step 2: Download the Database (SQL Dump)…
Writing » Topical Writing
A Milestone Passed: Brief Thoughts On AI’s Increasingly Convincing Simulation of Humanness

¡AI Caramba!: A Milestone Passed: Brief Thoughts On AI’s Increasingly Convincing Simulation of Humanness

Oct. 11, 2024

Those who've spoken to me about it know that I, through much firsthand experience, call myself "a huge AI enthusiast and skeptic". Generative AI is an amazing technology that has personally benefitted me in ways that were strictly science fiction just a few years ago—but, lot of unmerited claims are made, and a lot of trust put in it that isn't really justified by the technology.

But then there's yesterday's article in Ars Technica.

As a technologist, there are times I remember seeing news articles that seemed to me to really show we've passed a technological benchmark, just things I noticed were the first time I saw things take a new step. This article was that.

The background is this: Google has a new AI called NotebookLM that, when fed material, generates a simulated audio podcast of two very stereotypical podcasters discussing it. I…

Workshop » Reference Section » Grimoires » Trading Education Notes » Hypotheses to be tested

Size Down

I heard an interview with a trader (https://www.youtube.com/watch?v=1ETvTftY-tw) who never takes a trade that he is not willing to accept a complete loss on. I'm thinking about that PLTR protective bear spread that I sold when it was halfway to a $600 loss,, and price moved so it would have ended far in profit. By his philosophy: I should have halved the profit, not done that. I got greedy. His way of thinking is I should have taken half the size spread instead or not taken the trade at all. But I don't know, because it was protective... I was trying to protect against a loss. (Actually I should have used a collar.) In another video, this same guy said "Stop swinging for home runs. Start stacking small trades." Which fits.

He said "I only enter trades where if it goes to zero, I'm still good." He's limiting…

Workshop » Reference Section » Grimoires » Trading Education Notes » Hypotheses to be tested

Get Really Good At One Thing

Everybody seems to say this. For me it could be the strategy I've been working on paper trading lately. But everyone says lack of focus will cost you.

Workshop » Reference Section » Grimoires » Trading Education Notes » Hypotheses to be tested

Patience

You need patience. You can't say "I don't want to wait, I might miss the trade." You wait for confirmation and then only get in if you didn't miss the trade.

Lack of confirmation doesn't mean you're not wrong. Nor does confirmation mean you're right. But being right by not waiting for confirmation will cost you. You can't fomo the money you miss by doing this.

Workshop » Reference Section » Grimoires » Trading Education Notes » Explainers, Definitions, & Terminology

Open Interest

Open interest in options is how many live contracts are currently held.

Larry Williams points out that when there's a lot of open interest, there's nobody left to buy. It's not necessarily bullish. In fact it depends whose interest is open—institutional is bullish. Retail is bearish because they don't know what they're doing. https://www.youtube.com/watch?v=Qp6S0Onz_iw

Workshop » Works In Progress » Writing Works in Progress » The Five-Ingredient Cookbook

Easy Good Fake Custard

A favorite snack of mine—feels like junk food, but not too bad, filling, and super-easy.

Take about 12oz vanilla yogurt. I use cream-top full-fat yogurt.

Add a couple of splashes chocolate extract. You have to be careful, unlike real chocolate, more chocolate extract is not better... it's a little tart. Ideally I suppose you could just use unsweetened cocoa powder, I'm particular to the Hershey's unsweetened dark cocoa, but the store over here has been out lately.

Two reasonably heaping teaspoons of coconut flour.

Mix it all together really well.

And that's it! The coconut flour gives it rich texture and a nice flavor, which combines well with the chocolate and vanilla. I like to eat it with a very small spoon, so I can savor it. It's not that much like custard, but, it manages to hit enough of the same notes that it's a pretty…

Visual Art » Generative Illustrations » Interesting Leftovers & Bonus Galleries

Oddfellow Outtakes

Posted for a friend, here's all the sets of images I generated working on "You Can Tuna Oddfellow, But….", from which the final gallery was selected.

Writing » Anecdotal Evidence (True Stories) » Essay-Length Memoirs
Forever In My Heart: Experiencing Jimi

A Memoir From The Road: Forever In My Heart: Experiencing Jimi

November 27, 2018

I'm staying at my dad's place in Florida right now. I've been on the road for a few months.

It struck me this morning, waking up in Dad's guest room, that this past August I let the 25th anniversary of the day I first quit th' job and hit th' road—August 12, 1993—slip by, unremarked upon.

I realized it today because today is the 25th anniversary of November 27 of that same year, nearly as important a day in my personal canon. I slept the night of November 26, 1993 in my car in a rest area outside of Tacoma, WA, as I'd been doing for the better part of a week, and after my customary free cup of morning coffee courtesy of the local VFW post volunteers at the rest area, I headed over to the Last Exit On Brooklyn cafe in Seattle's University District, as…

Visual Art » Generative Illustrations » Experiments & Studies

Character Art Experiment: You Can Tuna Oddfellow, But….

These are some character studies I did of Tuna Oddfellow, the famous Second Life (and, increasingly, real life) alter ago of an old friend.

This is a bit of a long gallery, usually I'd generate a bunch of these and narrow it down to just the favorites. Haven't done that with this yet.

Workshop » Reference Section » Grimoires » Trading Education Notes » Explainers, Definitions, & Terminology

Trading Thesis

Traders refer to a "thesis" a lot. I've come to believe this is just jargon for a hypothesis. "I think it will do this".

Workshop » Reference Section » Grimoires » Trading Education Notes » Options Trading Mindset

Options Are For Strong Conviction Trades

I got some advice recently that I liked: options are for strong conviction trades. "I think this might work" is for shares trades, not options.

"This is working as expected" is when you keep an options trade open.

"This still has a chance it might work as expected" is when you close an options trade. Maybe reopen a smaller position with shares if you absolutely have to gamble.

Pretty much, I'm thinking, whenever you think "It still might..." it's time to close the options trade. The thesis is broken.

Workshop » Works In Progress » Writing Works in Progress

Haikus

Haikuity

This would be haiku,
But it only has two lines.
Oh, wait — nevermind.

This is a haiku.
You can tell because it's, uh,
not everything else?

This, too, is a hai
ku, even though it's labored
I still got it right.

Someday maybe this,
too, will be a haiku, dude,
but it just ain't now, man.

Ere, now I follow
the plain footsteps of Basho
but without his skill.

Indieweb Haikus

Occasionally I visit the Indieweb Chatroom when nobody is there and leave haikus.

the lone web dev sighs
soft, in the empty chat room
indieweb haiku
  8/9/2025

The empty chat room.
The placid textarea
bears no hacker wit.
  11/20/2025

Workshop » Reference Section » Grimoires » IT » Platforms » Linux » Packages » n8n

Starting a temporary instance of N8N accessible via IPv4 over the local network

N8n by default binds to localhost, and even binding it to listen on all interfaces, it still by default listens only for IPv6. You also may want to tell it to not use the Secure Cookie if you don't want to set up an SSL certificate or sign up for their cloud service. Make sure you only have it reachable on the local network if you do this, you don't want to open your instance to the entire world.

N8N_SECURE_COOKIE=false N8N_HOST=0.0.0.0 N8N_LISTEN_ADDRESS=0.0.0.0 npx n8n

Remember to open port 5678 on the machine's firewall if necessary.