Once upon a time, people would fill their spare time with hobbies, things they do because they enjoy doing it. They could be passive, like watching TV, or they could be active, like knitting or playing piano, or they could even be a side gig for extra income, like woodworking or painting.

When the Internet came about that made for many more varieties of things that people could do for their spare-time hobbies. They could make weird little videos for YouTube or they could record music and produce albums that other people could listen to (and maybe even buy), or they could stream their video game playing to hang out with others or to compete online.

Somewhere along the line, as a society we seem to have decided that all of those activities must be done as a source of income. You can’t just “make videos on YouTube” or “stream on Twitch,” you are expected to become “a YouTuber” or “a Twitch streamer.” If you make things as a hobby it’s expected that you set up an Etsy store to sell them online; if you collect books or figurines or old video games it’s for making a collection you can sell on eBay. If you record music and put it online you have to put it on all the streaming services and market yourself to make it worth your while, because otherwise how will anyone discover it? Oh, you want your friends to listen to it? Well they’re all using Spotify now, and they’re only going to listen if The Algorithm tells them to.

If you’re not spending all your time doing marketing or sales or producing Content for the Content Gods you are Doing It Wrong.

Every time you post a video to YouTube it goads you about how far you are from monetization. Every time you do a Twitch stream it follows up with an email about how far you are from making Affiliate. I don’t know what Affiliates get after their streams – probably something about their monetization stats or how far they are from Partner or something. I don’t know. I don’t think I care. But whenever I attend the local Twitch streamers meetup, invariably all of the discussion revolves around how recently everyone got Affiliate, or how far away everyone is, and how sad it is that I’ve been streaming on and off for years and don’t have it yet and I have got to Find My Audience. It feels like a cult.

Okay, so, I kinda-sorta had my streaming setup working pretty okay, with the big problem that I wasn’t able to get audio to come through digitally, and instead had to mix everything through the analog outs, going to the noisy input on the external USB audio interface. Not ideal. Also, the AVermedia drivers are unreliable and the app is crashy, and I didn’t have a good way of running the app at 1080p anyway (my laptop’s internal screen is only 768p and the HDMI dummy display I had was being unreliable about setting 1080p and there was no way to maximize the window without being able to click on it anyway, and on and on and on).

So, I went to Amazon and found a couple of devices which simply convert HDMI to a standard webcam input – exactly what I wanted, because this could let OBS capture the audio and video as if it were a webcam. Which works really really well.

Unfortunately, neither device worked quite right; the one with the built-in splitter acts as a TV (for obvious reasons) and the HDMI passthrough thus uses a television colorspace, which doesn’t look right on the connected RGB-only DVI monitor. But audio works well.

The one without the splitter (using the external splitter) had all sorts of weird inconsistent colorspace behavior depending on which order things were plugged in, and I could never get audio to work at all.

Oh, and another thing I tried that almost worked was to plug my piano monitor into the second monitor output on the laptop, and run REcentral full-screen on that monitor. The resulting lag was a little annoying, but much worse was REcentral completely crapping out and going garbagey while I was trying to use it. Plus, I’m not a fan of any setup where I need the Windows machine to be on and fully-working just to use the external monitor. So that worked even worse than I’d expected.

So, for now I’m using the one with the built-in splitter and just dealing with weird colors on the monitor, and in the meantime I’ve ordered a cheap 24" HDTV that I can put up in place of the monitor. because of course I’m going to throw more money at this problem, because it’s irritating that I can’t get things to work quite right.

Oh, and meanwhile, I was also running into issues with macOS always detecting the capture device as preferring 720p, but fortunately it turns out that SwitchResX handles this. I was prepared to pay the $15 for it when I realized, wait, I already bought it back in 2005! And my license is still good for the current version! Yay! (Unfortunately this means my deadname is on the registration screen. I suppose I could ask them if I could get the name changed on the serial but I doubt it. If it really bothers me it’d probably be easier to just pay another $15. The software’s improved so much since then that it’d be worth it anyway.)

Anyway, the upshot of all this is that I can theoretically get my game streaming setup working again (I gave up on it because I could never get the AVerMedia to work reliably and it would usually crap out about 10 minutes into my stream), since the non-splitter one plus the external splitter is perfect for this.

And then I can sell the AVerMedia on eBay or something, I guess? Wow, their going price is extremely random, everywhere from $50 to $100. And I suppose I’d then have an extra monitor I should sell too.

Anyway, then I decided to try actually doing a music stream while a bit weedy and it wasn’t a fun time. But I was already frustrated from this tangle of tech. Why I keep on throwing myself into this never-ending morass I’ll never understand.

This was only happening on the XR, though (not on my iPod Touch, iPod Classic, or either iPad), and my iPhone 6S was working just fine.

Today I was actually pretty pleased with using the iPhone 6S and generally liking it better than the XR for the reasons I thought I would – it’s smaller, lighter, less obtrusive, and frankly less annoying to deal with overall. So I decided I’d buy a new battery for it and try my hand at that, since it doesn’t seem all that hard after all (and all of the battery cases I could find had critical problems like being too big or heavy or having connector failure or catching on fire).

Much has been written about how Electron apps take a lot of memory; after all, each one is running its own instance of a web browser, and pulling in all of the overwhelming amounts of support code that implies. Slack can easily end up taking over 1GB of RAM, and Discord usually takes a few hundred as well. As someone who used to use IRC back in the 90s, when a single task taking even 1 MB of RAM was considered a lot, this feels rather horrifying:

On my iMac, with 24GB of RAM, that means that chat apps – doing the equivalent of an IRC client (granted, with a bit more visual stuff, but not that much) – are taking about 6% of my RAM!

But come to think of it, back in the mid 90s, when a typical computer had 8MB, an IRC client probably took around 400KB of RAM, which is also 6%. So have things really grown proportionally in that way?

Well, I’ve figured out a way of getting these chat apps to take half as much of my total RAM overall, but first, let’s talk about my personal history of memory usage.

On a Slack I’m on, there was a conversation wondering why so many websites disallow passwords with spaces, punctuation, “special” characters, and so on; shouldn’t they all be hashing the passwords rather than storing them in plain text anyway?

Yes, they should, but that’s not where the problem is. Once again, encodings become a problem.

These past few weeks I seem to keep on running into issues where things have been really bad about handling character encodings.

Back in the day, encodings were an absolute nightmare. You had different 8-bit encodings for every language, each with a bunch of different ISO standards; a very commonly-used one is ISO-8859-1, aka Latin-1, which is basically the characters needed to render all of English and most of several Romance languages (although a bunch of stuff is missing), plus a little extra stuff for math, scientific notation (µ), and German (ß), as well as a bunch of miscellani which were generally useful.

Unfortunately, a lot of Internet standards decided to default to that, including HTML.

So, hey, Patreon is a pretty popular site for funding the creative people you follow. A lot of people rely on Patreon as their primary source of income. More power to them if they do; it’s where everyone goes to do that sort of thing and it’s really enabled a lot of people to do what they love for a living.

But I just removed all my pledges and also my creator account. It’s not one thing in isolation that led me to do this, but a culmination of a lot of things (some big, some small) that had been frustrating and upsetting to me.

(Want to know where I’m accepting donations these days without reading a long missive? I’m on Ko-Fi for one-time donations and Liberapay for ongoing contributions.)

Okay so I like LÖVE for making games, and have used it for quiteafew of them at this point.

I like that it gives me a bunch of useful primitives for making games, and then just gets out of my way. And I like that it has a simple build process where it isn’t too difficult to make a cross-platform build and continuous deployment system that also lets me do continuous deployment to itch.io or whatever.

And I also like that Lua is a fairly easy language to learn, with a simple syntax. But there’s a few things about it which are just baffling or annoying to me.

And I’m not talking about the 1-based arrays! (That’s annoying in a couple of situations but for the most part it doesn’t really matter, at least not to the extent that people make a big deal about it.)

When I finally came out as trans at work back in 2015, it took a little bit of time for my coworkers to get up to speed. Most of them were great at simply self-correcting and moving on. There were always a few people who would start to make excuses for how hard it was, though, and go on and on at length about it, citing the pronouns that they used for me when they first met me or whatever. This latter behavior is a bit irritating, but I eventually got some of them to stop.

At my current job, where I started out female-presenting but visibly trans to begin with, I’ve only had one coworker have any trouble with my pronouns, and she’s always been great at self-correcting and moving on, with no further comment. And that is exactly what I want.

Most of my friends have been great about it too. When I was using they/them (as a concession to “how hard it is”), most of my friends were good at either self-correcting or mutually-correcting each other. There would be a few holdouts, but none of them really turned out to be actually friends – they’d all turn out to have some deep-seated transphobic baggage that they refused to address, and I’d have to cut ties with them. Fortunately that was the vast minority. And much more recently when I realized that I definitely prefer she/her, but they/them is still fine, well, I still have the same friends who are still being supportive in the same way.

In particular, one of my oldest friends, who is now also my business partner, has been amazing at self-correcting, in a way that is apparent to others and gets others on board. And he’s even gone through a second phase of that when I did the they/them to she/her switch, which isn’t even that necessary but I so greatly appreciate that he makes the effort.

But there are certain people in my life who claim to want to be on board but keep on making excuses for why they can’t, and why it’s so hard for them, and eventually shift the blame onto me. And they are people that I can’t simply cut ties with.

I am so fucking sick of modern web design where standard HTML form elements are reimplemented using <div> and Javascript.

For example: my mortgage provider just unleashed a new web design on the world. Functionally it’s identical to the old website, but it looks slightly shinier. It’s also completely non-functional for me.

When I try to log in, it gives me my wish-it-were-two-factor “secret question.” I enter my answer. I press Enter, and nothing happens. So I click the submit button – which is, as it turns out, a <div> with attached JavaScript. That JavaScript changes the <div> text to “please wait…” and then it sends off an asynchronous API request. When it gets the response from the server, it then changes the location URL in my browser.

Congratulations on reimplementing <form> the long way around!

Oh, and this process took way longer than it needed to, and I thought maybe it wasn’t working at all. So I opened up their contact form – which, as it turns out, only replaced the page content with that because of course everything’s a “single page application” now. I started filling it out, and when the first form submission finally came back, oops, suddenly I’m logged in! (Meaning I’ve now lost the contact form I was already halfway done filling out.)

So I opened up the contact form again in another tab, and found that I couldn’t tab into the requisite “state” drop down box (because of course I need to give my city and state to provide website feedback, for some reason). So I clicked on it, and tried typing “wa” – and nothing worked. It didn’t jump down to “Washington.” It didn’t even jump to “Washington” then back to “Alaska.” Oh, and of course cursor keys didn’t work either – I had to use my mouse to scroll and click and this hurts my wrist and is slow and error-prone. (Oh and I should add that there was no scroll bar on the selection box either, the expectation was that I’d know to use my scroll wheel and be able to! This is not something you can rely on!)

Because it turns out that the dropdown box, rather than being a <select>, was a fucking <div> with JavaScript to set the value. And doesn’t have any keyboard access. For bonus points, they invented some HTML tags like <dropdown> to contain it. Why?! Standards exist for a reason! What happens in some future HTML verson where the <dropdown> tag becomes a thing? Except it wouldn’t because fucking <select> already exists and has since HTML fucking 1 point 0.

Because, of course, they reimplemented <form> and <select> the long way around.

Why the fuck do people make their lives harder like this? Peering into the page source, everything was obviously built using Angular, which is just… bad. Really bad. I see so many Angular sites that do this. And there’s absolutely no reason for most Angular sites to be based on Angular.

It’s so maddening. You have to do more to get less functionality, that would already be handled by the browser in a cross-platform, humane, accessible manner!

So I sent them this message on their contact form:

Hi, your new website doesn’t function correctly in a number of web browsers, including Safari on macOS. After receiving the challenge question it simply hangs for several minutes. Also, your contact form no longer follows accessibility guidelines and doesn’t support keyboard entry for people with e.g. mobility impairments, and I suspect it won’t work correctly with many screen readers either.

Please don’t reimplement basic browser functionality; for example, there’s no reason for the <div class="dropdown"> with added JavaScript when browsers already have <select> widgets which work perfectly fine.

I bet they get back to me with something like “We apologize, but we only support the Chrome browser. Please download it at google.com/chrome” or something. Because we learned nothing after the whole debacle that was MSIE 6, apparently.

Anyway. Fuck modern web design. Make your shit out of plain old HTML. Seriously. Please. You can build asynchronous, self-updating sites using standard JavaScript and basic DOM methods without a lot of work, and that’s only in the case that you need to – and you probably don’t.

Not everything needs to be a fucking single-page “app,” for fuck’s sake. It buys you nothing except for a bad user experience when things don’t go perfectly.

I am finally enrolled in Kaiser Permanente’s transgender healthcare program. (Why I didn’t get enrolled when I first signed up for it is a mystery, but whatever.) Today I finally received my insurance form for submitting reimbursement claims for my hair removal.

It gave me a diagnostic code of F649 with an explanation of “Uncomfortable with one’s gender.”

As part of testing my WebSub changes for FoF, I decided to switch to a WebSub hub for myself that provides some subscriber analytics and so on. One neat thing about how WebSub works is that the “hub” layer is completely modular and it really doesn’t matter at all which one you use, and if the one you use has problems you can switch to another one just by changing the URL in your feed and all subscribers will eventually seamlessly migrate (at their next normal polling interval); if anyone even notices a problem it will just be that they don’t receive a push update during that polling interval. (Which, let’s be honest, is incredibly unlikely for most RSS feeds.)

Anyway, because of these new analytics, as well as information I gathered from my new WebSub-supporting reader, I now know a bit more about the state of WebSub.

Lately most of my social networking has been via Mastodon, which is basically an open source, semi-distributed equivalent to Twitter. When I first joined a few years ago I got an account on the flagship instance, but not much later ended up switching to queer.party. Unfortunately, queer.party has had several scaling issues – similar to a lot of the other small instances – and while it hasn’t gone down entirely, it’s so backlogged that it’s gotten to be pretty much useless.

On Mastodon there’s a general feeling that anyone with a mastodon.social address isn’t savvy because they don’t “get” Mastodon, that the whole point to it is that it’s distributed and you don’t have to be on a single central instance and so on. But the problem is that most of the instances – and there’s quite a lot of them – aren’t run in a way that can be expected to scale over time.

Most instances are maintained as a spare-time thing by someone, but instance management is more and more becoming a full-time job. I am incredibly grateful that Maffsie is willing to run the instance even on that basis, don’t get me wrong! But all the same I’d like to be on an instance where it doesn’t regularly go down or have massive backlogs (7 hours, at present) or random weird federation problems.

The problem with Mastodon in this case is that any Mastodon instance, regardless of the user count (or a user limit), will continue to grow without bounds for as long as it’s being used, and as the ActivityPub network grows, the amount of stuff that every instance needs to keep track of will grow too.

The Trump administration is considering narrowly defining gender as a biological, immutable condition determined by genitalia at birth, the most drastic move yet in a governmentwide effort to roll back recognition and protections of transgender people under federal civil rights law.

[…]

“Sex means a person’s status as male or female based on immutable biological traits identifiable by or before birth,” the department proposed in the memo, which was drafted and has been circulating since last spring. “The sex listed on a person’s birth certificate, as originally issued, shall constitute definitive proof of a person’s sex unless rebutted by reliable genetic evidence.”

To everyone who wonders why trans people are always so unhappy, or why I keep on caring about politics and getting upset about things I can’t control, THIS IS WHY.

This policy isn’t just about nomenclature or bathrooms (although those are both very important!), it also affects me directly in terms of the health services I can receive. It is yet another case of the Republicans being the party of personal freedom but only for the freedoms that they want.

Gender is (partially) a social construct, chromosomes don’t tell the whole story, intersex people exist, trans people exist, dysphoria is real, choose love, be kind.