Specification vs. implementation Code

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.

Read more…

The secular Serenity Prayer fluffy rambles

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.

Medications are expensive fluffy rambles

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.

Read more…

Replacing the Waterfox icon on macOS fluffy rambles

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.

Read more…

The State of the Fiona fluffy rambles

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.

Happy π day fluffy rambles

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.

Read more…

The HRT saga fluffy rambles

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.

Read more…

I am not anti-AI fluffy rambles

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.

Read more…

Why I dislike .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.

Read more…

Updog fluffy rambles

These days I have quite a lot of ambition but not enough energy to execute on it. I’m trying, though.

Read more…

A reminder to myself fluffy rambles

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.

Read more…

Post-Cloudflare update fluffy rambles

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.

Read more…

💬 Multiple in-reply-to links Notes

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.

💬💬 re: Private posts on the open web Notes

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.

💬 Re: Still I Persist Notes

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.

This site now Cloudflare-free fluffy rambles

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.

Read more…

Still, I persist fluffy rambles

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.

Read more…

Denied again fluffy rambles

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.

Read more…

This week’s status fluffy rambles

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.)

Read more…

Could big tech please stop ruining enthusiast things fluffy rambles

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.

Read more…

to-do list fluffy rambles

Here are the things I need to take care of within the next week:

  • Schedule a sleep study
  • File my quarterly business taxes
  • Edit background video for Saturday talk
  • Set up projection mapping for Sunday show
  • Start working on specification for game dynamic soundtrack engine
  • Take care of the major clutter piles in the office
  • Empty out the car at the nearest Goodwill
  • Take the car to the mechanic for servicing

Read more…

On LLM-based programming Code

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.

Read more…

💬 Re: New Approach on Sending Webmentions Notes

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.

Finally fixed login fluffy rambles

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.

Read more…