Creative Productions, Arrangements and Operations • Art, Technology and Amusements. Software Engineer and certified FileMaker Pro developer and full-stack web developer by day, https//www.kupietz.com
I had a lot of leftover images from the Fireworks Studies gallery that I had to cut out to keep the album focused, but which I liked a little too much to just let languish on my hard driver... a bunch of images that came out more figurative, plus some more fireworks landscapes and abstracts that didn't make the cut of the main album but which I still liked.
Fireworks FigurativesSome extra fireworks image leftovers
I've written a WordPress plugin which gives you a short code [raw]content[/raw] that exempts the enclosed content block from WordPress's wpautop() processing, so you can include raw <style>, <script>, or other html into posts in the code tab of the classic editor without WordPress breaking them by inserting paragraph or line break tags into the code.
[/code] tags in page bodies. Even if it wasn't sometimes it's expedient in WordPress to include custom CSS or javascript in a single post. The correct WordPress way to do this is to enqueue CSS and javascript... but this requires writing PHP, and, if you ask me, is one of those case where the "correct" way of doing things doesn't…
The dot product is the length of vector A projected on vector B (you can imagine this as the length of the shadow that A would cast on B, if a flashlight were shining perpendicularly at B), times the length of vector B. If the two vectors point in directions 90° apart, the dot product is 0 since neither has a component in the other's direction. If they point in the same exact direction, it is just the full length of A times the full length of B.
Mathematically, the dot product of vectors A and B defined as |A| * |B| * Cos θ, where |A| and |B| are the lengths of vectors A and B, and θ is…
Turns out LLMs know me by an old subdomain I forgot to add to cloudflare's tunnel config. Just added it. See saved chat under filename "Arts Kupietz 404 Issue" in local admin folder.
First, cd into the same folder as the file (here called input.md. Then the above will generate titled .md documents from every section that starts with ##.
I have an easygoing interview policy. With a little notice, I'm generally available for interviews on any topic that someone might feel interested in hearing my views on, and enjoy the opportunity to have a topical discussion on any subject of interest.
You can expect opinionated but knowledgeable, lucid, and thoughtful takes, occasionally punctuated, if appropriate to the topic, with a native New Yorker's mordant sense of humor.
I do prefer, in cases of absolutely cold contact, to receive an info sheet about the interview, the publication or media, any special area of interest of editorial slant, and what commercial interests the interview might benefit, before agreeing. It's not a hard and fast requirement but…
This is a work-in-progress inspired by a recent conversation.
In the "separation model" in FileMaker, where data tables live in separate files from an "interface file" containing visual layouts that display the data to the user, used to be widely recommended as a development convention. However, many developers have found that it has significant drawbacks. This is a scratchpad list of those drawbacks as I encounter them.
1. Duplicate relationship graphs
In practice, relationships depend on context, and this is provided by table occurrences that layouts are built on. You may need a portal on a layout... that means the relationship must be in the interface file. But you may have a calculated field in the parent record that counts, summarizes, or otherwise performs an aggregate operation on the related records. That means the relationship must be in the data file. Neither of these is unusual at all. So you…
Today Comcast (boo! hiss!) did some work in my neighborhood and knocked my server offline. I had a long, painful chat session with ChatGPT which ended with me eventually getting set up with cloudflare tunnels instead of using ddclient to update my IP address. The whole chat and terminal session are saved locally in my hard drive in the backups/admin > troubleshooting logs folder in case I ever need to recreate what happened.
On my iPhone, I had Siri dication suddenly start inserting bogus commas everywhere when I never said "comma". You can turn this off by going to settings > general > keyboard > dictation and turning off the auto-punctuation switch.
If your phone and Mac appear to be able to see each other over Airdrop, but every time you try to send photos from your phone to your Mac the phone sits on "waiting" and the photos never transfer, try picking "Force quit..." from the Apple icon menu in the upper left of your window on the Mac, select "Finder", hit the "Relaunch" button, wait a moment for the Finder to restart, and try transferring again.
Here's a CSS customization feature. Have fun getting it to work!
Have to leave the app to customize CSS. Why can't you save snippets in the app?? Overall, it feels like they intentionally make it as difficult and roundabout as possible to use.
And of course I followed the instructions, created the snippet in the secondary text editor Obsidian makes you keep around if you want to do things like this, quit the app, reopened it, and... it didn't work. Because, of course it didn't work. Why would following the instructions WORK, when it's so much more of a waste of time if it doesn't? I'm so glad they made this so complicated. This is so much harder than if they just had a place in the preferences to enter custom CSS, and, who doesn't love things to be as hard as possible?
This is a scratchpad for jotting down the various design rules I use, mostly as I run across violations.
1. No making people read hieroglyphics for core functionality
Somewhere along the way, a lot of people picked up on Steve Jobs's worst idea and ran with it: User interfaces should emphasize looking like something that would look "cool" in a movie, rather than focus on usability. Icons, which were originally meant as a visual cue to help you quickly distinguish functions without having to read text, became monochrome, uniform, abstract, unhelpfully difficult to distinguish from each other, and descriptive text went away so you couldn't know at a glance what they did, leading to millions of man-hours wasted mousing over 20 buttons in a row trying to figure out which one was the "import" button. As a design language, icons went from unique and identifiable to the visual equivalent of…
If you're like me, you loathe and despise the toxic mental ordure that YouTube often plasters up and down the right side of each video page, such as POLITICAL DEMAGOGUERY in MIXED CAPS to PIQUE your OUTRAGE enough to KEEP YOU WATCHING YOUTUBE instead of doing something PRODUCTIVE! [insert thumbnail of someone looking amazed here.]
At a certain point, I started to notice that there was more likely to be things I didn't even want to know existed in that section than anything I actually wanted to see. So, I added a simple rule to the uBlock Origin browser plugin that hides that section of the page:
If the web server is slow, detect a SYN flood by netstat -ant | grep :443 | grep SYN_RECV to show the IP addresses leaving it hanging. Hint: If you're behind a reverse proxy, and that shows IP addresses that aren't the proxy's, then your IP is being hit directly. To find out how many IPs are hanging, do netstat -ant | grep :443 | grep SYN_RECV | wc -l. If you do it a few times and the number is increasing, you may be under attack. If it's over 100, that's suspicious, but manageable and the server can usually handle it, especially if you have SYN cookies activated. If it's over 1000, you're under attack.
Incoming webmentions are accepted by the site's back end but not displayed as of 26 April 2026. Details to follow.
The short version is, I had a lot of problems with the implementation of the webmentions plugin. It relies on comments being turned on, and the site's WordPress theme formatting and displaying them, which in the current theme shows them with virtually no useful information... simply a box listing that a webmention has been received from a given domain, with no indication of its type or content... having meaningless boxes plastered across the bottom of my pages doesn't do anything for me. At some point I would like to participate in webmentions, and hope to eventually make whatever theme modifications are necessary to have them displayed usefully and properly. Right now, though, with regrets, the technology is not in place to do this easily yet, and while I…
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.
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
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.
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:
Dictate text - listens for spoken input. Make sure set to '''stop listening after pause'''.
Split Dictated Text by Customand - splits the text into a list with "and" as the delimiter
Repeat with each item in Split Text - begins the loop that adds…
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.…
For confused first-time visitors and other people still acclimating, here is a description of these little tabs to the left, as well as some other features of the site.
Open "Expert Mode" CLI Navigation - this give you the option to switch your browser's display to an old-fashioned terminal mode where you may browse this site, view pages and images by typing text commands. Just like how we used to browse the web back in 1978!
Open Visual Settings - This gives you controls to customize the visual display of this website to your liking: turn up or down the brightness, contrast, color temperature, hue, saturation, dark mode, and earthquake. Settings are saved per browser tab, so they will be remembered for your whole visit.
Open My Eyes - Have you ever been engrossed in your work, when you suddenly realize someone is staring at your screen, watching everything you do over your shoulder? If not, this simulates the experience.
Open Help - This help popup, silly! You just clicked it! Do you not remember?
New - Draggable elements! Several elements on this website, including these tabs, this popup message, and the "Hire Mike" badge in the lower right, can be dragged around with your mouse, to avoid them blocking content. Positions are remembered per tab, so as you navigate around the site, they will stay in the same place for your whole visit.
Enjoy!
CLI Website Navigation
Are you sure you want to switch to viewing this website in the "expert mode" command-line interface?
This will switch to a terminal emulator, load this page, and allow you to browse this website and view its contents by typing text commands.
Plus there might be, y'know, some fun stuff hidden in there. Just for geeks.