<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"
    xmlns:fh="http://purl.org/syndication/history/1.0"
    xmlns:at="http://purl.org/atompub/tombstones/1.0">

    <title>busybee</title>
    <subtitle><![CDATA[Music, comics, art, and other stuff, all in one gigantic pile. The web of yesterday, tomorrow!]]></subtitle>
    <link href="https://beesbuzz.biz/feed" rel="self" />
    

    <link href="https://busybee.superfeedr.com" rel="hub" />
    
    <link href="https://beesbuzz.biz/feed?id=12171" rel="prev-archive" />
    
    
    <link href="https://beesbuzz.biz/" />
    <id>tag:beesbuzz.biz,2026-05-12:_all</id>
    <updated>2026-05-04T19:26:47-07:00</updated>

    
    
    <link href="https://beesbuzz.biz/_login/profile" rel="authorization" />
    

    <entry>
        
        <title>fluffy rambles: oh jeeze oh man</title>
        <link href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man" rel="alternate" type="text/html" />
        <published>2026-05-04T19:26:47-07:00</published>
        <updated>2026-05-04T19:26:47-07:00</updated>
        <id>urn:uuid:095dad89-7143-49a5-b840-0dfa7639ccd4</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Whoops I guess it&rsquo;s been a few weeks since I&rsquo;ve posted anything here, how did that happen?</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>Whoops I guess it&rsquo;s been a few weeks since I&rsquo;ve posted anything here, how did that happen?</p><p>Well, here&rsquo;s how.</p>


<h3 id="15916_h3_1_Fatigue"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_1_Fatigue" class="toc_link"></a>Fatigue</h3><p>My fatigue has gotten a lot worse lately. I&rsquo;m having trouble mustering up the energy to do things, and what energy I do muster tends to go to things that are critical, rather than fun. Gardening (of the basic upkeep variety), getting groceries, cooking food, that sort of thing.</p><p>Last Black Friday I bought <a href="https://lectricebikes.com/products/xpress-750-step-thru-ebike">an ebike</a> (well, two of them, actually, <a href="https://www.aliexpress.us/item/3256809337066377.html">the other one</a> which I bought impulsively and then tried to cancel the order is still sitting in its box and I really ought to sell it) and I&rsquo;ve had a few rides on it which have gone fairly well, but today I decided to ride it to get groceries and just as I was approaching the store I got hit by a <em>huge</em> wave of fatigue and had to quickly get off the road before I fell over. In doing so I very nearly avoided getting run over by a truck that was turning way too fast. Fun times.</p><p>Anyway, I still did my shopping and had to push through it, and afterwards I did manage to ride home safely enough, but it was still, uh, worrying.</p><p>I feel like there&rsquo;s <em>something</em> I could try to do in order to build my stamina back up. I used to play <a href="https://projectoutfox.com/">DDR</a> for an hour or two every day, but I had to stop because it was getting to be very hard on my knees, and my plan was to build a lapboard so that I could at least try to build up some upper-body strength but I never got around to doing that either, and I just realized I&rsquo;ve had all the parts for it just lying around for the last four years. Jeeze.</p><h3 id="15916_h3_2_Music-projects"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_2_Music-projects" class="toc_link"></a>Music projects</h3><p>I had gotten some momentum going on my next album, but after recording a few songs I took a break to work on some other things, and now I&rsquo;m having a very difficult time working up the energy to even go to my recording studio to work on things. And even doing my VRChat gigs has gotten to be difficult. When I first started those, 60 minutes was easy to do, no problem, and now I&rsquo;m finding that I have to push through it at the 45-minute mark.</p><p>A couple weeks ago I did spend a decent amount of time working on my booth for <a href="https://furality.org/">Furality</a> which involved making a bunch of art and also making a minute-long video that was the single most ambitious video project I&rsquo;ve ever done (yes, even moreso than <a href="https://www.youtube.com/watch?v=cAdd8tF-WVs">the previous most ambitious video project</a>). I&rsquo;m hoping that it at least gets me some attention and some people wanting to buy my music and commissioning me to make more, although, gosh, the prospect of going back to those kinds of hours long-term also fills me with dread.</p><p>At some point I also need to get around to building my <a href="https://www.nerdygurdy.nl/">Nerdy Gurdy</a>. I was so excited to finally acquire one but it&rsquo;s just been sitting in my basement, and I haven&rsquo;t even unpacked it yet. My plan was to stream the build on <a href="https://youtube.com/@realfakesockpuppet">my music YouTube channel</a> but, gah. tired.</p><h3 id="15916_h3_3_Choir"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_3_Choir" class="toc_link"></a>Choir</h3><p>I&rsquo;ve also found that getting to choir practice is too much effort and doesn&rsquo;t result in a feeling of joy, so I&rsquo;ve ended up stepping back from the choir again. Part of it is the fatigue, part of it is because the choir&rsquo;s just gotten so <em>big</em> and at this point it feels like it&rsquo;s not satisfying me in the way that it used to. The concerts this year also badly conflict with other stuff that are much more important to me. So removing the weekly &ldquo;get to the church&rdquo; reminder from my calendar felt more like a relief than anything.</p><h3 id="15916_h3_4_Hormones"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_4_Hormones" class="toc_link"></a>Hormones</h3><p>I was hoping that this current fatigue problem was just due to the <a href="https://beesbuzz.biz/blog/5248-The-HRT-saga">HRT saga</a> and that getting my levels back in check would fix everything. Injections have helped me with a <em>lot</em> of stuff, and it&rsquo;s nice that my boobs are starting to grow again even after so long, but the fatigue hasn&rsquo;t been affected by it at all as far as I can tell. I do have an appointment later this week to get my levels checked to make sure I&rsquo;m on the right path though. It&rsquo;s possible the dose still needs to be adjusted.</p><h3 id="15916_h3_5_Other-medical-crap"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_5_Other-medical-crap" class="toc_link"></a>Other medical crap</h3><p>The last time I saw my cardiologist he said I should get another sleep study, and he referred me to a sleep clinic within his hospital system. It took <em>forever</em> to get an appointment, and when I finally did, they got me down for an in-home sleep study, but it turns out that the clinic is a 90-minute drive or a three-hour bus ride away (because his hospital system <strong><em>shut down all of their sleep clinics in Seattle</em></strong> for some <strong><em>fucking</em></strong> reason, and they would not refer me to another practice closer to me), and even though the sleep study was in-home they still needed me to come in person to pick up the device and be trained on how to use it. Even more annoyingly, the first appointment they have for the pickup isn&rsquo;t until August, <em>and</em> their appointments are all in the morning. There is no fucking way I&rsquo;d be able to do that.</p><p>So I&rsquo;ve asked my GP about finding a sleep clinic closer to Seattle/Burien/White Center. Hopefully I can find something more amenable to my transportation and time-of-day limitations.</p><p>I&rsquo;m not super optimistic about the current state of sleep medicine anyway, though. It&rsquo;s all about CPAP/APAP, and that has never helped me at all.</p><h3 id="15916_h3_6_Cats"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_6_Cats" class="toc_link"></a>Cats</h3><p>Fiona has officially turned 15 (she&rsquo;s possibly a bit older but her shelter records estimated her as having been born around May of 2011). She&rsquo;s gotten so grumpy lately, and finicky about food. But she&rsquo;s still my lovely little squish. I just wish she&rsquo;d actually eat the food she&rsquo;s been given.</p><h3 id="15916_h3_7_Cars"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_7_Cars" class="toc_link"></a>Cars</h3><p>My shitty Corolla is still fulfilling its duty as a decoy to stop people from trying to steal my bike. I&rsquo;ve moved it all of three times in the past month, twice of which was due to some driveway repair stuff. That&rsquo;s a whole other mess I&rsquo;d rather not talk about though.</p><p>I wish I could have just gone car-free, because it&rsquo;s not like I&rsquo;m even using this car, I&rsquo;m just constantly beying annoyed by it. I need some better way of signaling that my home is occupied despite there not being a motor vehicle in the open carport. Unfortunately, converting my carport into a closed garage is not a feasible solution, either.</p><p>Cars are cool tech but revolving all of society around them was a mistake.</p><h3 id="15916_h3_8_tl-dr"><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#15916_h3_8_tl-dr" class="toc_link"></a>tl;dr</h3><p>I&rsquo;m fuckin tired, y&#39;all</p>

<p><a href="https://beesbuzz.biz/blog/15916-oh-jeeze-oh-man#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=15916&amp;tag=blogging">#blogging</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=15916&amp;tag=life-updates">#life updates</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=15916&amp;tag=fatigue">#fatigue</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=15916&amp;tag=choir">#choir</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Blogging" label="blogging" />
        
        <category term="LifeUpdates" label="life updates" />
        
        <category term="Fatigue" label="fatigue" />
        
        <category term="Choir" label="choir" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: Tech/software updates</title>
        <link href="https://beesbuzz.biz/blog/17465-Tech-software-updates" rel="alternate" type="text/html" />
        <published>2026-04-14T23:47:43-07:00</published>
        <updated>2026-04-14T23:47:43-07:00</updated>
        <id>urn:uuid:8dba6dd6-4268-40ca-ba31-c3e5b07ef46d</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Just sharing two software/workflow changes I&rsquo;ve made recently, and why they&rsquo;re improvements over what I had before.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>Just sharing two software/workflow changes I&rsquo;ve made recently, and why they&rsquo;re improvements over what I had before.</p>


<h3 id="17465_h3_1_Window-management-Magnet-→-Recta"><a href="https://beesbuzz.biz/blog/17465-Tech-software-updates#17465_h3_1_Window-management-Magnet-→-Recta" class="toc_link"></a>Window management: Magnet &rarr; Rectangle</h3><p>I bought <a href="https://magnet.crowdcafe.com/">Magnet</a> ages ago, back when it first came out. At the time it was pretty much the only reliable window management system around.</p><p>Recently I learned about <a href="https://rectangleapp.com/">Rectangle</a>, which does largely the same thing, but is free, opensource, and has a few other nice changes, and after trying it out a bit I switched. Here&rsquo;s some of what it does better:</p>
<ul>
<li>There are more configurable shortcuts for a bunch of things</li>
<li>It does a better job of integrating with macOS Tahoe and lets you much more easily switch between its drag-snap behavior and Tahoe&rsquo;s built-in</li>
<li>Its drag-snap behavior is a lot better than both Tahoe&rsquo;s and Magnet&rsquo;s, so far</li>
<li>Its hotkeys don&rsquo;t get as easily confused by other things</li>
<li>It doesn&rsquo;t occasionally pop up any annoying &ldquo;Please rate us on the Mac App Store&rdquo; dialogs, which are a giant pet peeve of mine</li>
</ul>
<h3 id="17465_h3_2_Text-editing-Sublime-Text-→-Gram"><a href="https://beesbuzz.biz/blog/17465-Tech-software-updates#17465_h3_2_Text-editing-Sublime-Text-→-Gram" class="toc_link"></a>Text editing: Sublime Text &rarr; Gram</h3><p>I&rsquo;ve been a big fan of <a href="https://sublimetext.com/">Sublime Text</a> for a bit over a decade, ever since I started at HBO and needed to edit more JavaScript, which Emacs wasn&rsquo;t very good at. I happily paid for version 3.0 and enjoyed it for quite a time, and put in a lot of effort to wrangle its many extensions and settings sync functionality and so on.</p><p>When 4.0 came out they changed the licensing scheme, and also changed a bunch of the UX in ways I didn&rsquo;t particularly like, so I didn&rsquo;t have any reason to upgrade.</p><p>Then the 3.0 packages got more and more ornery to maintain, and it was super easy for settings to get broken and crufty and for things to just get weird and slow and annoying.</p><p>Anyway, I&rsquo;ve been running the macOS Developer Beta on one of my computers and today after it updated I got a big warning that since Sublime Text 3 is Intel-only it will no longer be supported by macOS in the not-too-distant future.</p><p>At one point I&rsquo;d been evaluating <a href="https://zed.dev/">Zed</a> and it was nice and simple, <em>except</em> it also came with a whole bunch of agentic coding stuff built-in and it was constantly nagging me and getting in the way. As you might imagine, I <a href="https://beesbuzz.biz/blog/14715-I-am-not-anti-AI">do not care for agentic coding</a>, and Zed&rsquo;s increasing marketing towards being Everything Agentic really rubbed me the wrong way.</p><p>More recently I found out about <a href="https://gram.liten.app/">Gram</a>, a fork of Zed that&rsquo;s been decrapified, cleaned up, and generally improved in terms of being more humane and so on. So tonight I gave it a try, and while there&rsquo;s still a few things I don&rsquo;t super love about it (for example, you can&rsquo;t detach tabs from a window frame or move them between frames), there&rsquo;s a bunch that it gets right:</p>
<ul>
<li>The package management is built in and generally does a good job of figuring out what binaries to install for you</li>
<li>It&rsquo;s <em>super</em> fast and responsive-feeling</li>
<li>Out of the box it has support for every language I use and then some</li>
<li>The language server functionality actually works really nicely, and it integrates with my various package managers pretty well</li>
<li>It convinced me to switch from <a href="https://www.mypy-lang.org/">mypy</a> to <a href="https://docs.astral.sh/ty/">ty</a> which is faster, much more thorough, and provides a much nicer UX for suggesting fixes</li>
<li>The settings editor is quite good! And setting up per-folder project files is sensible and easy!</li>
<li>Also, a big one: <strong><em>open buffers follow filename changes on the file system!</em></strong> This makes my blogging workflow <em>so</em> much easier than it was in Sublime Text! (This is something Sublime Text did add in version 4, that said.)</li>
<li>It doesn&rsquo;t try to do extraneous quote matching in Markdown files, so basic English punctuation doesn&rsquo;t confuse the heck out of it. Gee willikers!</li>
<li>The settings sync just fine with <a href="https://syncthing.net/">Syncthing</a></li>
<li>It has some really nice things for interpreting Markdown document structure that I only just noticed while editing this entry, neat!</li>
</ul>
<p>I&rsquo;m currently using it with <a href="https://github.com/microsoft/cascadia-code">Cascadia Code</a> and the built-in One Light/One Dark themes and it&rsquo;s pretty nice-looking.</p><p>There&rsquo;s still some rough spots:</p>
<ul>
<li>It&rsquo;s a little annoying how I have to provide a filename when I create a new file, which means a slightly different workflow for when I&rsquo;m blogging</li>
<li>ty seems to behave differently between CLI and IDE, especially for things like <a href="https://wiki.qt.io/Qt_for_Python">PySide6</a>, for reasons I can&rsquo;t figure out, and this is causing a lot of annoyances when working on <a href="https://github.com/fluffy-critter/bandcrash">bandcrash</a> in particular (but I suspect it&rsquo;s more of a Qt issue and I really need to investigate better GUI toolkits anyway)</li>
<li>The autoindent functionality on Markdown is a little wonky, especially for things like code fences and bullet lists</li>
<li>I&rsquo;m not quite sure how to get it to use my Poetry environment for module loading on Publ sites and there&rsquo;s probably something I&rsquo;m misunderstanding about how its environment support works (and its docs aren&rsquo;t super clear on that either); it&rsquo;s <em>supposed</em> to automatically use a Poetry environment if it detects one but it doesn&rsquo;t seem to be doing that.</li>
</ul>
<p>but most of these are just things to get used to, or things I can fix through understanding configuration. There&rsquo;s also a bunch of display preferences that I find <em>interesting</em> but weird, like by default it only shows the absolute line number for the line you&rsquo;re on and then all other line numbers are shown as relative to the current line. I&rsquo;m not sure if I like that or not, but it&rsquo;s easy enough to toggle it.</p><p>Also I should maybe finally make a Publ-Markdown formatting thingy because Gram&rsquo;s Markdown highlighter gets confused by Publ&rsquo;s Markdown extensions (particularly image sets), although it&rsquo;s no worse than Sublime Text&rsquo;s and if anything it recovers much more gracefully.</p><h4 id="17465_h4_3_Setting-up-setting-sync"><a href="https://beesbuzz.biz/blog/17465-Tech-software-updates#17465_h4_3_Setting-up-setting-sync" class="toc_link"></a>Setting up setting sync</h4><p>This is pretty straightforward. On my first computer I did:</p><figure class="blockcode"><pre class="highlight" data-language="bash" data-line-numbers><span class="line" id="e17465cb1L1"><a class="line-number" href="https://beesbuzz.biz/blog/17465-Tech-software-updates#e17465cb1L1"></a><span class="line-content">mv<span class="w"> </span>~/.config/gram<span class="w"> </span>~/Sync</span></span>
<span class="line" id="e17465cb1L2"><a class="line-number" href="https://beesbuzz.biz/blog/17465-Tech-software-updates#e17465cb1L2"></a><span class="line-content">ln<span class="w"> </span>-s<span class="w"> </span>~/Sync/gram<span class="w"> </span>~/.config</span></span>
</pre></figure><p>and on my other computers I did:</p><figure class="blockcode"><pre class="highlight" data-language="bash" data-line-numbers><span class="line" id="e17465cb2L1"><a class="line-number" href="https://beesbuzz.biz/blog/17465-Tech-software-updates#e17465cb2L1"></a><span class="line-content">ln<span class="w"> </span>-s<span class="w"> </span>~/Sync/gram<span class="w"> </span>~/.config</span></span>
</pre></figure><p>and now everything works great. This applies to both macOS and Linux. I have no idea where the settings live on Windows, but I don&rsquo;t do any coding from Windows anymore.</p>

<p><a href="https://beesbuzz.biz/blog/17465-Tech-software-updates#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=technology">#technology</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=software">#software</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=macos">#macOS</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=sublime-text">#Sublime Text</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=gram">#gram</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=text-editors">#text editors</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=ui">#UI</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=17465&amp;tag=window-management">#window management</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Technology" label="technology" />
        
        <category term="Software" label="software" />
        
        <category term="macOS" label="macOS" />
        
        <category term="SublimeText" label="Sublime Text" />
        
        <category term="Gram" label="gram" />
        
        <category term="TextEditors" label="text editors" />
        
        <category term="UI" label="UI" />
        
        <category term="WindowManagement" label="window management" />
        

        

    </entry>
    <entry>
        
        <title>Notes: The Picture They Paint of You</title>
        <link href="https://beesbuzz.biz/blog/chatter/9648-The-Picture-They-Paint-of-You" rel="alternate" type="text/html" />
        <published>2026-04-13T06:54:40-07:00</published>
        <updated>2026-04-13T06:54:40-07:00</updated>
        <id>urn:uuid:e601e697-d554-4ca0-97eb-0437a4965526</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[]]></summary>
        <content type="html"><![CDATA[

		






<p><a href="https://beesbuzz.biz/blog/chatter/9648-The-Picture-They-Paint-of-You#comments">comments</a></p>

        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        <category term="Notes" label="Notes" />
        
        

        

    </entry>
    <entry>
        
        <title>Code: Specification vs. implementation</title>
        <link href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation" rel="alternate" type="text/html" />
        <published>2026-04-08T14:04:57-07:00</published>
        <updated>2026-04-14T17:44:10+00:00</updated>
        <id>urn:uuid:2c42b8b8-2f9a-44bd-bd4a-6368b2dc2419</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>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.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>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.</p><p><mark>UPDATE (4/14/2026)</mark>: I was wrong about the source of the issue that led to me writing this article, but it&rsquo;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.</p>


<h3 id="6604_h3_1_Attribute-quoting"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_1_Attribute-quoting" class="toc_link"></a>Attribute quoting</h3><p>According to <a href="https://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.2">the HTML specification</a>, single-quoted attributes are perfectly valid; for example, these HTML fragments should be absolutely equivalent:</p><figure class="blockcode"><pre class="highlight" data-language="html" data-line-numbers><span class="line" id="e6604cb1L1"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb1L1"></a><span class="line-content"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;https://example.com/&quot;</span><span class="p">&gt;</span>Check out my website<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></span></span>
<span class="line" id="e6604cb1L2"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb1L2"></a><span class="line-content"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#39;https://example.com/&#39;</span><span class="p">&gt;</span>Check out my website<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></span></span>
<span class="line" id="e6604cb1L3"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb1L3"></a><span class="line-content"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">https://example.com/</span><span class="p">&gt;</span>Check out my website<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></span></span>
</pre></figure><p>However, there are <em>many, many</em> client implementations which expect any quoted attributes to be double-quoted, and even some which do not support unquoted attributes at all. So, for example, I&rsquo;ve seen many implementations assume that a single-quoted attribute is equivalent to an unquoted attribute, so it treats <em>these</em> as equivalent:</p><figure class="blockcode"><pre class="highlight" data-language="html" data-line-numbers><span class="line" id="e6604cb2L1"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb2L1"></a><span class="line-content"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#39;https://example.com/&#39;</span><span class="p">&gt;</span>Check out my website<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></span></span>
<span class="line" id="e6604cb2L2"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb2L2"></a><span class="line-content"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&quot;&#39;https://example.com/&#39;&quot;</span><span class="p">&gt;</span>Check out my website<span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span></span></span>
</pre></figure><p>which is to say, if <code>&lt;a href=&#39;https://example.com/&#39;&gt;Check out my website&lt;/a&gt;</code> appears on the website <code>https://foo.example/~bob/homepage.html</code>, the URL then is interpreted as being <code>https://foo.example/~bob/&#39;https://example.com&#39;</code> (or <code>https://foo.example/~bob/%39https://example.com%39</code> if we&rsquo;re being strict about URL-encoding).</p><p>Unquoted attributes also often are subject to all sorts of weird things, especially with how the entities within them get decoded.</p><p>Email systems are historically <em>particularly</em> bad about this; the impetus to this article was <del>discovering that my email provider<sup id="r_e6604_fn1"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#d_e6604_fn1" rel="footnote">1</a></sup> does not support single-quoted attributes, and goes so far as to converting the quotes to <code>&amp;#39;</code> entities, causing even more problems downstream.</del> <mark>UPDATE:</mark> It turns out the problem was <em>not</em> with Fastmail, but with some library on the <em>sender&rsquo;s</em> side which was misencoding the quoted attributes! Fastmail did nothing wrong here!</p><p>So, for maximum compatibility, it&rsquo;s best to always use double-quoted attributes, regardless of what the HTML specification says.</p><h3 id="6604_h3_2_Protocol-relative-URLs"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_2_Protocol-relative-URLs" class="toc_link"></a>Protocol-relative URLs</h3><p>Back in the day, it was pretty common for websites to serve things up in a mixture of HTTP (plaintext) and HTTPS (encrypted), and there were reasons to want static pages to link to external resources with the same scheme (for example, an HTTP page referring to an external image with an HTTP URL, but the HTTPS version of the page using an HTTPS URL for the image).</p><p>I cannot find any official specification for HTML, but the commonly-accepted standard for these, per the <a href="https://www.w3.org/Addressing/URL/5_URI_BNF.html">generic URI syntax</a>, considers the initial <code>//hostname</code> to be the starting portion of the path component of the URL, which is to say, a protocol-relative URL of <code>//example.com/foo</code> should be treated by adding the current page&rsquo;s scheme to the URL; for example, from <code>https://example.com/~bob/homepage.html</code>, a link to <code>//website.example/meow.gif</code> should be interpreted as <code>https://website.example/meow.gif</code>, while from <code>http://example.com/~alice/</code> the same link would become <code>http://website.example/meow.gif</code>.</p><p>Unfortunately, a <em>lot</em> of software out there just sees that the link starts with a <code>/</code> and assumes it&rsquo;s a site-relative URL instead, so from <code>https://example.com/~bob/</code> it is interpreted as <code>https://example.com/website.example/meow.gif</code>.</p><p>You can see how your browser implements <a href="//sockpuppet.band/track/the-war-machine">such a link</a>.</p><p>In any case, it&rsquo;s better to be explicit about your URL scheme, and in general if a site supports <code>https</code> it&rsquo;s best to just link to that version anyway.</p><h3 id="6604_h3_3_Path-coalescing"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_3_Path-coalescing" class="toc_link"></a>Path coalescing</h3><p>In most operating systems, there is a convention that <code>..</code> refers to the parent directory, so for example the path <code>/foo/bar/../baz</code> is equivalent to <code>/foo/baz</code>. Additionally, <code>.</code> refers to the current directory, and <code>/</code> is seen as a path separator. So a path of <code>/foo/bar/./baz</code> is equivalent to <code>/foo/bar/baz</code>, for example.</p><p>Most web-based things will automatically apply these rules, even if it&rsquo;s technically incorrect; for example, both Apache and nginx will internally manipulate the URL to treat them as equivalent before it even touches the backing application, and even if they don&rsquo;t, it seems that most application stacks will also pre-coalesce the URL.</p><p>But on the client side, browsers will also automatically do this path coalescing before it even forms the URL to be requested; for example, <a href="https://beesbuzz.biz/blog/"><code>../blog/</code></a> and even <a href="https://junk.sockpuppet.band/foo/bar/../../songlets/"><code>https://junk.sockpuppet.band/foo/bar/../../songlets/</code></a> never even show up in the DOM with any of the <code>..</code> components from most browsers (although I have seen some clients preserve them in some cases). Strictly-speaking those URLs shouldn&rsquo;t even be equivalent, because <code>foo/bar</code> is a nonexistent path on both of those sites, so based purely on filesystem rules those <em>should</em> result in a <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/404">404 Not Found</a> error. But things are being short-circuited for the sake of friendliness. And if you enter a URL manually, by copy-pasting e.g. <code>https://beesbuzz.biz/foo/../code/</code> into your location bar, every modern browser I&rsquo;ve tried will just automagically coalesce the path component.</p><p>(Note that how it coalesces <code>//</code> is inconsistent, in my experience; some browsers treat it as a subdirectory with an empty name, while others treat it as if it&rsquo;s the same as a single <code>/</code>, the same as UNIX.)</p><p>But it&rsquo;s not necessarily the case that the path <em>will</em> be coalesced. For example, here&rsquo;s a trivial <a href="https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface">WSGI</a> application that just passes through a couple of things from the request:</p><figure class="blockcode"><figcaption>app.py</figcaption><pre class="highlight" data-language="python" data-line-numbers><span class="line" id="e6604cb3L1"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb3L1"></a><span class="line-content"><span class="k">def</span><span class="w"> </span><span class="nf">app</span><span class="p">(</span><span class="n">environ</span><span class="p">,</span> <span class="n">start_response</span><span class="p">):</span></span></span>
<span class="line" id="e6604cb3L2"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb3L2"></a><span class="line-content">    <span class="n">start_response</span><span class="p">(</span><span class="s2">&quot;200 OK&quot;</span><span class="p">,</span> <span class="p">[(</span><span class="s2">&quot;Content-Type&quot;</span><span class="p">,</span> <span class="s2">&quot;text/plain&quot;</span><span class="p">)])</span></span></span>
<span class="line" id="e6604cb3L3"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb3L3"></a><span class="line-content"></span></span>
<span class="line" id="e6604cb3L4"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb3L4"></a><span class="line-content">    <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;HTTP_HOST&#39;</span><span class="p">,</span> <span class="s1">&#39;RAW_URI&#39;</span><span class="p">):</span></span></span>
<span class="line" id="e6604cb3L5"><a class="line-number" href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#e6604cb3L5"></a><span class="line-content">        <span class="k">yield</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="si">}</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span></span></span>
</pre></figure><p>And here&rsquo;s some outputs when run through <a href="https://gunicorn.org/">gunicorn</a>; for starters, by default, curl coalesces <code>/./</code> and <code>/../</code> (but not <code>//</code>) client-side:</p><figure class="blockcode"><pre><span class="line"><span class="line-content">bean:~ $ curl -i http://localhost:8000/foo//moo/./bar/../baz/</span></span>
<span class="line"><span class="line-content">HTTP/1.1 200 OK</span></span>
<span class="line"><span class="line-content">Server: gunicorn</span></span>
<span class="line"><span class="line-content">Date: Wed, 08 Apr 2026 20:36:44 GMT</span></span>
<span class="line"><span class="line-content">Connection: close</span></span>
<span class="line"><span class="line-content">Transfer-Encoding: chunked</span></span>
<span class="line"><span class="line-content">Content-Type: text/plain</span></span>
<span class="line"><span class="line-content"></span></span>
<span class="line"><span class="line-content">HTTP_HOST: localhost:8000</span></span>
<span class="line"><span class="line-content">RAW_URI: /foo//moo/baz/</span></span>
<span class="line"><span class="line-content">bean:~ $ curl -i http://localhost:8000/foo//moo/../../bar/</span></span>
<span class="line"><span class="line-content">HTTP/1.1 200 OK</span></span>
<span class="line"><span class="line-content">Server: gunicorn</span></span>
<span class="line"><span class="line-content">Date: Wed, 08 Apr 2026 20:42:56 GMT</span></span>
<span class="line"><span class="line-content">Connection: close</span></span>
<span class="line"><span class="line-content">Transfer-Encoding: chunked</span></span>
<span class="line"><span class="line-content">Content-Type: text/plain</span></span>
<span class="line"><span class="line-content"></span></span>
<span class="line"><span class="line-content">HTTP_HOST: localhost:8000</span></span>
<span class="line"><span class="line-content">RAW_URI: /foo/bar/</span></span>
</pre></figure><p>But a request that uses the path as-is will still at least pass through directly, at least through gunicorn itself:</p><figure class="blockcode"><pre><span class="line"><span class="line-content">bean:~ $ curl -i http://localhost:8000/foo//moo/./bar/../baz/ --path-as-is</span></span>
<span class="line"><span class="line-content">HTTP/1.1 200 OK</span></span>
<span class="line"><span class="line-content">Server: gunicorn</span></span>
<span class="line"><span class="line-content">Date: Wed, 08 Apr 2026 20:40:09 GMT</span></span>
<span class="line"><span class="line-content">Connection: close</span></span>
<span class="line"><span class="line-content">Transfer-Encoding: chunked</span></span>
<span class="line"><span class="line-content">Content-Type: text/plain</span></span>
<span class="line"><span class="line-content"></span></span>
<span class="line"><span class="line-content">HTTP_HOST: localhost:8000</span></span>
<span class="line"><span class="line-content">RAW_URI: /foo//moo/./bar/../baz/</span></span>
</pre></figure><p>But in other testing I have found that, at least with a stack of nginx+gunicorn+Flask, the path coalescing takes place <em>somewhere</em> before it hits the actual application. (I do not have the patience to try to figure out where, exactly, not that it even matters.)</p><p>All this is to say, you <em>cannot</em> expect runs of multiple <code>/</code> or paths containing <code>/./</code> or <code>/../</code> to remain intact, even when the request is being made at the wire level, but you also cannot assume that the path <em>will</em> be pre-coalesced.</p><h3 id="6604_h3_4_Case-sensitivity-case-folding"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_4_Case-sensitivity-case-folding" class="toc_link"></a>Case-sensitivity/case-folding</h3><p>Case-sensitivity and lack thereof in the hostname is also something you cannot rely on:</p><figure class="blockcode"><pre><span class="line"><span class="line-content">$ curl -ivvv http://beesbuzz.biz/ | head</span></span>
<span class="line"><span class="line-content">* Host beesbuzz.biz:80 was resolved.</span></span>
<span class="line"><span class="line-content">[...]</span></span>
<span class="line"><span class="line-content">&gt; GET / HTTP/1.1</span></span>
<span class="line"><span class="line-content">&gt; Host: beesbuzz.biz</span></span>
<span class="line"><span class="line-content">[...]</span></span>
<span class="line"><span class="line-content">&lt; link: &lt;https://webmention.io/beesbuzz.biz/webmention&gt;; rel=&quot;webmention&quot;</span></span>
<span class="line"><span class="line-content">&lt; Link: &lt;https://beesbuzz.biz/_tokens&gt;; rel=&quot;token_endpoint&quot;</span></span>
<span class="line"><span class="line-content">[...]</span></span>
<span class="line"><span class="line-content"></span></span>
<span class="line"><span class="line-content">$ curl -sivvv http://BeesBuzz.Biz/ | head</span></span>
<span class="line"><span class="line-content">* Host BeesBuzz.Biz:80 was resolved.</span></span>
<span class="line"><span class="line-content">[...]</span></span>
<span class="line"><span class="line-content">&gt; GET / HTTP/1.1</span></span>
<span class="line"><span class="line-content">&gt; Host: BeesBuzz.Biz</span></span>
<span class="line"><span class="line-content">[...]</span></span>
<span class="line"><span class="line-content">&lt; link: &lt;https://webmention.io/beesbuzz.biz/webmention&gt;; rel=&quot;webmention&quot;</span></span>
<span class="line"><span class="line-content">&lt; Link: &lt;https://beesbuzz.biz/_tokens&gt;; rel=&quot;token_endpoint&quot;</span></span>
<span class="line"><span class="line-content">[...]</span></span>
</pre></figure><p>In this case, note that <code>curl</code> preserved the case of the domain name in the <code>Host:</code> parameter, but something within the stack converted the hostname to all-lowercase (as can be seen in the <code>link</code> headers in the response). Whether this is happening in nginx or Flask is uncertain (and I, again, do not feel a particular need to figure out where this takes place, although I&rsquo;d assume it&rsquo;s at the vhost &mdash; and therefore nginx &mdash; level), but gunicorn does preserve the case of the hostname (using the same minimal WSGI app as above):</p><figure class="blockcode"><pre><span class="line"><span class="line-content">bean:~ $ curl http://LocalHost:8000/</span></span>
<span class="line"><span class="line-content">HTTP_HOST: LocalHost:8000</span></span>
<span class="line"><span class="line-content">RAW_URI: /</span></span>
</pre></figure><p>So, as with path coalescing, you cannot assume that elements will be case-folded for you, but you also cannot assume that they <em>won&rsquo;t</em> be.</p><p>And of course, path resolution for resources is up to the underlying implementation; a webserver running on macOS or Windows will (usually) treat <code>/foo.jpg</code> and <code>/foo.JPG</code> as the same resource, while on Linux, those are different resources. Of course the browser will <em>hopefully</em> treat them as separate for the purpose of caching, but: <strong><em>you cannot guarantee this</em></strong>.</p><p>As one of my college professors once said, &ldquo;If it makes a difference whether something is case-sensitive or not, you have made a mistake.&rdquo;</p><h3 id="6604_h3_5_http-vs.-https-in-general"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_5_http-vs.-https-in-general" class="toc_link"></a>http vs. https in general</h3><p>Nothing in the HTTP specification says that the same path on two different schemes will reflect the same resource; for example, <code>http://example.com/</code> and <code>https://example.com/</code> can very well be completely different websites. But I have seen plenty of browsers, web crawlers, and other software assume that they are the one and the same!</p><p>At its most trivial, this very site will have slightly different content for the two versions; there are a handful of places where out of necessity, some links do not appear on the <code>http</code> version, or where they are rendered as absolute links and will match the original request&rsquo;s scheme rather than directing to <code>https</code>.</p><p>But things can be a lot more complicated. For example, once upon a time I ran a site where the <code>http</code> version was an informational page and the <code>https</code> version was the webmail for the domain. It was silly to do it that way, and I stopped doing it when browsers started being &ldquo;helpful&rdquo; about automatically converting http URLs to https (not to mention when I stopped hosting my own email and switched to other hosting providers), but you absolutely cannot just assume that two pages will be the same despite different URL schemes.</p><p>(Also, remember that URL schemes other than <code>http</code> and <code>https</code> exist! FTP, Gopher, and others might have fallen out of fashion, but they still exist. Not to mention nascent protocols like <a href="https://geminiprotocol.net/">Gemini</a>.)</p><p>From a server implementation standpoint, you should assume that clients can and will treat differing schemes as identical, so if a website is available from both protocols, the content should match between them, and if something is only available via <code>https</code>, then an <code>http</code> request to the same resource should redirect to the <code>https</code> one.</p><p>But from a client standpoint, you really should consider the scheme to be a part of the URL.</p><h3 id="6604_h3_6_www.-prefixes-and-other-subdomai"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_6_www.-prefixes-and-other-subdomai" class="toc_link"></a><code>www.</code> prefixes (and other subdomain issues)</h3><p>Back in the early days of the Internet, it was common for a domain to host a whole bunch of different services, for example <code>ftp.example.com</code>, <code>irc.example.com</code>, <code>mail.example.com</code>, and so on, and many of these would even be hosted by separate physical servers with their own IP addresses. So when the web started up as an experimental thing it was super common to just spin up another server named <code>www</code>, and that was the one and only way that people would reference the website; there often wouldn&rsquo;t even <em>be</em> a root domain <code>A</code> record.</p><p>In those days, the hostname used to resolve the site had no impact on the resource returned; in fact the <code>Host:</code> request header didn&rsquo;t even exist, and it wasn&rsquo;t until quite some time later that browsers started sending that, to support <a href="https://en.wikipedia.org/wiki/Virtual_hosting">name-based virtual hosting</a>. Every website needed its own IP address. (Note that many non-HTTP protocols still have this limitation.)</p><p>As the web became the primary use of the Internet, the <code>www</code> prefix convention remained, and you had a big hot mess of differing implementations:</p>
<ul>
<li>Dedicated-IP hosts that have the root record <em>and</em> <code>www</code> resolve to the same server, which would then serve up the same content on either hostname</li>
<li>Sites that would map both <code>example.com</code> and <code>www.example.com</code> to the same virtual host configuration</li>
<li>Sites that would redirect <code>www.example.com</code> to <code>example.com</code></li>
<li>Sites that would redirect <code>example.com</code> to <code>www.example.com</code></li>
<li>Sites that serve up entirely different content for <code>example.com</code> vs. <code>www.example.com</code></li>
<li>Hosts that only resolve from one or the other</li>
</ul>
<p>Pretty much all of these remain to this very day, and to make things even more fun, many clients try to do &ldquo;helpful&rdquo; things where, for example, if <code>example.com</code> doesn&rsquo;t resolve it&rsquo;ll automatically redirect to <code>www.example.com</code> (or put up a prompt to that effect), or if a web crawler sees both hostnames it&rsquo;ll just assume that both are the same, or follow the preference of whomever implemented it.</p><p>I don&rsquo;t even know what the best practice should be in this case. I guess it should be something like:</p>
<ul>
<li>Clients should assume that <code>www.example.com</code> and <code>example.com</code> are different websites and use <a href="https://www.rfc-editor.org/rfc/rfc6596">canonical URLs</a> to sort out which is the &ldquo;real&rdquo; one if they both exist, even if this means potentially crawling the same site twice</li>
<li>Servers should redirect to the one that is correct</li>
</ul>
<p>Then again, the same issue comes up with sites that are available from multiple separate domains, and I&rsquo;ve also seen situations where badly-behaved crawlers will assume that <em>all</em> subdomains are equivalent (e.g. <code>alice.example.com</code> and <code>bob.example.com</code>), sometimes even getting confused by ccTLDs that are multi-level (like <code>.uk</code>) and thinking that, for example, <code>example.co.uk</code> and <code>google.co.uk</code> are the same site because they&rsquo;re both subdomains of <code>co.uk</code>! (This was especially bad back when so-called &ldquo;dynamic DNS&rdquo; providers were super common.)</p><h3 id="6604_h3_7_Redirections"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_7_Redirections" class="toc_link"></a>Redirections</h3><p>There are <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Redirections">so many different kinds of HTTP redirection</a>, each with different implications on caching, HTTP method, and equivalence.</p><p>Clients should probably just note the type and target of a redirection rather than try to treat the URLs as equivalent; for example, <a href="https://beesbuzz.biz/code"><code>/code</code></a> and <a href="https://beesbuzz.biz/code/"><code>/code/</code></a> are distinct URLs and should be treated as such.</p><p>Like, in theory, <code>/code</code> could <em>not</em> redirect and instead have entirely different content from <code>/code/</code>, but in practice, this will almost certainly cause Problems, and I&rsquo;m sure there&rsquo;s even crawlers out there which strip off trailing slashes and then expect the actual request to be redirected.</p><h3 id="6604_h3_8_In-conclusion"><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#6604_h3_8_In-conclusion" class="toc_link"></a>In conclusion</h3><p>When implementing client software, you should do whatever you can to follow the specification, but when implementing server software, you should also be aware of common client implementation issues.</p><p>If you do run into an implementation issue, it is of course a kindness to inform the implementor of the mistake, but some of these issues are common enough that it&rsquo;s best to accommodate the common misunderstandings and just sigh quietly about it.</p>

<hr/><ol><li id="d_e6604_fn1"><p>I have of course reported this as a bug <mark>which they did a great job of investigating and found the real root cause</mark>. They are, incidentally, <del>otherwise</del> amazing; use <a href="https://join.fastmail.com/673cc1b3">my referral link</a> for 10% off your first year of service.&nbsp;<a href="/code/6604-Specification-vs.-implementation#r_e6604_fn1" rev="footnote">↩</a></p></li></ol>

<p><a href="https://beesbuzz.biz/code/6604-Specification-vs.-implementation#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/code/?id=6604&amp;tag=html">#HTML</a>
        
        <a rel="tag" href="https://beesbuzz.biz/code/?id=6604&amp;tag=conformance">#conformance</a>
        

        ]]>



        </content>
        <category term="Code" label="Code" />
        
        
        <category term="HTML" label="HTML" />
        
        <category term="Conformance" label="conformance" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: The secular Serenity Prayer</title>
        <link href="https://beesbuzz.biz/blog/13969-The-secular-Serenity-Prayer" rel="alternate" type="text/html" />
        <published>2026-04-07T10:23:26-07:00</published>
        <updated>2026-04-07T10:23:26-07:00</updated>
        <id>urn:uuid:1fe098b6-095d-405e-b30d-ae8f392379ee</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[A meditation for these trying times]]></summary>
        <content type="html"><![CDATA[

		

<p>I grant myself the serenity<br>
to accept the things I cannot change;<br>
courage to change the things I can;<br>
and wisdom to know the difference.<br>
Living one day at a time;<br>
Enjoying one moment at a time;<br>
Accepting hardships as the pathway to peace;<br>
Taking this world as it is, not as I would have it;<br>
Trusting that we can make all things right if we come together in unity;<br>
That I may be reasonably happy in this life<br>
and that I can leave this world a better place than I found it.</p>




<p><a href="https://beesbuzz.biz/blog/13969-The-secular-Serenity-Prayer#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=13969&amp;tag=meditation">#meditation</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=13969&amp;tag=secular-humanism">#secular humanism</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Meditation" label="meditation" />
        
        <category term="SecularHumanism" label="secular humanism" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: Medications are expensive</title>
        <link href="https://beesbuzz.biz/blog/8443-Medications-are-expensive" rel="alternate" type="text/html" />
        <published>2026-03-30T13:42:31-07:00</published>
        <updated>2026-03-30T13:42:31-07:00</updated>
        <id>urn:uuid:0046d98e-03ec-4902-8409-24cd45c17bb7</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>So, being unemployed, I have to pay my own health insurance. This is currently around $500/month.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>So, being unemployed, I have to pay my own health insurance. This is currently around $500/month.</p><p>This insurance uses high copays on medication in order to &ldquo;encourage the use&rdquo; of cheaper medications. I have four medications which are expensive and get a $100/month copay, so I&rsquo;m still paying $400/month on those meds.</p><p>Two of those meds have copay assistance programs, which present their own set of problems, and insurance companies <em>hate</em> that they exist, because they&rsquo;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&rsquo;s not like they&rsquo;re hurt by it <em>at all</em>.</p><p>But if I had to pay out-of-pocket for these meds, I&rsquo;d be paying more for them than for my house.</p>


<p>Here&rsquo;s the four medications that I&rsquo;m on which are this expensive, and why they really shouldn&rsquo;t be:</p><h3 id="8443_h3_1_Xarelto-rivaroxaban"><a href="https://beesbuzz.biz/blog/8443-Medications-are-expensive#8443_h3_1_Xarelto-rivaroxaban" class="toc_link"></a>Xarelto (rivaroxaban)</h3>
<ul>
<li>Purpose: Blood thinner</li>
<li>Copay: $100/month</li>
<li>Retail price: <a href="https://www.goodrx.com/xarelto">$600</a></li>
</ul>
<p>After my first DVT (the one which turned into an embolism and almost killed me) I was on warfarin, a very cheap, generic blood thinner, but it requires constant monitoring and since it was my first DVT, treatment called for only a six-month course with monitoring.</p><p>After my second DVT indicated that this is a chronic condition, I&rsquo;ve been on Xarelto, a blood thinner that is self-regulating and doesn&rsquo;t put me in as much danger of spontaneous hemorrhages. It also means not having to do weekly bloodwork with my doctor.</p><p>Xarelto&rsquo;s patents have all expired as of 2025 and there are <a href="https://www.drugs.com/availability/generic-xarelto.html">several generics that have been approved by the FDA</a>, but they all cost just as much as the original and aren&rsquo;t available in the dose I take anyway.</p><h3 id="8443_h3_2_Repatha-evolocumab"><a href="https://beesbuzz.biz/blog/8443-Medications-are-expensive#8443_h3_2_Repatha-evolocumab" class="toc_link"></a>Repatha (evolocumab)</h3>
<ul>
<li>Purpose: anti-cholesterol</li>
<li>Copay: $100/month</li>
<li>Retail price: <a href="https://www.goodrx.com/repatha">$240</a></li>
</ul>
<p>I have <a href="https://en.wikipedia.org/wiki/Familial_hypercholesterolemia">familial hypercholesterolemia</a>, which is to say that at a genetic level my liver produces way too much cholesterol. I inherited this from my dad. Regardless of diet or exercise my cholesterol levels are always super high.</p><p>I also cannot tolerate statins, which cause me massive, <em>excruciating</em> full-body pain, along with muscle failure.</p><p>So, Repatha is the only cholesterol-lowering treatment that I can tolerate, and it works great! It&rsquo;s a biweekly injection of monoclonal antibodies which break down the cholesterol itself. It&rsquo;s a really cool immune system hack and it&rsquo;s been super effective.</p><p>But it will be protected by patents until 2033 at the very earliest.</p><h3 id="8443_h3_3_Depo-Estradiol-estradiol-cypiona"><a href="https://beesbuzz.biz/blog/8443-Medications-are-expensive#8443_h3_3_Depo-Estradiol-estradiol-cypiona" class="toc_link"></a>Depo-Estradiol (estradiol cypionate)</h3>
<ul>
<li>Purpose: hormone replacement</li>
<li>Copay: $100/month</li>
<li>Retail price: <a href="https://www.goodrx.com/depo-estradiol">$240</a></li>
</ul>
<p>I&rsquo;ve written extensively about <a href="https://beesbuzz.biz/blog/5248-The-HRT-saga">my ongoing HRT battles</a>, and Depo-Estradiol is what I&rsquo;ve been taking for the last few weeks. It&rsquo;s been pretty effective so far.</p><p>There are two common forms of injectable estradiol: valerate and cypionate. The main difference between them is the carrier oil that&rsquo;s used. Valerate uses castor oil, which is cross-reactive for folks with peanut allergies, and also has a tendency to generate allergies of its own.</p><p>I am sensitive to peanuts and have a bunch of other allergies, so out of an abundance of caution, I take cypionate instead.</p><p>Valerate&rsquo;s retail price is $52, and my copay on it would be $5. Cypionate costs 50x as much. All for a different carrier oil.</p><p>Cypionate&rsquo;s patents don&rsquo;t expire until 2034.</p><h3 id="8443_h3_4_Tonmya-cyclobenzaprine-sublingua"><a href="https://beesbuzz.biz/blog/8443-Medications-are-expensive#8443_h3_4_Tonmya-cyclobenzaprine-sublingua" class="toc_link"></a>Tonmya (cyclobenzaprine, sublingual)</h3>
<ul>
<li>Purpose: sleep aid, chronic pain relief</li>
<li>Copay: $100/month</li>
<li>Retail price: <a href="https://www.goodrx.com/tonmya">$1800</a></li>
</ul>
<p>Cyclobenzaprine is a muscle relaxant that also helps with other aspects of fibromyalgia. It&rsquo;s a well-known, super-cheap medication. Its ordinary oral formulation has a retail price of around $13.</p><p>Unfortunately, as an oral formulation it lingers in the system and has other long-term effects, as it&rsquo;s processed by the liver. For me it&rsquo;s a suitable rescue medication when I&rsquo;m having especially bad pain flareups, but it makes me unable to do anything the next day due to extreme fatigue.</p><p>Recently, Tonmya came to market, as a sublingual, rapid-release formulation of cyclobenzaprine. As far as I can tell it is the exact same medication as before, just in a different carrier that allows it to be taken sublingually, so that it absorbs right into my blood stream and bypasses the liver. It&rsquo;s also a much smaller dose, as 2.5mg knocks me out in 10-15 minutes and gives me 7-8 hours of pretty decent sleep (albeit with some <em>really</em> intense dreams). My generic cyclobenzaprine has a dose of 10mg (4x as much), takes hours to kick in, and stays with me all day long.</p><p>Just by changing up the carrier, though, they were able to jack up the price by around 140x, for a drug that only has niche usage (namely fibromyalgia) from a population that just plan can&rsquo;t afford it (because folks with fibromyalgia tend not to be super-employed).</p><p>Its patents don&rsquo;t expire until 2034.</p><h3 id="8443_h3_5_Blaaaah"><a href="https://beesbuzz.biz/blog/8443-Medications-are-expensive#8443_h3_5_Blaaaah" class="toc_link"></a>Blaaaah</h3><p>If I had to pay the full retail price of these medications, I&rsquo;d be spending about $2880/month. By comparison, the mortgage on my house in Seattle, one of the most expensive housing markets in the US, is $1800. Which is the retail price of Tonmya <em>alone</em>.</p><p>Pharmaceutical pricing is inhumane, and it&rsquo;s only getting worse, as more and more drugs keep on getting &ldquo;reformulated&rdquo; for the sole purpose of protecting them by all-new patents. In most cases these &ldquo;reformulations&rdquo; are just different carriers or they add in additional side drugs to supposedly increase the effectiveness.</p>

<p><a href="https://beesbuzz.biz/blog/8443-Medications-are-expensive#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=8443&amp;tag=medication">#medication</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=8443&amp;tag=fibromyalgia">#fibromyalgia</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=8443&amp;tag=hrt">#HRT</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=8443&amp;tag=hypercholesterolemia">#hypercholesterolemia</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=8443&amp;tag=clotting-disorder">#clotting disorder</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Medication" label="medication" />
        
        <category term="Fibromyalgia" label="fibromyalgia" />
        
        <category term="HRT" label="HRT" />
        
        <category term="Hypercholesterolemia" label="hypercholesterolemia" />
        
        <category term="ClottingDisorder" label="clotting disorder" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: Medical updates</title>
        <link href="https://beesbuzz.biz/blog/16578-Medical-updates" rel="alternate" type="text/html" />
        <published>2026-03-27T14:18:13-07:00</published>
        <updated>2026-03-27T14:18:13-07:00</updated>
        <id>urn:uuid:266c7a7d-b65e-44be-bac6-8f72aa965d2f</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Just some quick medical updates.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>Just some quick medical updates.</p>


<h3 id="16578_h3_1_HRT"><a href="https://beesbuzz.biz/blog/16578-Medical-updates#16578_h3_1_HRT" class="toc_link"></a>HRT</h3><p>I&rsquo;m now on week three of estradiol injections, and it&rsquo;s going pretty well. My mood has very much stabilized, my skin has cleared back up, and I&rsquo;ve gotten the hang of injections. Also my boobs are showing signs of starting to grow again, so that&rsquo;s nice.</p><h3 id="16578_h3_2_Fibromyalgia"><a href="https://beesbuzz.biz/blog/16578-Medical-updates#16578_h3_2_Fibromyalgia" class="toc_link"></a>Fibromyalgia</h3><p>Last night I took my first dose of <a href="https://www.drugs.com/tonmya.html">Tonmya</a>, the new formulation of cyclobenzaprine (aka <a href="https://www.drugs.com/flexeril.html">Flexeril</a>) intended for long-term fibromyalgia treatment. Just like the standard pill form, the sublingual form knocks me out pretty well but then I end up having <em>extremely</em> intense (and emotional) dreams, and my sleep wasn&rsquo;t super restful. It&rsquo;ll take a few days before I can tell if I&rsquo;ll get used to it and if it&rsquo;ll linger in my system like Flexeril does; the point to the sublingual route is that it&rsquo;s supposed to not do that, so maybe this will work better for me long-term.</p><p>I&rsquo;m going to skip it tonight and possibly tomorrow because I&rsquo;ve got <a href="https://sockpuppet.band/live/1661-the-the-virtual-reality-show-show">a bunch</a> of <a href="https://sockpuppet.band/live/1852-VRelium-x-Trans-Academy-Trans-Day-of-Visibility-show">shows</a> in <a href="https://sockpuppet.band/live/3424-skyline">VRChat</a> and I want to be sure I&rsquo;m awake for them, the first one especially.</p><h3 id="16578_h3_3_Fiona"><a href="https://beesbuzz.biz/blog/16578-Medical-updates#16578_h3_3_Fiona" class="toc_link"></a>Fiona</h3><p>Fiona&rsquo;s nasal infection cleared up after a few days of antibiotics and she&rsquo;s still got a week left or so. Hopefully it stays gone, because she&rsquo;s in a much better mood now (plus it&rsquo;s nice not having her get snot everywhere). If it does come back then we&rsquo;ll know that it&rsquo;s a structural or systemic issue that needs some other long-term treatment. But for now it&rsquo;s nice having her back in high spirits.</p><p>I&rsquo;ll be really glad to be done with giving her the doxycycline though. That stuff smells <em>awful</em>. Also it gets everywhere and I&rsquo;m allergic to it.</p>

<p><a href="https://beesbuzz.biz/blog/16578-Medical-updates#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=16578&amp;tag=hrt">#HRT</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=16578&amp;tag=fibromyalgia">#fibromyalgia</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=16578&amp;tag=fiona">#Fiona</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="HRT" label="HRT" />
        
        <category term="Fibromyalgia" label="fibromyalgia" />
        
        <category term="Fiona" label="Fiona" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: Replacing the Waterfox icon on macOS</title>
        <link href="https://beesbuzz.biz/blog/3105-Replacing-the-Waterfox-icon-on-macOS" rel="alternate" type="text/html" />
        <published>2026-03-26T15:38:02-07:00</published>
        <updated>2026-03-26T15:38:02-07:00</updated>
        <id>urn:uuid:e38c208e-2061-4ba6-88e4-baf28295d2fb</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Okay so Mozilla has <a href="https://arstechnica.com/ai/2026/03/mozilla-dev-introduces-cq-a-stack-overflow-for-agents/">gone deep into the AI hole</a> again, so I&rsquo;ve switched back to <a href="https://www.waterfox.com/">Waterfox</a>, a fork of Waterfox that focuses on the core browsing experience and eschews all of the stuff that nobody actually wants.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>Okay so Mozilla has <a href="https://arstechnica.com/ai/2026/03/mozilla-dev-introduces-cq-a-stack-overflow-for-agents/">gone deep into the AI hole</a> again, so I&rsquo;ve switched back to <a href="https://www.waterfox.com/">Waterfox</a>, a fork of Waterfox that focuses on the core browsing experience and eschews all of the stuff that nobody actually wants.</p><p>Waterfox is great, <em>but</em> its app icon is ugly and doesn&rsquo;t look like a browser to me.</p><p>macOS does let you customize app icons but it isn&rsquo;t super clear how to do it successfully, so here&rsquo;s a process that works for me, as of macOS Tahoe 26.4.</p>


<ol>
<li>Find an icon that you like; finding a good one that&rsquo;s actually transparent is surprisingly difficult but <a href="https://www.reddit.com/r/waterfox/comments/1qrpcdk/new_custom_waterfox_icons/">there&rsquo;s some good ones here</a> and of course you can get the classic &ldquo;we are totally not Firefox&rdquo; ones on <a href="https://en.wikipedia.org/wiki/Waterfox">the Wikipedia page</a></li>
<li>Download it in a transparency-enabled format, such as png, webp, or svg</li>
<li>Open up the Icon Composer application (which is installed as part of XCode)</li>
<li>Drag the image in and set the layout to the way you like it
<figure class="images"><a href="https://beesbuzz.biz/blog/3105-Replacing-the-Waterfox-icon-on-macOS"><img src="https://beesbuzz.biz/static/_img/5b/798f/waterfox-icon-composer_b4534ec981_640x410_q35.webp" width="640" height="410" srcset="https://beesbuzz.biz/static/_img/5b/798f/waterfox-icon-composer_b4534ec981_640x410_q35.webp 1x, https://beesbuzz.biz/static/_img/5b/798f/waterfox-icon-composer_b4534ec981_1280x821_q35.webp 2x" loading="lazy" class="u-photo" alt="waterfox-icon-composer.png"></a></figure></li>
<li>Edit &gt; Copy As Image (⇧⌘C)</li>
<li>Find the application in Finder, and File &gt; Get Info (⌘I)</li>
<li>Click on the application icon and do Edit &gt; Paste (or ⌘V)
<figure class="images"><a href="https://beesbuzz.biz/blog/3105-Replacing-the-Waterfox-icon-on-macOS"><img src="https://beesbuzz.biz/static/_img/fa/bc46/waterfox-get-info_8e1367b83f_355x640_q35.webp" width="355" height="640" srcset="https://beesbuzz.biz/static/_img/fa/bc46/waterfox-get-info_8e1367b83f_355x640_q35.webp 1x, https://beesbuzz.biz/static/_img/fa/bc46/waterfox-get-info_8e1367b83f_710x1280_q35.webp 2x" loading="lazy" class="u-photo" alt="waterfox-get-info.png"></a></figure></li>
<li>Restart the app</li>
</ol>
<p>and then you should have a nicer-looking app icon:</p>
<figure class="images"><a href="https://beesbuzz.biz/blog/3105-Replacing-the-Waterfox-icon-on-macOS"><img src="https://beesbuzz.biz/static/_img/2e/d420/waterfox-icon-improved_2b84d9bf24_q35.webp" width="450" height="220" loading="lazy" class="u-photo" alt="waterfox-icon-improved.png"></a></figure>
<p>Or if you don&rsquo;t want the silly Liquid Glass shaped thing it&rsquo;s even easier:</p>
<ol>
<li>Open your desired icon in Preview or a webpage or whatever</li>
<li>Copy it (⌘C in Preview, right-click and &ldquo;copy image&rdquo; in Waterfox, etc.)</li>
<li>Find the application, and File &gt; Get Info (⌘I))</li>
<li>Paste (⌘V)</li>
</ol>

<figure class="images"><a href="https://beesbuzz.biz/blog/3105-Replacing-the-Waterfox-icon-on-macOS"><img src="https://beesbuzz.biz/static/_img/6c/8202/waterfox-shaped-info_e2e514509e_355x640_q35.webp" width="355" height="640" srcset="https://beesbuzz.biz/static/_img/6c/8202/waterfox-shaped-info_e2e514509e_355x640_q35.webp 1x, https://beesbuzz.biz/static/_img/6c/8202/waterfox-shaped-info_e2e514509e_710x1280_q35.webp 2x" loading="lazy" class="u-photo" alt="waterfox-shaped-info.png"></a><a href="https://beesbuzz.biz/blog/3105-Replacing-the-Waterfox-icon-on-macOS"><img src="https://beesbuzz.biz/static/_img/29/6706/waterfox-shaped-dock_177bdeed9c_q35.webp" width="288" height="228" loading="lazy" class="u-photo" alt="waterfox-shaped-dock.png"></a></figure>


<p><a href="https://beesbuzz.biz/blog/3105-Replacing-the-Waterfox-icon-on-macOS#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=3105&amp;tag=waterfox">#Waterfox</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=3105&amp;tag=macos">#macOS</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=3105&amp;tag=browsers">#browsers</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Waterfox" label="Waterfox" />
        
        <category term="macOS" label="macOS" />
        
        <category term="Browsers" label="browsers" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: The State of the Fiona</title>
        <link href="https://beesbuzz.biz/blog/12467-The-State-of-the-Fiona" rel="alternate" type="text/html" />
        <published>2026-03-18T11:21:58-07:00</published>
        <updated>2026-03-18T11:21:58-07:00</updated>
        <id>urn:uuid:bacb431a-94a3-4a3f-8593-7c2e4948a4c7</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Fiona&rsquo;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&rsquo;s been having continuous problems with mucus in one nostril, and this past weekend she was also having nasal bleeding, although that&rsquo;s cleared up.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>Fiona&rsquo;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&rsquo;s been having continuous problems with mucus in one nostril, and this past weekend she was also having nasal bleeding, although that&rsquo;s cleared up.</p><p>Anyway, she&rsquo;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&rsquo;s unlikely to be a sinus infection since it&rsquo;s not bilateral.</p><p>Unfortunately, because she&rsquo;s so elderly (she&rsquo;s <em>at least</em> 15 years old, possibly older), the vet is hesitant to do anything invasive (such as dental work or a CT scan) since they&rsquo;d all require anesthesia, and that can make things a lot worse.</p><p>She&rsquo;s also lost a lot of weight, but it&rsquo;s been difficult to keep her well-fed without also overfeeding Tyler as a consequence. It doesn&rsquo;t help that she&rsquo;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&rsquo;t seem so appetizing to her right now).</p><p>So for now we&rsquo;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.</p><p>Fiona&rsquo;s still super energetic and cuddly and generally a happy little creature, but she&rsquo;s at the age where things could take a sudden turn for the worse and it&rsquo;s time to start feeling grateful for the time I&rsquo;ve had with her.</p><p>On the plus side, she&rsquo;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&rsquo;m not going to go out of my way to extend her life; I&rsquo;d much rather she has a happy time on this planet while she&rsquo;s here.</p>




<p><a href="https://beesbuzz.biz/blog/12467-The-State-of-the-Fiona#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=12467&amp;tag=cats">#cats</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=12467&amp;tag=fiona">#Fiona</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=12467&amp;tag=pet-health">#pet health</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Cats" label="cats" />
        
        <category term="Fiona" label="Fiona" />
        
        <category term="PetHealth" label="pet health" />
        

        

    </entry>
    <entry>
        
        <title>🔏 Private entry [Sfsg]</title>
        <link href="https://beesbuzz.biz/14775" rel="alternate" type="text/html" />
        <published>2026-03-15T23:55:10-07:00</published>
        <updated>2026-03-15T23:55:10-07:00</updated>
        <id>urn:uuid:9b803dae-a398-4d92-8bc7-8fe532dfe57e</id>
        <author><name>fluffy</name></author>
        <content type="html">This entry has a restricted audience.</content>
        

    </entry>
    <entry>
        
        <title>fluffy rambles: Happy π day</title>
        <link href="https://beesbuzz.biz/blog/314159-Happy-%CF%80-day" rel="alternate" type="text/html" />
        <published>2026-03-14T03:14:16-07:00</published>
        <updated>2026-03-14T03:14:16-07:00</updated>
        <id>urn:uuid:24ed4024-657b-46d0-9d86-64ef0f9cc04d</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>Today is <a href="https://en.wikipedia.org/wiki/Pi_Day">π day</a>, 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 system​. But π day is a bit special to me. Or rather, <em>this</em> π day is special to me, because it&rsquo;s the 10th anniversary of an important thing that happened.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>Today is <a href="https://en.wikipedia.org/wiki/Pi_Day">π day</a>, 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 system<sup id="r_e314159_fn1"><a href="https://beesbuzz.biz/blog/314159-Happy-%CF%80-day#d_e314159_fn1" rel="footnote">1</a></sup>. But π day is a bit special to me. Or rather, <em>this</em> π day is special to me, because it&rsquo;s the 10th anniversary of an important thing that happened.</p>


<p>10 years ago I was working for HBO&rsquo;s VR research lab. It&rsquo;s through here that I <a href="https://beesbuzz.biz/comics/journal/good_things/882-October-2017-Never-gets-old">was a recipient of a joint Emmy award</a>, but more importantly, it&rsquo;s also where I finally felt comfortable coming out as trans in real life, thanks in no small part to my <em>amazing</em> coworkers at the time (special shout-outs in particular to <a href="https://www.tannerellison3d.com/">Tanner</a> and <a href="https://www.clairehummel.com/">Claire</a>; I doubt either of you are reading this but gosh did I love working with and knowing you both).</p><p>In particular, I was attending GDC 2016, and looking around and seeing all of the people of gender and realizing that the games industry was finally a much more inclusive place than when I first started in it. So many people around me expressing themselves and feeling comfortable and not being discriminated against for it. There were a handful of gross transphobes on the GDC social app, but it was easy enough to report their behavior, and gratifying to learn that they&rsquo;d been evicted from the conference for it.</p><p>I felt sad for what I&rsquo;d missed out on, for being stuck in my closet for so long and having never felt the support I needed to feel comfortable with publicly transitioning.</p><p>I&rsquo;d worked briefly at a small games company in 1999 where the transphobia was <em>overt</em>, and later at Ubisoft in 2004 where it was still present enough that I didn&rsquo;t feel comfortable being open about stuff to anyone (aside from one coworker who I&rsquo;d met online first). Some of my gender-related stuff did leak out at Ubisoft but it was easier to just sweep it under the rug than to commit. And after Ubisoft was my first stint at Amazon, where gender variance was <em>tolerated</em> as a &ldquo;quirk&rdquo; but not really actively embraced, and then in 2007 I got recruited to Sony by a friend who I thought was savvy but turned out to very much not be, and who treated my transness as an extremely online thing.</p><p>I&rsquo;d also been medically transitioning for years at this point (with a brief stint of HRT in 2004, and starting it For Realsies in 2011, and had an orchiectomy in 2014), and this had <em>helped</em>, but I was still basically living as a man in my daily life, and hating every moment of it.</p><p>So here I was at GDC, surrounded by people who were living their best lives and generally just Being, and I posted to the emerging trans chat on the GDC app, something like, &ldquo;if I don&rsquo;t come out at work by the end of the week I&rsquo;m going to kill myself&rdquo; in a sorta-joking way but which wasn&rsquo;t really a joke. And people reached out to me to make sure I was okay, and I assured them that I was.</p><p>And then I texted my coworker Tanner. I forget exactly what I said, but it was something like, &ldquo;Hey, do you think folks at HBO would be accepting if someone came out as trans? Asking for a friend (the friend is me).&rdquo;</p><p>And we got to talking and it became very clear to me that coming out would be good for me and that I&rsquo;d be accepted, and I changed my Slack username from &ldquo;[firstname] [lastname]&rdquo; to &ldquo;[first initial] [lastname]&rdquo; and that caused a bunch of other people to wonder what was up, and I realized I felt safe talking to them about it too, and this led to me officially coming out at work, 10 days later, which went pretty well, all things considered.</p><p>I remember it specifically being π day because this is also when I posted a <a href="https://songfight.net/forums/viewtopic.php?t=10553">Song Fight! forum thread about it</a>, which also went (mostly) quite well. I&rsquo;d been out as trans in the early days of Song Fight! but met a bunch of resistance (and occasional outright transphobia) from some folks (<em>most</em> of whom have since become much more accepting and are now amazing allies) and it became easier to just&hellip; roll with it and pretend not to care when people used the wrong pronouns for me, or insisted on referring to me by my deadname. I&rsquo;d try to sneak in little nudges like asking that in our &ldquo;Theme Song Fight&rdquo; things to not use gendered pronouns when referring to me (which was usually ignored), but having the momentum of good feelings from the conversation with Tanner and the new motivation to Be Myself filled me with determination.</p><p>I haven&rsquo;t done a good job of tracking most of my &ldquo;transiversaries.&rdquo; I have no idea when I started HRT (although it looks like it was sometime in <a href="https://beesbuzz.biz/comics/journal/good_things/214-September-25-2011-Sleepy">September 2011</a>), I always forget to celebrate my other milestones (aside from vaguely remembering that my <a href="https://beesbuzz.biz/articles/5195-nullification-surgery">bottom surgery</a> happened to be almost exactly three years after my orchi, and I guess the 10th anniversary of <em>that</em> happens sometime in January of next year)<sup id="r_e314159_fn2"><a href="https://beesbuzz.biz/blog/314159-Happy-%CF%80-day#d_e314159_fn2" rel="footnote">2</a></sup>, but this one? This one feels meaningful enough to at least acknowledge.</p><p>It is also somewhat fitting that today I am finally <a href="https://beesbuzz.biz/blog/5248-The-HRT-saga">switching to injectable estradiol</a>, after much difficulty with previous methods of delivery.</p><p>Anyway. Maybe I&rsquo;ll make quiche for dinner.</p><p>Anyway, happy π day.</p>

<hr/><ol><li id="d_e314159_fn1"><p>Personally, I feel that <a href="https://en.wikipedia.org/wiki/Tau_%28mathematics%29">τ</a> has better symmetry (for example, how the area of a circle, \(A=\frac{1}{2}\tau r^2\), shares an integral basis with \(x=\frac{1}{2}at^2\), the position of an object after constant acceleration), although I try not to be annoying about it. Also, τ day happens to be exactly one fortnight after my birthday.&nbsp;<a href="/blog/314159-Happy-%CF%80-day#r_e314159_fn1" rev="footnote">↩</a></p></li><li id="d_e314159_fn2"><p>Okay so I just looked it up, orchi was on January 30, 2014, and bottom surgery was January 27, 2017. Maybe I&rsquo;ll remember to celebrate it by eating some baba ghanoush or something.&nbsp;<a href="/blog/314159-Happy-%CF%80-day#r_e314159_fn2" rev="footnote">↩</a></p></li></ol>

<p><a href="https://beesbuzz.biz/blog/314159-Happy-%CF%80-day#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=314159&amp;tag=%CF%80">#π</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=314159&amp;tag=pi-day">#pi day</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=314159&amp;tag=3.14159265358979323846264338">#3.14159265358979323846264338</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=314159&amp;tag=math">#math</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=314159&amp;tag=gender">#gender</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="" label="π" />
        
        <category term="PiDay" label="pi day" />
        
        <category term="314159265358979323846264338" label="3.14159265358979323846264338" />
        
        <category term="Math" label="math" />
        
        <category term="Gender" label="gender" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: The HRT saga</title>
        <link href="https://beesbuzz.biz/blog/5248-The-HRT-saga" rel="alternate" type="text/html" />
        <published>2026-03-13T22:46:43-07:00</published>
        <updated>2026-03-13T22:46:43-07:00</updated>
        <id>urn:uuid:d439bc1e-3b76-44e9-aaa5-3f51420c430d</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>It&rsquo;s about time I finally write a timeline of how frustrating HRT has been over the years, because I&rsquo;m tired of re-explaining it and just want something to point folks to whenever it comes up.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>It&rsquo;s about time I finally write a timeline of how frustrating HRT has been over the years, because I&rsquo;m tired of re-explaining it and just want something to point folks to whenever it comes up.</p><p>Short version: I have historically been done extremely dirty by the healthcare system when it comes to HRT access.</p>


<h3 id="5248_h3_1_2004-DIY"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_1_2004-DIY" class="toc_link"></a>2004: DIY</h3><p>Back in 2004 I was working at Ubisoft and did not feel safe in my situation, but I felt desperately like I needed to be on estradiol. So I took the DIY approach for a few months, doing 1mg/day imported from New Zealand.</p><p>This made me feel <em>so</em> much better right away, but I was worried about clotting issues and decided to hold off for a while until I felt safer in my situation.</p><h3 id="5248_h3_2_2011-San-Francisco"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_2_2011-San-Francisco" class="toc_link"></a>2011: San Francisco</h3><p>I had been living in San Francisco for a few years and the pressure was building up again. I did not have access to doctors I felt safe talking to about HRT. There was one doctor I knew of who specialized in transgender medicine but he had a very long waitlist and didn&rsquo;t accept my insurance. Eventually I managed to finagle different insurance which he did take, and made it through his waiting list.</p><p>He put me on 1mg/day of oral estradiol as well as a typical dose of spironolactone, but was incredibly acephobic to me, and dismissive of my nonbinary identity (which I referred to as &ldquo;neutrois&rdquo; at the time because I was still figuring shit out). I ended up not being able to tolerate the spironolactone and due to not being on an antiandrogen he didn&rsquo;t want to raise my estradiol dose.</p><h3 id="5248_h3_3_2012-Seattle"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_3_2012-Seattle" class="toc_link"></a>2012: Seattle</h3><p>After I returned to Seattle I found a doctor who was willing to administer my HRT. I talked about my neutrois identity and how I leaned feminine. In my notes he wrote,</p>
<blockquote>
<p>[patient] considers himself gender-neutral and uses they/them pronouns.</p></blockquote>
<p>Anyway. He kept me at 1mg/day.</p><h3 id="5248_h3_4_2014"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_4_2014" class="toc_link"></a>2014</h3><p>I got my orchiectomy. The surgeon who administered it almost canceled it because she thought I might regret it based on me asking offhandedly (during a pre-surgery panic attack and rumination cycle) if it&rsquo;d be possible to harvest sperm from the testes post-removal. I had to plead with her to go through with it. Afterwards she was really surprised to learn that I was happy with the results.</p><p>I was still with the same doctor as in 2012, and he did not want to raise my dose even though I wasn&rsquo;t getting the level of breast development I wanted.</p><p>Later that year I switched jobs, and due to the change in insurance and also finally clearing yet another doctor waiting list, ended up switching to a doctor who specialized in trans healthcare. She raised me to 2mg/day.</p><h3 id="5248_h3_5_2017"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_5_2017" class="toc_link"></a>2017</h3><p>After leaving that job to found a startup, I got my bottom surgery, which was supposed to be covered via the COBRA from the job, but it more or less wasn&rsquo;t.</p><p>I switched to marketplace insurance. Except for some reason the Washington Healthplan Finder thing decided to put me on AppleCare due to no declared income even though I requested normal marketplace insurance, and they assigned me a county doctor that did not want to touch HRT. Then that insurance got canceled on me because I failed to provide proof of no income that they never requested from me (and how do you provide a lack of a paystub, anyway?), but I scrambled to get marketplace insurance with the same provider that I was on via COBRA before.</p><p>Then in November I had an embolism due to a blood clot in my leg, and the hematologist insisted I had to cease HRT immediately and forever. She was super cavalier about it and had an attitude that I was just taking it for funsies, or something. This led to the worst month of my life, but my doctor didn&rsquo;t want to go against what the hematologist said.</p><p>A month later my doctor finally gave me a referral to a different hematologist, who said that of <em>course</em> I needed to be on HRT and gave me the all-clear to go back on at 1mg/day to start with. No consideration was given to alternate modes of dosing.</p><p>Then my insurance provider left the public marketplace and I had to scramble to get new insurance, and I ended up on an HMO which meant I had to change doctors <em>again</em>.</p><p>This new doctor was <em>okay</em> but he would not consider raising my dose past 1mg/day because of the clot risk. No consideration was given to other modes of dosing. My blood tests came back at 100pg/mL, which is borderline acceptable for post-transition maintenance. I still had no real breast development, and my doctor insisted that it was too late to get anything more through estradiol and if I wanted more breast tissue I should consider top surgery.</p><h3 id="5248_h3_6_2019"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_6_2019" class="toc_link"></a>2019</h3><p>I took a job with the university, but this allowed me to stick with the HMO so I didn&rsquo;t need to change doctors. During yet another round of massive and debilitating chronic pain flareups I made an appointment with my doctor, who ended up needing to cancel at the last minute and the appointment was taken over by a nurse pracitioner, who cared enough about my medical mystery to refer me to a rheumatologist, who then finally diagnosed me with fibromyalgia. So that was progress, at least in terms of putting a name to my chronic pain, although that would then go on to make it even more difficult in the long run since now every single pain-related symptom I experience is chalked up to that.</p><p>Although to be fair, most of them do turn out to be because of it.</p><h3 id="5248_h3_7_2020"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_7_2020" class="toc_link"></a>2020</h3><p>I went back to working in tech, and with this came a change in insurance. I ended up with a new doctor who fucking sucked; she prescribed mindfulness for everything, particularly my chronic pain.</p><p>I developed another DVT, which I caught before it threw a clot (but had to insist to my doctor that it felt like a clot and wasn&rsquo;t &ldquo;just&rdquo; my fibromyalgia), and as a result of this started on blood thinners for life. Because of the clotting disorder, 1mg/day of estradiol was all I would ever get, at most, and even then I&rsquo;d have to monitor things. I asked about going on transdermal or injections, and my doctor insisted that their clotting risks were just as bad as oral. She was also begrudging about even letting me stay on 1mg/day orally.</p><h3 id="5248_h3_8_2021"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_8_2021" class="toc_link"></a>2021</h3><p>I moved to a small town and changed doctors again. Things were okay, and my levels were being checked and were still holding steady at around 100pg/mL.</p><h3 id="5248_h3_9_2022"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_9_2022" class="toc_link"></a>2022</h3><p>My doctor decided that because of the clotting issues I should be switched to transdermal. Unfortunately, it was the lowest possible dose of transdermal. But my serum levels were holding steady for the time being.</p><p>He also insisted that my chronic pain was due to my high triglycerides which in turn were caused by my familial hypercholesteromia. We tried a bunch of options for reducing them to see if that would help but I couldn&rsquo;t tolerate any of the medications that were available. He refused to try any other plan of attack and just blamed everything on my triglycerides.</p><p>Later that year, he burned out and disappeared. I was reassigned a nurse practitioner, who fucking sucked, and who blamed all of my problems on my weight, and without even talking to me decided that I needed to &ldquo;<a href="https://beesbuzz.biz/blog/7395-Doctors-please-listen">stop eating fast food</a>,&rdquo; so I changed doctors again.</p><p>This new doctor was willing to learn about trans stuff but had absolutely no understanding of any of it (&ldquo;But behind all that you&rsquo;re still male, right?&rdquo; as if I had just had drywall and spackle installed on top of my genitalia).</p><h3 id="5248_h3_10_2023"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_10_2023" class="toc_link"></a>2023</h3><p>Then she burned out and disappeared.</p><p>I was reassigned to another GP at the same clinic, who insisted that she could not treat me and also that it was irresponsible to get HRT from anyone other than an endocrinologist, but the endocrinologist she referred me to had a waiting list and wasn&rsquo;t willing to take me on as a patient. The GP refused to even order blood work.</p><p>Meanwhile, Rite-Aid bought out the pharmacy I went to and shut it down.</p><p>I had some major chest pains that led me to start seeing a cardiologist. After a battery of tests he determined there&rsquo;s nothing wrong with my heart (for once the &ldquo;it&rsquo;s just your fibromyalgia&rdquo; turned out to be <a href="https://en.wikipedia.org/wiki/Costochondritis">correct</a>) but this still led to me finally getting on a cholesterol-reducing drug (Repatha, an injection) that worked well without side effects, and which also reduced my triglycerides. This made no difference to my chronic pain but at least my cholesterol levels are finally to where doctors stop telling me &ldquo;diet and exercise&rdquo; for everything.</p><h3 id="5248_h3_11_2024"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_11_2024" class="toc_link"></a>2024</h3><p>I finally found a doctor who listed gender-affirming care as one of her specialties, and she was pretty good. But she just kept me on transdermal HRT, and my levels were still not being checked. She was also a few towns over and it was getting difficult for me to go that far due to fatigue and driving anxiety.</p><p>The clinic wanted to do all the labwork in-house but I preferred to get it done at the hospital near me since it was easier for me to get to, and both places were just going to Labcorp for all testing anyway, so why would it matter? So I insisted on the clinic just sending a labwork order to Labcorp.</p><p>Most of the essential stuff got checked, but they kept on conveniently forgetting to send over the order for estradiol.</p><p>Meanwhile, Rite-Aid stopped being able to fill prescriptions reliably, and I switched to Safeway.</p><h3 id="5248_h3_12_2025"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_12_2025" class="toc_link"></a>2025</h3><p>The clinic I was going to was opening a new branch in my town! But they weren&rsquo;t sure when it was opening. And my doctor wasn&rsquo;t going to practice out of that office, and she was also very busy and backlogged so it was difficult to get an appointment with her. She kept on sending orders for getting my estradiol checked. Those tests never ended up happening (while other tests did). Clinic staff would misgender me on the regular.</p><p>My fatigue and anxiety were getting worse and I ended up only using Lyft to get to the clinic, which made it quite an expensive ordeal. I was also having other slides in my overall quality of life, and according to my mood tracker, my last good day was sometime in July.</p><p>In November she transferred me over to another doctor at her clinic, who was brand new, enthusiastic about gender-affirming care, and was also going to be working part-time at the clinic in my own town, so that was a good reason to switch.</p><p>I was also finding that I was having a lot of symptoms that were consistent with very low hormone levels, and I finally got the stars to align and got my estradiol levels checked.</p><p>They were 31pg/mL, which is dangerously low, and it&rsquo;s quite likely that they&rsquo;d been at that level for quite some time, possibly contributing to my fatigue and pain issues, and definitely causing plenty of other problems for me.</p><p>My doctor doubled my transdermal dose, and ordered another test to take place a few months later.</p><p>It took a while for the updated transdermal dose to get filled by any pharmacies.</p><p>Meanwhile, Rite-Aid shut down completely, as did my town&rsquo;s Walgreens, so suddenly the Safeway pharmacy became very difficult to deal with because of insufficient staff and very long lines. Prescriptions kept getting lost. So I switched to CVS mail-order for everything that I could, but CVS refused to fill my Repatha mail-order, so I still had to go to Safeway for that.</p><h3 id="5248_h3_13_2026-so-far"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_13_2026-so-far" class="toc_link"></a>2026 so far</h3><p>After being on the higher transdermal dose for a few months, I got my levels checked again. They went up &mdash; to 32pg/mL.</p><p>I finally discussed injections with my doctor and he agreed that it was worth a try, but also warned me of the clotting risk and how he&rsquo;s only willing to do this thanks to informed consent. Because of some concerns regarding a potential peanut allergy, which in turn could translate to a potential castor oil allergy, he prescribed me estradiol cypionate, which is considerably more expensive (by many orders of magnitude) over estradiol valerate, but it also has some other advantages such as slower absorption and less of a serum level spike, so it seems like a good call.</p><p>Unfortunately, CVS mail-order will not fill that either, and they took their sweet fucking time letting me know about that. So that prescription was moved to Safeway. And it took forever to be filled, too, all the while I&rsquo;m nearly out of my transdermal patches (ineffective as they are) and getting anxious.</p><p>Fortunately, Safeway finally managed to fill the prescription today, and I got the estradiol, the 18ga needles for dosing, and the 25ga needles for injecting.</p><p>Unfortunately, the doctor forgot to also transfer over the prescription for the syringes, so I have no way to actually inject it.</p><p>Fortunately, I was able to get in touch with Safeway&rsquo;s pharmacist right before they closed and she said she&rsquo;d put a note on my file to give me some syringes when I come in next time, so I&rsquo;ll be picking them up sometime tomorrow, and I&rsquo;ve also left a message with my doctor asking him to remember to prescribe the syringes too. (He also didn&rsquo;t remember to transfer over the alcohol wipes but that&rsquo;s something I can get OTC and which I already have a good supply of.)</p><p>Anyway, tomorrow I&rsquo;ll hopefully be starting on my injections, which just so happens to be on another special trans-related anniversary&hellip; but more about that in a post scheduled to go live in a few hours.</p><p>My doctor is starting me at 0.2mg/week and then we&rsquo;ll adjust based on how I respond to it. I already have labwork scheduled for two months from now, to get my levels measured at the end of my dosing cycle. I&rsquo;m cautiously optimistic.</p><h3 id="5248_h3_14_Random-thoughts"><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#5248_h3_14_Random-thoughts" class="toc_link"></a>Random thoughts</h3><p>Healthcare is a complete mess right now, particularly in the Seattle area, and for all of the great experiences people have with being trans here, I&rsquo;ve sure not had a good one in terms of medical access.</p><p>It&rsquo;s understandable that doctors have been hesitant regarding clotting risks, but that caution needs to be balanced against other issues that also impact my quality of life. How much has my chronic pain and fatigue been affected by being basically menopausal for who knows how long?</p><p>And how long have my levels been this low?</p><p>Maybe I could have done a better job of advocating for myself and trying to get on injections earlier, because I&rsquo;ve been super frustrated at my lack of breast development. I think that the doctor who told me that it was too late to develop further was misguided in his judgement. Or maybe he was using that as an excuse to avoid a clotting risk.</p><p>So many doctors (including my current one) are under the misapprehension that the clotting risk of injections is too high, and that it&rsquo;s nearly as high as oral route, but the thing is that the clotting factors are primarily due to liver involvement, which <em>only</em> happens in the oral route, not in injections. But unfortunately the amount of peer-reviewed research on this is minimal, because it&rsquo;s in the intersection of &ldquo;women&rsquo;s issues&rdquo; and &ldquo;trans issues,&rdquo; which are both <em>horribly</em> under-studied.</p><p>Estradiol cypionate also only exists (at least in terms of marketing) as a medication because of the case made for it helping cis women through menopause, and it&rsquo;s only indicated as a short-term relief in that capacity. Its use as transgender HRT is technically off-label, even though my understanding is that&rsquo;s basically <em>all</em> it&rsquo;s used for, and of course in the current political climate, transgender HRT is the villain of the week.</p><p>Heck, a week ago there was an incident where a drunk and stoned person had a driving incident nearby, and the rumor that&rsquo;s spreading is that she&rsquo;s a trans woman and that she was raging because of being on &ldquo;the wrong sex hormones,&rdquo; and that is part of the overall narrative: that the &ldquo;wrong hormones&rdquo; (based solely on one&rsquo;s birth sex) is Bad and that it causes Rage and Issues, when at least for me, the <em>testosterone</em> was what was wrong for me, and estradiol helped my mood and sense of calm <em>immensely</em>. The lack of estradiol in my system for the past who-knows-how-long is probably a big part of why I&rsquo;ve been so quick to anger for so long!</p><p>And how many of my interpersonal problems have been due to that? Who knows! But there&rsquo;s been a few important bridges burnt that will be difficult, if not impossible, to repair, and the timeline certainly matches my theory of how long I&rsquo;ve been in misery due to a lack of proper hormones.</p><p>I needed my levels to be checked a lot more frequently, and for that to happen I needed to have a medical system that gave even the tiniest shit about my well-being.</p><p>Going forward I seem to have that, at least. As long as my current doctor doesn&rsquo;t also burn out and disappear.</p><p>And as long as my insurance doesn&rsquo;t agree with the right-wing shitheads that HRT is the root of all evil and it must be stopped.</p><p>I think that last possibility is what scares me the most.</p>

<p><a href="https://beesbuzz.biz/blog/5248-The-HRT-saga#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=5248&amp;tag=transgender">#transgender</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=5248&amp;tag=healthcare">#healthcare</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=5248&amp;tag=hormones">#hormones</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=5248&amp;tag=estrogen">#estrogen</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=5248&amp;tag=estradiol">#estradiol</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=5248&amp;tag=timeline">#timeline</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Transgender" label="transgender" />
        
        <category term="Healthcare" label="healthcare" />
        
        <category term="Hormones" label="hormones" />
        
        <category term="Estrogen" label="estrogen" />
        
        <category term="Estradiol" label="estradiol" />
        
        <category term="Timeline" label="timeline" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: I am not anti-AI</title>
        <link href="https://beesbuzz.biz/blog/14715-I-am-not-anti-AI" rel="alternate" type="text/html" />
        <published>2026-03-12T06:44:57-07:00</published>
        <updated>2026-03-12T06:44:57-07:00</updated>
        <id>urn:uuid:099d19ac-17e4-4785-a458-43f29221c3fe</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>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.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>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.</p><p>As with basically <em>everything</em> 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&rsquo;s gotten to the point that I feel like I&rsquo;m constantly on the defense and on the edge of a panic attack.</p><p>I&rsquo;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&rsquo;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.</p>


<p>First off, a big part of the problem is that &ldquo;AI&rdquo; is a very broad term that means a lot of different things. In the current discourse, it mostly comes down to LLMs (Large Language Models) and similar approaches to consolidating all of human knowledge into a gigantic model that can do all the things.</p><p>But AI covers a lot of ground. Even the same basic techniques for building an AI can have different implications at different scales.</p><p><em>Generally-speaking,</em> as a rule of thumb: I am in favor of things that operate at a smaller scale, and opposed to things that work at a larger scale.</p><p>If you are locally training a model based on data that you can store locally, and where that data can be vetted for accuracy, sure! That&rsquo;s great! This covers a lot of ground. Data modeling, predicting, local search on internal knowledge, image segmentation, image classification, parameter tuning, all good stuff.</p><p>But if you are training a gigantic model that requires oodles of processing power and energy, and which also requires the non-consensual harvesting of data at a large scale, causing <a href="https://lwn.net/Articles/1008897/">operational effects</a> on other peoples&#39; websites/services/livelihoods, and consuming every last shred of data on the Internet, that&rsquo;s where I have a problem.</p><p>If you are building something that works as an assistive technology to someone, that&rsquo;s great. Helping people with disabilities, helping people to come up with ideas for how to build things, helping with education and learning, boosting someone&rsquo;s creativity? I love that.</p><p>If you are building something that <em>replaces</em> human creativity or understanding, though, I have a problem.</p><p>If your justification to something is, &ldquo;well, people have been doing this for years&rdquo; and &ldquo;this&rdquo; refers to something that would generally be considered cheating if a human were caught doing it (such as copying other peoples&#39; work, especially without attribution), that&rsquo;s not a great defense of it.</p><p>For an example of what I mean by that: a common defense of LLM-based programming is that &ldquo;people just copy-paste stuff from Stack Overflow, this is no different.&rdquo; But it <em>is</em> different:</p>
<ul>
<li>People post answers to Stack Overflow for the purpose of being used; there is <em>consent</em> involved</li>
<li>People post to Stack Overflow to help other people learn how to do things, not to have the code directly copied</li>
<li>People (hopefully) consult Stack Overflow to learn how to do a thing, and not just how to get the specific piece of code to do the specific thing they&rsquo;re trying to solve</li>
</ul>
<p>Or another defense of LLM-based stuff comes down to &ldquo;citing Wikipedia&rdquo; or the like, and many of the same counterarguments apply. People edit Wikipedia for the purpose of teaching others things, and Wikipedia is not meant to be a primary source, but a place to find primary sources. Wikipedia is a totally fine resource for finding things for further research, but it is not a thing to copy from wholesale. It is not a homework engine.</p><p>Another thing: I am totally in favor of technology that helps people to not have to work so hard. But one of the awful side-effects of the current AI push is to make people work harder, and with the work they&rsquo;re doing being less creative and more mundane.</p><p>I want AI to help me to <a href="https://sockpuppet.band/blog/1616-Trying-out-Symphonic#1616_h3_4_Yet-another-side-rant-about-AI">automate my mundane things</a> away so that I have more time and energy to work on the stuff that I enjoy doing. But the AI that&rsquo;s being shoved down my throat is trying to replace the things I <em>like</em> doing, such as solving problems or making music or drawing artwork, while I&rsquo;m still left holding the bag of the tedium that exacerbates my chronic pain, like filling out forms and re-entering metadata ad infinitum.</p><p>AI can be an amazing, powerful tool to help people do more things more easily, but that isn&rsquo;t how I&rsquo;m seeing it be used. Instead, I&rsquo;m seeing it as a force that&rsquo;s giving businesses a justification to <a href="https://www.npr.org/2025/10/28/nx-s1-5588545/amazon-layoffs-corporate-workers-ai">lay off knowledge workers</a> while exploiting the ones who remain as babysitters to the AI, where LLMs are generating all of the web content and the code behind it and humans are only being used to clean up the messes left behind when the statistical models fail to see the whole picture.</p><p>I am tired of having to constantly find <a href="https://publ.beesbuzz.biz/manual/recipes/210-Crawler-mitigations">new ways</a> of preventing AI-written scrapers for AI models from bringing down my hobby websites, because even though I go <em>out of my way</em> to send the <a href="https://en.wikipedia.org/wiki/Sitemaps">appropriate signals</a> for which pages are worth scraping and which ones are just redundant views <em>for humans to use</em>, instead I have all these crawlers pretending to be humans while doing inhuman levels of <a href="https://drewdevault.com/2025/03/17/2025-03-17-Stop-externalizing-your-costs-on-me.html">hammering my server</a> from hundreds of thousands of IP addresses trying to extract as much data as possible, as if <em>this</em> combination of tags is going to suddenly make new information appear out of the ether.</p><p>I am tired of how every time I open up my monthly budget spreadsheet I get told that things could be so much better if I <a href="https://www.apple.com/apple-creator-studio/">pay $12/month</a> for access to all-new creative ways of having AI &ldquo;improve&rdquo; the &ldquo;creativity.&rdquo;</p><p>I am tired of every web search leading to pages full of garbage based on random dissosiation of facts that look like they&rsquo;re related, all because words mean different things in different contexts.</p><p>I am tired of every single webpage I visit having an obnoxious chat bot appear in the corner trying to answer the questions that I don&rsquo;t have, and how when I&rsquo;m trying to get information that isn&rsquo;t already on the website it all goes through an AI that just regurgitates information from it and every other website, when the reason I&rsquo;m asking is because it wasn&rsquo;t on any website to begin with.</p><p>I am tired of looking for images of something for reference, only to find that the image is a complete fabrication, <a href="https://www.snopes.com/fact-check/baby-peacock-pic/">often deceptive</a>.</p><p>I am tired of every semiconductor that I need to use for my own purposes becoming super expensive because the manufacturing capacity has been pre-committed to gigantic data centers that have yet to be built to fill in the supposed need for the things that are brandished as a threat.</p><p>I am tired of being told that if I don&rsquo;t embrace the tools of my own destruction I&rsquo;m going to be left behind, when I&rsquo;m already struggling just to survive after having been <a href="https://beesbuzz.biz/blog/11693-Exit-stage-left">chewed up and spit out</a> by an industry I used to be excited to be a part of.</p><p>I am tired of how whenever I run into a problem with an AI-driven knowledge base and point out flaws in its reasoning, I am told that I am simply prompting it wrong.</p><p>I am tired of the feeling that everything that I do must be in service of the AI models, and that the only thing that is of value is that which increases &ldquo;<a href="https://www.joanwestenberg.com/the-noble-path/">global productivity</a>,&rdquo; usually at the expense of my own ability to survive.</p><p>I am tired of every decision about my ability to live being handed off to AI models that are trained on flawed data that do not get a complete picture.</p><p>I am fucking <strong><em>tired.</em></strong></p><p>Anyway, the thing I&rsquo;m trying to get at: Tools can be useful, but the tool is a means to an end, not the end itself. Don&rsquo;t confuse the two.</p><p>And with that off my chest, maybe now I can get some sleep.</p>

<p><a href="https://beesbuzz.biz/blog/14715-I-am-not-anti-AI#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14715&amp;tag=ai">#AI</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14715&amp;tag=artificial-intelligence">#artificial intelligence</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14715&amp;tag=llm">#LLM</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14715&amp;tag=discourse">#discourse</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14715&amp;tag=rant">#rant</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="AI" label="AI" />
        
        <category term="ArtificialIntelligence" label="artificial intelligence" />
        
        <category term="LLM" label="LLM" />
        
        <category term="Discourse" label="discourse" />
        
        <category term="Rant" label="rant" />
        

        

    </entry>
    <entry>
        
        <title>Notes: The Noble Path</title>
        <link href="https://beesbuzz.biz/blog/chatter/11745-The-Noble-Path" rel="alternate" type="text/html" />
        <published>2026-03-11T12:06:36-07:00</published>
        <updated>2026-03-11T12:06:36-07:00</updated>
        <id>urn:uuid:d316b40b-c76c-4633-9528-44a9ed224668</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[]]></summary>
        <content type="html"><![CDATA[

		






<p><a href="https://beesbuzz.biz/blog/chatter/11745-The-Noble-Path#comments">comments</a></p>

        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        <category term="Notes" label="Notes" />
        
        

        

    </entry>
    <!-- suppressed note: https://beesbuzz.biz/blog/chatter/15975-The-human.json-protocol -->
    <entry>
        
        <title>Code: Why I dislike .well-known</title>
        <link href="https://beesbuzz.biz/code/6987-Why-I-dislike-.well-known" rel="alternate" type="text/html" />
        <published>2026-03-06T12:32:34-08:00</published>
        <updated>2026-03-06T12:32:34-08:00</updated>
        <id>urn:uuid:8b0a63e3-690b-4b29-a38b-de372c440a4c</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[.well-known considered harmful]]></summary>
        <content type="html"><![CDATA[

		

<p>There is a growing trend for new protocols to express themselves in the form of a <a href="https://en.wikipedia.org/wiki/Well-known_URI">well-known URI</a>. It&rsquo;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 <code>robots.txt</code> and <code>favicon.ico</code> and the like.</p><p>I am not personally a fan of it, for a few reasons.</p>


<p>The big one is that it means that all discovery for all uses of a protocol must be uniform across all areas on a single domain. For example, if you have URLs like <code>https://example.com/~alice/</code> and <code>https://example.com/~bob/</code> and both of them want to support the <code>foo</code> protocol, then <code>https://example.com/.well-known/foo</code> needs to have some means of distinguishing the two. And the way of doing that can be tricky. Do you have something like <code>https://example.com/.well-known/foo?resource=/~alice/</code>? How do you deal with path normalization (e.g. <code>/~alice</code> vs <code>~alice/</code> vs. <code>~alice/homepage.html</code>)? Do you have to consider things like cross-domain attacks? What if multiple users on a <a href="https://tildeverse.org/">tilde site</a> want to support different sets of protocols, or use different implementations?</p><p>Putting things into the query string (the most typical approach for this) also means that you&rsquo;re going to have to have some sort of dynamic mapping or request routing, which means this can&rsquo;t work with purely static hosting. It also means that you might have to probe for this protocol support across every single URL being accessed on a domain.</p><p>Another concern is that every protocol you want to support requires a separate HTTP request, and these things can add up pretty quickly. For example, whenever I post an article to my website and it goes out on my Mastodon feed, I get many dozens of Mastodon instances each probing an absolute litany of related URLs trying to determine whether this is a Mastodon instance or similar, and sometimes this ends up even overwhelming my server. Even without that, I&rsquo;m getting a constant flood of requests for things like <code>/.well-known/traffic-advice</code> and <code>/.well-known/wp-login.php</code> and the like.</p><p>A much better approach, in my opinion, is to have the discovery baked into the resource itself. In HTML you can use the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/link"><code>&lt;link&gt;</code> tag</a> (e.g. <code>&lt;link rel=&quot;foo&quot; href=&quot;/~alice/foo-support.xml&quot;&gt;</code>)<sup id="r_e6987_fn1"><a href="https://beesbuzz.biz/code/6987-Why-I-dislike-.well-known#d_e6987_fn1" rel="footnote">1</a></sup> and in HTTP in general you can use the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Link"><code>Link:</code> header</a> (e.g. <code>Link: &lt;https://example.com/%7Ealice/foo-support.xml&gt;; rel=foo</code>). A single HTTP request can tell a client about <em>all</em> possibly-supported protocols, all at once, and it can be baked in statically and thus supports static hosting. It also means there is no special case for handling multiple resources across a single domain, and if two pages have the exact same link target it can also be inferred that they are the same as far as that protocol is concerned.</p><p>One concern that comes up is that of page bloat, when every page needs to include a bunch of <code>&lt;link&gt;</code> tags to express a growing list of supported protocols. This is, to me, a non-issue; for starters, you&rsquo;re only declaring the protocols that you actually support, and it&rsquo;s a single point of reference for all clients to discover all of the supported protocols. But also, the amount of bandwidth added to a page for even a few dozen protocols is miniscule compared to the amount of bandwidth taken by other accepted optimizations, such as inline CSS and <code>data:</code> blobs for images, as well as the bandwidth taken up by the incessant <code>.well-known</code> probes that are taking place at this point.</p><p>A suite of related protocols could also be offered as a forwarding URL, such as IndieAuth&rsquo;s current practice of bundling it all together into <a href="https://indieauth.spec.indieweb.org/#discovery">indieauth-metadata</a>. This does require an extra HTTP request, but it only has to happen once, as that URL is extremely cacheable.</p><p>The <a href="https://indieweb.org/well-known">IndieWeb wiki</a> has more to say about the growing usage of <code>.well-known</code> and why it&rsquo;s considered an antipattern.</p><p>As an aside, I am also not a fan of Webfinger, because not only does it require <code>.well-known</code> to work, but it attempts to flatten a namespace in ways that are difficult to deal with. On this website, you can easily get the update feed for any given section by discovering its <code>rel=&quot;alternate&quot;</code> URLs, but there is no such mechanism in Webfinger; you can follow <em>the site as a whole</em> as <code>@beesbuzz.biz@beesbuzz.biz</code> (thanks to <a href="https://fed.brid.gy/">Bridgy Fed</a>) but you can&rsquo;t follow just the <a href="https://beesbuzz.biz/code/"><code>/code/</code></a> section, for example. There are some hacks such as making <code>@code@beesbuzz.biz</code>, <code>@comics@beesbuzz.biz</code> and so on, but then what about nested subdirectories (e.g. <a href="https://beesbuzz.biz/food/coffee/"><code>/food/coffee/</code></a>)? Why not just use the URL itself as the specifier? With <code>&lt;link&gt;</code>-based discovery, you already can, and there&rsquo;s nothing special about it.</p><p>So, anyway: When designing a new protocol, please consider <em>not</em> using <code>.well-known</code> URLs for discovery purposes. Let the URL itself provide its own information.</p>

<hr/><ol><li id="d_e6987_fn1"><p>In some cases, such as content feeds, it can be a bit unclear as to whether you should use an existing <code>rel</code> (such as <code>alternate</code>) with an appropriate <code>type</code> to disambiguate, or if you should invent a new <code>rel</code>, but that&rsquo;s a much smaller problem than those caused by <code>.well-known</code> creep.&nbsp;<a href="/code/6987-Why-I-dislike-.well-known#r_e6987_fn1" rev="footnote">↩</a></p><p>The general rule of thumb seems to be that if you&rsquo;re designing an active interface-type protocol (e.g. something with a specific RESTful API), you should invent a new <code>rel</code>, and if you&rsquo;re designing a feed format or other such alternate representation of a page&rsquo;s content you should use <code>rel=&quot;alternate&quot;</code>, although that does require some interpolation of the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel">MDN Link Types document</a> and the general common practices across the IndieWeb and Microformats communities.</p></li></ol>

<p><a href="https://beesbuzz.biz/code/6987-Why-I-dislike-.well-known#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/code/?id=6987&amp;tag=internet">#Internet</a>
        
        <a rel="tag" href="https://beesbuzz.biz/code/?id=6987&amp;tag=web">#web</a>
        
        <a rel="tag" href="https://beesbuzz.biz/code/?id=6987&amp;tag=http">#HTTP</a>
        

        ]]>



        </content>
        <category term="Code" label="Code" />
        
        
        <category term="Internet" label="Internet" />
        
        <category term="Web" label="web" />
        
        <category term="HTTP" label="HTTP" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: Updog</title>
        <link href="https://beesbuzz.biz/blog/14656-Updog" rel="alternate" type="text/html" />
        <published>2026-03-02T15:21:08-08:00</published>
        <updated>2026-03-02T15:21:08-08:00</updated>
        <id>urn:uuid:e1bcd7b9-5b40-4294-96f4-da815ed15139</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>These days I have quite a lot of ambition but not enough energy to execute on it. I&rsquo;m trying, though.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>These days I have quite a lot of ambition but not enough energy to execute on it. I&rsquo;m trying, though.</p>


<p>Several months ago I realized I was feeling like I did back when I was off estrogen entirely because of <a href="https://sockpuppet.band/album/novembeat-2017">the embolism</a> and got my levels checked for the first time in a while. And they were dangerously low.</p><p>My doctor put me on a higher dose of transdermal estradiol and wanted to wait 3 months to follow up. I finally got that followup last week, and my levels are still dangerously low.</p><p>So, tomorrow we&rsquo;re going to discuss the possibility of injections, which is honestly what I should have probably been on to begin with. But, y&#39;know, doctors love to be super cautious with clotting risks on estradiol, especially with a family history. (I also never really had a reasonable dose when I was doing oral estradiol, either, even before the embolism, because I am bad at advocating for myself.)</p><p>Hopefully I&rsquo;ll get on injections and that will help me start to feel normal again, and maybe I&rsquo;ll actually get a decent amount of breast growth out of it this time (unlikely).</p><p>I feel like I&rsquo;ve been operating well below my baseline for the last&hellip; I dunno. 9 months or so? I remember still doing pretty well as far back as, like, last June, and I don&rsquo;t really know when my activity levels started to really decline because I haven&rsquo;t been good at keeping track of that stuff. I do use a daily mood tracker thing and it looks like the last time I marked a day as feeling &ldquo;good&rdquo; was last July. So, possibly that&rsquo;s when this hormone stuff started happening. Looking at my blog I definitely noticed a turn for the worse <a href="https://beesbuzz.biz/blog/14675-fatigued">back in August</a> and also looking at <a href="https://beesbuzz.biz/blog/?date=202507">July</a> I was starting to feel a bit off. So July is probably when things started to go haywire.</p><p>I&rsquo;m definitely <em>motivated</em> to do a bunch of stuff right now; I want to build my <a href="https://nerdygurdy.nl">Nerdy Gurdy</a> kit which I was finally able to obtain after a few years of interest and a few weeks of deliberate intent, and I really want to work on my various albums that I&rsquo;ve had on the back burner. I did start to work on Misfits a bit but I haven&rsquo;t managed to sustain the energy so I&rsquo;ve made very little progress on it. I also have three other albums on the back burner which I&rsquo;d love to be working on as well. Plus finishing up the music for the game! And a couple of other low-priority commissions I&rsquo;ve gotten!</p><p>And there&rsquo;s so many projects I need to do around the house, especially a few things in the basement which will make the studio more accessible. And getting my kitchen organized. And getting a bunch of stuff I no longer need/want to Goodwill or whatever. A bunch of it has been sitting in my car&rsquo;s trunk for months, now, but I also don&rsquo;t feel comfortable driving down to Burien, both with my fatigue and with my car still needing a brake job.</p><p>Most of what little energy I can muster has gone to either going back to <a href="https://stanceseattle.org/">choir</a> practice (which I&rsquo;d missed so much!) or doing my various <a href="https://sockpuppet.band/live/">VR performances</a>. Several of my recent VR gigs have been hour-long sets and that&rsquo;s just been completely <a href="https://www.youtube.com/watch?v=ZB4fiFZtkx0">too much, man</a><sup id="r_e14656_fn1"><a href="https://beesbuzz.biz/blog/14656-Updog#d_e14656_fn1" rel="footnote">1</a></sup>, even though previously I was able to do 90 minutes no problem. Even 30 minutes feels like a stretch nowadays. So there&rsquo;s definitely room for improvement.</p><p>It&rsquo;s also been supremely frustrating that all of the dispensaries in my town have closed aside from Uncle Ike&rsquo;s, which only stocks high-THC stuff and what I need is high-CBD (and what few high-CBD products they have still have much higher doses of THC than I&rsquo;d like). They seem to only care about getting wasted, and not getting pain relief. There are a couple of smoke shops around which claim to carry CBD products so maybe I&rsquo;ll check some of them out, but smoke shops always feel so shady, compared to the nicely regulated cannabis industry around here.</p><p>I also can&rsquo;t help but wonder if the other dispensaries closed due to pressure from Ike&rsquo;s, as he has a long history of anticompetitive behavior.</p><p>Now that it&rsquo;s getting warmer I want to be gardening, and I want to be working on music and my coding projects (especially the music-related ones), and I want to be doing so many other things, but even walking to the grocery store ends up wiping out my energy reserves for the rest of the day.</p><p>Anyway. Hopefully getting my hormone levels back in check will help.</p>

<hr/><ol><li id="d_e14656_fn1"><p>As an aside, I&rsquo;ve been watching the full series of <a href="https://en.wikipedia.org/wiki/Bewitched">Bewitched</a> lately, and while I&rsquo;m glad they haven&rsquo;t tried remaking the show (<a href="https://en.wikipedia.org/wiki/Bewitched_%282005_film%29">poorly-rated Will Ferrell movie</a> aside), I think Kristen Schaal would make an <em>incredible</em> choice for Gladys Kravitz.&nbsp;<a href="/blog/14656-Updog#r_e14656_fn1" rev="footnote">↩</a></p></li></ol>

<p><a href="https://beesbuzz.biz/blog/14656-Updog#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14656&amp;tag=chronic-pain">#chronic pain</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14656&amp;tag=fatigue">#fatigue</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14656&amp;tag=hrt">#HRT</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14656&amp;tag=music">#music</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14656&amp;tag=cbd">#CBD</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="ChronicPain" label="chronic pain" />
        
        <category term="Fatigue" label="fatigue" />
        
        <category term="HRT" label="HRT" />
        
        <category term="Music" label="music" />
        
        <category term="CBD" label="CBD" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: A reminder to myself</title>
        <link href="https://beesbuzz.biz/blog/7544-A-reminder-to-myself" rel="alternate" type="text/html" />
        <published>2026-02-27T01:06:31-08:00</published>
        <updated>2026-02-27T01:06:31-08:00</updated>
        <id>urn:uuid:48ed5792-14cf-414c-85c0-4acfdaf0100b</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>It&rsquo;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.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>It&rsquo;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.</p>


<p>My pain and fatigue have been especially bad lately, and that also feeds into my lack of patience and temper, and also is probably due in no small part to the fact that my hormones are, as mentioned, out of whack.</p><p>I&rsquo;m also somewhat looking for work (music ain&rsquo;t paying the bills) but it&rsquo;s hard to find something that I&rsquo;m capable of doing and for the limited hours with which I can do them. If folks know of anyone looking for someone who can do any of the many things I can do, could you maybe point them to <a href="https://beesbuzz.biz/resume">my resume</a>? Thanks!</p>

<p><a href="https://beesbuzz.biz/blog/7544-A-reminder-to-myself#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=7544&amp;tag=hrt">#hrt</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=7544&amp;tag=mental-health">#mental health</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Hrt" label="hrt" />
        
        <category term="MentalHealth" label="mental health" />
        

        

    </entry>
    <entry>
        
        <title>fluffy rambles: Post-Cloudflare update</title>
        <link href="https://beesbuzz.biz/blog/14103-Post-Cloudflare-update" rel="alternate" type="text/html" />
        <published>2026-02-22T11:50:20-08:00</published>
        <updated>2026-02-22T11:50:20-08:00</updated>
        <id>urn:uuid:c2aa393c-e560-43b1-b644-0d3f0033c4cc</id>
        <author><name>fluffy</name></author>
        <summary type="html"><![CDATA[<p>It&rsquo;s been nearly a week since I <a href="https://beesbuzz.biz/blog/13924-This-site-now-Cloudflare-free">removed Cloudflare from my sites</a>. As a quick followup, I did get a slight surge in traffic that lasted for a day or so after a bunch of bots&#39; DNS caches expired, but they seem to have all given up after the Cloudflare &ldquo;managed challenge&rdquo; interstitial turned into an HTTP 401 error for them.</p>]]></summary>
        <content type="html"><![CDATA[

		

<p>It&rsquo;s been nearly a week since I <a href="https://beesbuzz.biz/blog/13924-This-site-now-Cloudflare-free">removed Cloudflare from my sites</a>. As a quick followup, I did get a slight surge in traffic that lasted for a day or so after a bunch of bots&#39; DNS caches expired, but they seem to have all given up after the Cloudflare &ldquo;managed challenge&rdquo; interstitial turned into an HTTP 401 error for them.</p>



<figure class="images"><a href="https://beesbuzz.biz/blog/14103-Post-Cloudflare-update"><img src="https://beesbuzz.biz/static/_img/cb/87ea/20260222-cpu_1c00b6f527_448x298_q35.webp" width="448" height="298" srcset="https://beesbuzz.biz/static/_img/cb/87ea/20260222-cpu_1c00b6f527_448x298_q35.webp 1x, https://beesbuzz.biz/static/_img/cb/87ea/20260222-cpu_1c00b6f527_q35.webp 2x" loading="lazy" class="u-photo" alt="20260222-cpu.png" title="CPU load over the past week"></a><a href="https://beesbuzz.biz/blog/14103-Post-Cloudflare-update"><img src="https://beesbuzz.biz/static/_img/04/c283/20260222-requests_64aaa343ce_448x250_q35.webp" width="448" height="250" srcset="https://beesbuzz.biz/static/_img/04/c283/20260222-requests_64aaa343ce_448x250_q35.webp 1x, https://beesbuzz.biz/static/_img/04/c283/20260222-requests_64aaa343ce_q35.webp 2x" loading="lazy" class="u-photo" alt="20260222-requests.png" title="nginx request rate over the past week"></a></figure>
<p>So, Cloudflare wasn&rsquo;t even really doing anything for me anyway, and certainly wasn&rsquo;t worth the problems it caused (such as being subject to its many outages and having my site become yet another source of privacy-destroying analytics and so on).</p><p>In other news, the crawlers mostly seem to have gotten wise to my <a href="https://github.com/fluffy-critter/ai-tarpit">tarpit</a> and now it&rsquo;s only averaging around 20 requests per second, down from a peak of 310. Oh well.</p>
<figure class="images"><a href="https://beesbuzz.biz/blog/14103-Post-Cloudflare-update"><img src="https://beesbuzz.biz/static/_img/07/e5f2/20260222-tarpit_e41cacbecb_448x250_q35.webp" width="448" height="250" srcset="https://beesbuzz.biz/static/_img/07/e5f2/20260222-tarpit_e41cacbecb_448x250_q35.webp 1x, https://beesbuzz.biz/static/_img/07/e5f2/20260222-tarpit_e41cacbecb_q35.webp 2x" loading="lazy" class="u-photo" alt="20260222-tarpit.png" title="Tarpit request rate over the past month"></a></figure>
<p>At some point I think I&rsquo;ll replace the <a href="https://beesbuzz.biz/code/13497-Preventing-bot-scraping-on-Publ-and-Flask">forced login thing</a> with a simpler <a href="https://beesbuzz.biz/code/13922-A-simple-anti-AI-measure-for-Flask">sentience check</a> since the login thing feels a bit aggressive, although I&rsquo;m not sure I can easily fit that into Publ without modifying Publ itself due to vagaries of how Flask routing works. It&rsquo;d probably be nice to just make antibot measures part of Publ anyway, though. Or maybe I can abuse <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/429">error 429</a> for this, which would probably be a better choice than <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/401">error 401</a> anyway.</p>

<p><a href="https://beesbuzz.biz/blog/14103-Post-Cloudflare-update#comments">comments</a></p>

        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14103&amp;tag=cloudflare">#cloudflare</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14103&amp;tag=bot-mitigation">#bot mitigation</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14103&amp;tag=dead-internet">#dead Internet</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14103&amp;tag=internet">#Internet</a>
        
        <a rel="tag" href="https://beesbuzz.biz/blog/?id=14103&amp;tag=ai">#AI</a>
        

        ]]>



        </content>
        <category term="Blog" label="fluffy rambles" />
        
        
        <category term="Cloudflare" label="cloudflare" />
        
        <category term="BotMitigation" label="bot mitigation" />
        
        <category term="DeadInternet" label="dead Internet" />
        
        <category term="Internet" label="Internet" />
        
        <category term="AI" label="AI" />
        

        

    </entry>
    <!-- suppressed note: https://beesbuzz.biz/blog/chatter/1696-Multiple-in-reply-to-links -->
    

    
</feed>