oh jeeze oh man fluffy rambles
Whoops I guess it’s been a few weeks since I’ve posted anything here, how did that happen?
Well, here’s how.
Music, comics, art, and other stuff, all in one gigantic pile. The web of yesterday, tomorrow!
Whoops I guess it’s been a few weeks since I’ve posted anything here, how did that happen?
Well, here’s how.
Just sharing two software/workflow changes I’ve made recently, and why they’re improvements over what I had before.
There are a lot of times when the specification says one thing but common implementations do another. Here are some especially common examples to watch out for.
UPDATE (4/14/2026): I was wrong about the source of the issue that led to me writing this article, but it’s still the same issue! It just happened somewhere else in the chain than my investigations led me to believe. Which still emphasizes the point.
I grant myself the serenity
to accept the things I cannot change;
courage to change the things I can;
and wisdom to know the difference.
Living one day at a time;
Enjoying one moment at a time;
Accepting hardships as the pathway to peace;
Taking this world as it is, not as I would have it;
Trusting that we can make all things right if we come together in unity;
That I may be reasonably happy in this life
and that I can leave this world a better place than I found it.
So, being unemployed, I have to pay my own health insurance. This is currently around $500/month.
This insurance uses high copays on medication in order to “encourage the use” of cheaper medications. I have four medications which are expensive and get a $100/month copay, so I’m still paying $400/month on those meds.
Two of those meds have copay assistance programs, which present their own set of problems, and insurance companies hate that they exist, because they’re a retroactive incentive to make it easier for people to swallow the high copays on the meds while insurance still has to pay the bulk of the price, and the pharmaceutical companies bake the copay assistance program discount into the retail price of the medicine anyway so it’s not like they’re hurt by it at all.
But if I had to pay out-of-pocket for these meds, I’d be paying more for them than for my house.
Just some quick medical updates.
Okay so Mozilla has gone deep into the AI hole again, so I’ve switched back to Waterfox, a fork of Waterfox that focuses on the core browsing experience and eschews all of the stuff that nobody actually wants.
Waterfox is great, but its app icon is ugly and doesn’t look like a browser to me.
macOS does let you customize app icons but it isn’t super clear how to do it successfully, so here’s a process that works for me, as of macOS Tahoe 26.4.
Fiona’s been dealing with some respiratory stuff for a while, with what seemed like a cold starting around a month ago. Over the past few weeks she’s been having continuous problems with mucus in one nostril, and this past weekend she was also having nasal bleeding, although that’s cleared up.
Anyway, she’s really tired of going to the vet, but yesterday she got another examination with the most recent developments and it seems that whatever she has is probably systemic and/or structural. The most likely issues are that she either has a tumor or other structural issue in her nose, or she has an abscess in a tooth. It’s unlikely to be a sinus infection since it’s not bilateral.
Unfortunately, because she’s so elderly (she’s at least 15 years old, possibly older), the vet is hesitant to do anything invasive (such as dental work or a CT scan) since they’d all require anesthesia, and that can make things a lot worse.
She’s also lost a lot of weight, but it’s been difficult to keep her well-fed without also overfeeding Tyler as a consequence. It doesn’t help that she’s had typical old-lady dental problems for a while which make her unable to eat dry food anymore (and I think the mucus has impacted her sense of smell so even wet food doesn’t seem so appetizing to her right now).
So for now we’ve just got her on antibiotics which should at least help to clear up the acute infection, and if it returns later we can try other palliative approaches like steroids.
Fiona’s still super energetic and cuddly and generally a happy little creature, but she’s at the age where things could take a sudden turn for the worse and it’s time to start feeling grateful for the time I’ve had with her.
On the plus side, she’s doing a lot better than Werner did at this age and he still made it to around 19 or 20, so hopefully I still have a few years left with her. But I’m not going to go out of my way to extend her life; I’d much rather she has a happy time on this planet while she’s here.
Today is π day, which is a silly day to celebrate based on a completely arbitrary calendar system that happens to share some concordance with the inferior circle constant in our standard number system1. But π day is a bit special to me. Or rather, this π day is special to me, because it’s the 10th anniversary of an important thing that happened.
It’s about time I finally write a timeline of how frustrating HRT has been over the years, because I’m tired of re-explaining it and just want something to point folks to whenever it comes up.
Short version: I have historically been done extremely dirty by the healthcare system when it comes to HRT access.
In every corner of my life right now I cannot seem to escape the increasing fervor of the ongoing debate regarding AI and machine learning in general, where on one side you have people who are completely anti-AI and others who are completely pro-AI, and any point made in opposition to either of these things is seen as a hardline stance that is an attack or something to be corrected.
As with basically everything there is nuance, and a lot of conflicting things that tend to be collapsed down into single talking points, and I am getting caught in the middle. Over the last few days this has reached a fever pitch, and it’s gotten to the point that I feel like I’m constantly on the defense and on the edge of a panic attack.
I’m also very tired, and I want to just write this thing in my own little space where I can get some complete thoughts out before someone jumps down my throat in the middle of a series of posts. I’m not sure that this will have any real positive effect, but maybe a public rumination will help me work through the latest panic attack that woke me up after a particularly emotionally-draining day.
human.json protocol
.well-known
Code
There is a growing trend for new protocols to express themselves in the form of a well-known URI. It’s seen as an easy place to stash something where other interoperable software might want to probe for protocol support, as an improvement to the old ad-hoc behavior of things like robots.txt and favicon.ico and the like.
I am not personally a fan of it, for a few reasons.
These days I have quite a lot of ambition but not enough energy to execute on it. I’m trying, though.
It’s okay to not feel okay, especially when your hormones have been out of whack for months and healthcare is slow to try to help you with it.
It’s been nearly a week since I removed Cloudflare from my sites. As a quick followup, I did get a slight surge in traffic that lasted for a day or so after a bunch of bots' DNS caches expired, but they seem to have all given up after the Cloudflare “managed challenge” interstitial turned into an HTTP 401 error for them.
In reply to: Multiple in-reply-to links
Yeah I was trying to do something somewhat like Salmention since the context was specifically replying to two posts. I wouldn’t normally have done that, as you can probably tell by the weird UX on my site that resulted.
In reply to: re: Private posts on the open web
In reply to: re: Private posts on the open web
I have had private posts on the open web for quite some time, and this has been one of my personal bugbears in IndieWeb for as long as I’ve been participating.
My site uses an authentication layer, Authl, which allows people to sign in with a bunch of different identity providers, including IndieAuth, Fediverse (specifically tested with Mastodon and Pleroma but it should work with anything that supports the Mastodon client protocol), and emailed links. (It also used to support Twitter, but, y'know. And I’ve wanted to add support for bsky but its third-party client UX isn’t amenable to using it as basic SSO, but hopefully that changes when they refine their scopes better.) If someone signs in, or provides a bearer token to their feed reader, then they will be able to see private posts.
The other thing is I’ve been pushing for TicketAuth as well, although I haven’t kept up with the latest protocol changes and I’m kind of lost when it comes to playing catch-up. The use case for this is to better support feed readers; the basic idea is that there’s an unattended mechanism for a bearer token to be provided to someone’s feed reader, which can then use that bearer token in order to subscribe to posts and then those show up in full to the reader.
But since nobody actually supports it so far as I can tell (and if they were to start supporting it, it’d be based on the latest spec which I am definitely not complying with), I also have my feed set to show an anonymous stub entry for people who aren’t logged in. It provides minimal information beyond a shortlink that will redirect to the entry itself, and a sanitized title that’s just the first letter of each word in the title so that people have some clue as to whether they’ve seen it already. For example, the privacy title of this post would be “rPpotow.”
Also, for people who aren’t signed in, if there is a private entry which might become visible to them if they are authorized, a small notice appears on the top of the page to that effect. For example, if you aren’t signed in to my site, this page should show such a notice.
This gives me a pretty good balance of privacy and security. Content is only ever visible to people who are actually signed in, and people are notified about the potential for additional content if they sign in, without leaking information about the nature of that content.
Incidentally, this is stuff I had designed Publ for from the beginning, specifically from my experiences with hacking private posts into my old MovableType blog and needing to vent in private in a centralized way. I also make use of the login system for other stuff, like the anti-AI-scraping measures and the Novembeat submissions page, and I plan to eventually add things like comment system and a few other things.
In reply to: Re: Still I Persist
This carries a tonne of complexity into the most trivial things. Not only that, people have stopped developing things entirely, and now just rely on cobbling together commercial “solutions”. Rube Goldberg machines at their finest.
Yes, this exactly. I even used the term “Rube Goldberg machine” when ranting about this to my therapist earlier today.
Early in my career it was seen as a luxury to have 4MB of RAM on a consumer device, and now it’s a given that 4GB isn’t even remotely enough for even the most basic things. A factor of 1000, all for devices that just do largely the same thing, only worse, and slower, and requiring even more bandwidth and power to do even the most basic shit.
It’s maddening but it’s also good to know that I’m not the only one who feels this way.
I build things to be tools that can be used generally, and what we have is an ecosystem where every device has its own set of screwdrivers that work differently and each need a complete infrastructure to even function, and they’re made of lead and fall apart the moment you exert any pressure on them.
It’s enough to make me want to become a hermit but I suspect that even the hermit life requires an active cellphone connection these days.
About a year ago I set up Cloudflare as a fronting CDN for this site and my music site because it was the most expedient way of dealing with an AI bot onslaught. It helped a bit but the bots very quickly figured out how to get around all that and while Cloudflare gave me some slightly-better management tools for some stuff, I figured out better approaches to the bot mitigation.
Cloudflare was also super aggressive about caching some stuff that I didn’t want to be cached, and of course, there are many, many political and ideological reasons to not want to use Cloudflare. So my plan was always to switch back to not being under Cloudflare, but the longer I waited the harder it seemed like it would be, due to how SSL certificates work. In particular, I use wildcard Let’s Encrypt certificates, which require DNS to be current, and a big thing that Cloudflare does is… take over your DNS.
But tonight I got a hair up my butt and switched back to my own termination, and it wasn’t too hard to do, with just a little bit of DNS and TLS juggling, and I wanted to minimize my website downtime.
Ughhhh, this has been a heck of a week.
As usual I’ve been full of pain. And my brief surge of enthusiasm for working on music got cut kind of short because of it. But I’m hoping that tomorrow feels better and I can go back to the studio.
I’m also not sure where I stand with my fatigue. The last few days I’ve had to run quick errands by car and those felt fine. But I’m not feeling courageous enough to drive further just yet, especially with how any escape from White Center means following curvy roads which are especially triggering to me.
I worry about where things are and how I’ll be affected by it. I feel like the dominoes are starting to fall.
Wellp, today I got yet another denial from social security, which tells me this ain’t gonna change any time soon.
The previous denial came with a whole bunch of transphobia and also a claim that I am able to work, doing jobs which simply aren’t available and not reflective of the reality of my situation.
I haven’t received the formal denial yet, just the notification that my appeal was denied, so I suppose in a couple weeks I’ll be getting another giant packet from SSA to fume over.
Wellp, I didn’t get a whole lot done on the TODO list but at least I Tried™. (I did call about the sleep study but they never returned my call and it slipped my mind to try calling again. Oh well, next week.)
Back in the day, independent social media enthusiasts were building their own social spaces on RSS/Atom and self-hosted publishing. There was a huge ecosystem of feed readers and publishing software, where anyone could use their own choice of tools to interact with the space, and it was super cool.
Then Google got into it and made Google Reader, which was a really good feed reader, but they couldn’t figure out how to make it profitable and wanted to shove everyone over to Google+, so they shut Google Reader down, and then the tech press breathlessly claimed that RSS was now dead as a result, and because RSS was (in their eyes) dead, it became a self-fulfilling prophecy. Nowadays, RSS is seen as an obsolete thing only used by diehards, and corporate social media has become the norm, with a relatively tiny faction of people settling on ActivityPub instead, despite it being a poor match for the kinds of things that people used RSS for.
Here are the things I need to take care of within the next week:
Lately there’s been a brewing culture war in the software community regarding the usage of LLM-based coding tools (ChatGPT, Claude, Gemini, etc.), and I’m seeing a lot of hardline discourse on both sides, but especially from the anti-AI side of things.
First of all, to be clear, I am not in favor of LLM-based programming. My personal opinion is that LLMs are catastrophic to the environment and to the Internet as a whole (especially due to the added burden of every server being overwhelmed by the relentless AI-focused crawlers), and to the intelligence of the humans who wield them.
However, in the current landscape, I have also found myself (begrudgingly) using them on occasion to a limited degree, and in the mind of some folks, this probably irrevocably taints my code. So I’d like to at least discuss my perspective on them.
Update: Also it bears repeating here, as with everywhere else, that OpenAI is a key, willing part of the war machine, and so I will not intentionally be using any of their products for anything going forward, and taking every step I can to avoid unintentional usage.
In reply to: Re: New Approach on Sending Webmentions
FWIW, if you are capable of running Python code in a cron job somewhere, my tool Pushl does this same thing (bridging RSS/atom/mf2 feeds to Webmention/Pingback) with a lot more flexibility and a few other functions. I also trigger it to run on my website post-commit hook.
Login on this site has been a bit flaky for a while since in my never-ending fight against AI bots I had switched to a multiprocess configuration to give the site a bit more robustness, but which had the side effect of most logins only having a 50% chance of working due to fiddly details inside Publ (or, more precisely, Authl, which defaults to only being safe for single-process configurations).
So, Publ finally implements multiprocess-safe token storage, which is something I’d been meaning to add since approximately forever ago (although it seems I never opened an actual issue to track it, oops), and this should make user login reliable again.
Thanks to Spud who finally lit a fire under my butt to fix this annoying issue.