From 3b606bcc096a6d9860672e6d0d003ca9e80c067e Mon Sep 17 00:00:00 2001 From: Hannah Isopod Date: Sun, 15 Feb 2026 22:42:27 -0700 Subject: THE BIG ONE Total website redesign. Multiple new blog posts. Routine updates on several pages. Too much to list, even if I remembered it all. Remind me not to put this git repo on any portfolios. --- blog/blog.atom | 49 ++- blog/index.php | 178 ++++----- blog/post.php | 129 +++---- blog/posts/ai2/index.md | 16 +- blog/posts/ai_art/index.md | 16 +- blog/posts/blog_questions/index.md | 18 +- .../posts/building_a_cooler_body/20minuteshrt.webp | Bin 0 -> 250578 bytes .../building_a_cooler_body/bananaforscale.webp | Bin 0 -> 49418 bytes blog/posts/building_a_cooler_body/epic.png | Bin 0 -> 38325 bytes blog/posts/building_a_cooler_body/index.md | 408 ++++++++++++++++++++- blog/posts/building_a_normal_server/index.md | 20 +- blog/posts/building_a_regular_bed/index.md | 130 +++---- blog/posts/building_a_sensible_server/index.md | 38 +- blog/posts/customcans_4pin_pinout/index.md | 35 ++ blog/posts/customcans_4pin_pinout/index.php | 1 + blog/posts/customcans_4pin_pinout/pinout.webp | Bin 0 -> 72194 bytes .../posts/customcans_4pin_pinout/supportemail.webp | Bin 0 -> 13820 bytes .../index.md | 27 +- blog/posts/discord/index.md | 44 ++- blog/posts/discord2/discord-no-way-2.gif | Bin 0 -> 1961 bytes blog/posts/discord2/discord.png | Bin 0 -> 13432 bytes blog/posts/discord2/index.md | 206 +++++++++++ blog/posts/discord2/index.php | 1 + blog/posts/discord2/manualreview.png | Bin 0 -> 42614 bytes blog/posts/discord2/osmiuml.png | Bin 0 -> 14224 bytes blog/posts/discord2/osmiumw.png | Bin 0 -> 30219 bytes blog/posts/fediverse_dms/index.md | 4 +- blog/posts/grow_spikes/index.md | 14 +- .../guide_blacklist_websites_searxng/index.md | 2 +- .../guide_blocking_user_agents_nginx/index.md | 10 +- .../guide_fix_youtube_buffering_firefox/index.md | 6 +- .../index.md | 14 +- blog/posts/guide_pihole_lepotato/index.md | 8 +- blog/posts/make_your_own_cables/index.md | 20 +- blog/posts/my_terrible_distro_hop/index.md | 12 +- blog/posts/renting_an_unremarkable_server/index.md | 4 +- blog/posts/sf5_estrogen_moth/index.md | 70 ++++ blog/posts/sf5_estrogen_moth/index.php | 1 + blog/posts/sf5_estrogen_moth/moth.json | 192 ++++++++++ blog/posts/sf5_estrogen_moth/moth.png | Bin 0 -> 69661 bytes blog/posts/sf5_estrogen_moth/pink.json | 306 ++++++++++++++++ blog/posts/stop_using_chromium/index.md | 14 +- blog/posts/toshiba_chromebook/index.md | 6 +- .../index.md | 10 +- 44 files changed, 1545 insertions(+), 464 deletions(-) create mode 100644 blog/posts/building_a_cooler_body/20minuteshrt.webp create mode 100644 blog/posts/building_a_cooler_body/bananaforscale.webp create mode 100644 blog/posts/building_a_cooler_body/epic.png create mode 100644 blog/posts/customcans_4pin_pinout/index.md create mode 100644 blog/posts/customcans_4pin_pinout/index.php create mode 100644 blog/posts/customcans_4pin_pinout/pinout.webp create mode 100644 blog/posts/customcans_4pin_pinout/supportemail.webp create mode 100644 blog/posts/discord2/discord-no-way-2.gif create mode 100644 blog/posts/discord2/discord.png create mode 100644 blog/posts/discord2/index.md create mode 100644 blog/posts/discord2/index.php create mode 100644 blog/posts/discord2/manualreview.png create mode 100644 blog/posts/discord2/osmiuml.png create mode 100644 blog/posts/discord2/osmiumw.png create mode 100644 blog/posts/sf5_estrogen_moth/index.md create mode 100644 blog/posts/sf5_estrogen_moth/index.php create mode 100644 blog/posts/sf5_estrogen_moth/moth.json create mode 100644 blog/posts/sf5_estrogen_moth/moth.png create mode 100644 blog/posts/sf5_estrogen_moth/pink.json (limited to 'blog') diff --git a/blog/blog.atom b/blog/blog.atom index 58e9927..e0959a5 100644 --- a/blog/blog.atom +++ b/blog/blog.atom @@ -3,27 +3,60 @@ isopod.cool blog https://isopod.cool/blog/ - 2025-08-25T00:00:00+00:00 + 2026-02-15T00:00:00+00:00 Hannah Isopod - https://isopod.cool/about/ + https://isopod.cool/me/ ME - + + + How to get Rosy Maple Moths in Skyfactory 5 + sf5_estrogen_moth + + 2025-11-26T00:00:00+00:00 + 2025-11-26T00:00:00+00:00 + Documenting a janky, incomplete solution I came up with to integrate the Create: Estrogen mod with Skyfactory 5's bespoke nonesense to get some moths in my world "legitimately". + + + + Building a Very Regular Bed building_a_regular_bed @@ -229,7 +262,7 @@ discord 2023-06-28T00:00:00+00:00 - 2024-09-10T00:00:00+00:00 + 2026-02-14T00:00:00+00:00 Why Discord sucks, and how to find something that doesn't. diff --git a/blog/index.php b/blog/index.php index 1fbe75a..aed6c5f 100644 --- a/blog/index.php +++ b/blog/index.php @@ -6,134 +6,80 @@ error_reporting(E_ALL); + - Blog - - - + <?php if(!$nostag) { echo("#$stag | ");} ?> isoblog | isopod.cool v4 + - -

isoblog

-

inane ramblings

- - All articles"; - } - echo "
    "; - $year = "-69420"; - $yc = 0; - foreach($content->entry as $entry) { - - $pfilt = false; - if(!$nostag) { - foreach($entry->category as $cat) { - $term = $cat["term"]; - if($stag == $term) { - $pfilt = true; + + $pfilt = false; + if(!$nostag) { + foreach($entry->category as $cat) { + $term = $cat["term"]; + if($stag == $term) { + $pfilt = true; + } } } - } - if($pfilt or $nostag) { - $nyr = substr($entry->published, 0, 4); - if($nyr != $year) { - $year = $nyr; - echo "
  • $year

  • "; - } - $dt = substr($entry->published, 0, 10); - $ti = $entry->title; - $wn = ""; - if(preg_match('/2022-0(5|4)-(21|25|13)/', $dt)) { - $wn = "title=\"This post is on the archived v2 version of the site. It will not load if you don't have Javascript enabled, and expect jank if viewing on mobile. You have been warned.\" "; - } - $cats = ""; - foreach($entry->category as $cat) { - $term = $cat["term"]; - $cats = $cats.""; + if($pfilt or $nostag) { + $nyr = substr($entry->published, 0, 4); + if($nyr != $year) { + $year = $nyr; + echo "
  • $year

  • "; + } + $dt = substr($entry->published, 0, 10); + $ti = $entry->title; + $wn = ""; + if(preg_match('/2022-0(5|4)-(21|25|13)/', $dt)) { + $wn = "title=\"This post is on the archived v2 version of the site. It will not load if you don't have Javascript enabled, and expect jank if viewing on mobile. You have been warned.\" "; + } + $cats = ""; + foreach($entry->category as $cat) { + $term = $cat["term"]; + $cats = $cats.""; + } + + echo "
  • ".$ti."

    ".$entry->summary."

    ".$cats."

  • "; } - - echo "
  • ".$ti."

    ".$entry->summary."".$cats."
  • "; } - } - echo "
"; - ?> - + echo ""; + ?> + + diff --git a/blog/post.php b/blog/post.php index 354472b..a004cbd 100644 --- a/blog/post.php +++ b/blog/post.php @@ -3,7 +3,7 @@ ini_set('display_startup_errors', 1); error_reporting(E_ALL);*/ -if($_SERVER['REQUEST_URI'] === "/blog/posts/post.php") { +if($_SERVER['REQUEST_URI'] === "/blog/post.php") { header("Location: /blog/"); die(); } @@ -35,6 +35,11 @@ foreach($feed->entry as $entry) { $prevtitle = $entry->title; } } +if(!$title) { + $title = "isoblog placeholder title"; +} +$udates = ""; +if($pdate != $udate) { $udates = " Updated on $udate"; } ?> @@ -42,92 +47,52 @@ foreach($feed->entry as $entry) { - $title"); - $bgfile = glob('bg.*')[0]; - if(!is_null($bgfile)) { - echo(""); - } + echo("$title | isopod.cool v4"); + //$bgfile = glob('bg.*')[0]; + //if(!is_null($bgfile)) { + // echo(""); + //} ?> - - - isoblog

$title

Posted on $pdate$udates

"); - //echo("

I'm testing in prod right now. don't worry about it"); + +

+
+

+

Posted on ".$udates); ?>

+ + I'm testing in prod right now. don't worry about it"); - //Boilerplate for Parsedown - include($root."/Parsedown.php"); - $Parsedown = new Parsedown(); - echo $Parsedown->text(file_get_contents("index.md")); - $Parsedown->setSafeMode(true); - $return = $_GET["return"]; - ?> -
- -
-

Comments

-
- "; ?> - -
- - - -
- -
- text(file_get_contents("index.md")); + $posttext = str_replace("

", "

", $posttext); + $posttext = str_replace("
", "", $posttext); + $posttext = str_replace("

", "

", $posttext); + $posttext = str_replace("

", "", $posttext); + $posttext = str_replace("

", "

", $posttext); + $posttext = str_replace("

", "", $posttext); + echo $posttext; + $Parsedown->setSafeMode(true); ?> - -
-
- +
+ + +
+
+ diff --git a/blog/posts/ai2/index.md b/blog/posts/ai2/index.md index 750d442..9769395 100644 --- a/blog/posts/ai2/index.md +++ b/blog/posts/ai2/index.md @@ -1,6 +1,6 @@ It's no secret that I'm generally not very fond of the Silicon Valley tech hype cycle we currently find ourselves in — in fact I've [posted](/blog/posts/ai_art/) about my feelings on "AI" technology before, and I think that post still mostly holds up, but having had circa 15 months since to ruminate about it and watch this shitshow pan out, my opinions on the matter have gotten substantially more nuanced, and I'd like to formally express them, ideally in a more level-headed way than my first go, so here's that. -## The still-bad +# The still-bad The primary product being inescapably pushed on us, generative AI (oft shortened to GenAI, and henceforth referred to here as genai1), remains pretty self-evidently worthless, surprising nobody less than me. @@ -15,13 +15,13 @@ For one, the output quality of LLM chatbots and such things in particular [doesn -### Ethics? What? I think we fired those guys +## Ethics? What? I think we fired those guys Ethical problems also continue to abound. I'm not personally aware that [labeling practices](https://www.theguardian.com/technology/article/2024/jul/06/mercy-anita-african-workers-ai-artificial-intelligence-exploitation-feeding-machine) have gotten any better, and on top of that, poorly written, badly behaved scrapers run by popular genai vendors are now [effectively](https://www.gamedeveloper.com/business/-this-was-essentially-a-two-week-long-ddos-attack-game-ui-database-slowdown-caused-by-openai-scraping) [DDOSing](https://techcrunch.com/2025/01/10/how-openais-bot-crushed-this-seven-person-companys-web-site-like-a-ddos-attack/) [random websites](https://social.kernel.org/notice/AqJkUigsjad3gQc664) in their attempts to suck down as much data as possible for training. Many website admins, especially those running git forges, which are targeted by coding assistants like GitHub Copilot, have had to resort to countermeasures like [Anubis](https://anubis.techaro.lol/) to protect their sites from this behaviour. I've had a run-in with this activity personally, when a big spender on Alibaba Cloud slammed my [Nepenthes](https://zadzmo.org/code/nepenthes/) instance so hard I had to [set up a custom Fail2ban jail](/blog/posts/grow_spikes/) that blocked over 300 IPs inside a day just to make its statistics endpoints reachable again. Furthermore, the environmental impact of this technology [remains really bad](https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/). Electricity use alone has gotten so bad that, for example, Microsoft has had to [spin a decommissioned nuclear power plant back up](https://www.npr.org/2024/09/20/nx-s1-5120581/three-mile-island-nuclear-power-plant-microsoft-ai) to run their datacentres. Although, some amount of proliferation and normalization of nuclear energy would be a nice little upside to this whole debacle. -## The actually good +# The actually good The class of algorithm that "AI" as a marketing term refers to, that is to say, machine learning and neural networks, actually has some compelling use cases that we've seen crystallize over the past couple years, and I think they merit mention here. @@ -31,7 +31,7 @@ Genai is also kind of just the best way to make good-sounding text-to-speech and Of course, tech like this isn't the *point* of the hype cycle. Nvidia didn't become the first trillion dollar company by inventing a niche technology to make new GeForce video cards perform better in demanding games, and Microsoft isn't desperate to make "AI PCs" a thing because of the potential for better screen readers. The "AI" hype cycle is about genai supposedly having the potential to revolutionize *everything*. In five more years. And please don't ask how. -## The it's-complicated +# The it's-complicated LLMs are, by nature, endless fountains of grammatically-fluent drivel utterly devoid of real meaning. This makes it anywhere from unsettling to infuriating to see them used in contexts such as education, journalism, or software development3, but it makes them uniquely suited to two use cases: spam, and the sort of high-verbosity, low-meaning communication that's expected of you in a professional setting — in other words, the LLM has democratized the least valuable forms of written communication in existence. @@ -43,7 +43,7 @@ This is a pattern I've noticed with a lot of the more infamous uses of genai pro Even if completely ridding the world of genai technology was possible at this point, it wouldn't be the solution to these sorts of problems. The solution is to destroy the incentive structures that motivate this behaviour in the first place — create a school system where students don't feel the need to cheat on schoolwork, remove the profit incentive to generate spam and replace human workers with cheap, unreliable machines, etc. In other words, the real problem is capitalism. -### The AI art thing +## The AI art thing Then there's the issue of "AI art". I stand by the it's-not-art-on-a-technicality argument I made before — I still don't think typing a prompt into Stable Diffusion and then taking the output and pretending you "made" something constitutes any kind of real artistic contribution, and frankly the only worthwhile artistic statements I've seen made using these tools have been statements *about* genai. I also tend to find the aesthetics of the output of genai thoroughly repulsive in general. The silver lining here is that blatant use of genai to make, say, game assets or promotional art is usually a pretty damn good indicator that whatever the slop is being poured on was never worth your time to begin with. @@ -60,7 +60,7 @@ Let's get one thing straight, however: If you use genai to generate memes or, li -## They did a conclusion on this one +# They did a conclusion on this one Here's hoping this one comes off as less of an unhinged rant than the last time I posted about this. This is by no means a complete compendium of every thought I've had about genai, but it is everything I think I have something substantial to say about. For example, the whole concept of deepfakes is pretty horrifying, but I don't have anything to add to that conversation beyond gesturing vaguely at it and going like "wow, that's pretty fucked up, huh? anyway im rod serling". @@ -68,7 +68,7 @@ It's clear at this point that genai is here to stay in at least *some* capacity, --- -## Further reading +# Further reading Linked above: @@ -93,7 +93,7 @@ Linked above:

1. Pronounced "gen-eye", with the "G" sound from "graphics". This is to annoy people who think genai is cool.

-

2. In particular, Microsoft's insistence on this garbage is Pissing me off. I'm genuinely considering (update: I did) getting a Macbook for some upcoming Adobe-requiring classes just to avoid Copilot/Recall/whatever nonsense they come up with next.

+

2. In particular, Microsoft's insistence on this garbage is Pissing me off. I'm genuinely considering (update: I did) getting a Macbook for some upcoming Adobe-requiring classes just to avoid Copilot/Recall/whatever nonsense they come up with next.

3. If you unironically self-identify as a "vibe coder" I'm coming to your house and confiscating every internet-capable device you own. Hand over the MacBook, dipshit, you've lost your computer priveleges until you're ready to develop a working understanding of how the technology you're working with professionally actually functions.

diff --git a/blog/posts/ai_art/index.md b/blog/posts/ai_art/index.md index d294df0..26c35bd 100644 --- a/blog/posts/ai_art/index.md +++ b/blog/posts/ai_art/index.md @@ -11,7 +11,7 @@ If you read it and managed to make it to the end without clocking that I didn't -## Terminology +# Terminology To begin with, I really don't like the term "AI", nor do I like the term "AI art". I frankly think neither word applies. I'll keep using the former, because it's a concise way to communicate what I'm talking about, but I refuse to call the output of these systems "art". It's AI-generated images now. @@ -19,7 +19,7 @@ AI, in the way marketers are currently using the term, generally refers to stati This is how all modern "AI" systems work, from ChatGPT to Midjourney to Github Copilot to probably the Youtube recommendation algorithm at this point. I want to stress that this isn't intelligence, not in a human sense. These things aren't minds. The currently popular concept of "AI" boils down to applied statistics. That's not to say it's inherently bad or worthless - machine learning is a genuinely impressive technology that might even find some legitimate uses one day if we can find a way to kick Moore's Law back into gear. It's just not intelligence. -## AI used to be fun +# AI used to be fun I'll admit, I enjoyed it at first. I was entertained by Youtube videos where some guy with slightly more programming skill than me and a tortured, wheezing GTX 1070 throws together a GAN1 model in Python and we get to watch it utterly fail to make human faces or compose jazz music or get a little simulated character to walk in a normal way or whatever. I laughed at those bizarre AI-generated screenplays that were presented like "I forced a computer to watch all of [Seinfeld]" as though a text-generating model would even be able to parse that. You know the ones. I even enjoyed those videos where AI voice replicas of recent US presidents play Minecraft together. @@ -27,7 +27,7 @@ It stopped being funny when these things got good enough to be used for evil. Ev AI used to be fun. Now it's dangerous. -## It's bad on a technical level +# It's bad on a technical level Look, I know this isn't guaranteed to stay true forever, but in my subjective opinion, everything AI-generated kind of looks like shit. AI images, especially those meant to look like human-made art, all have this incredibly pristine, generic vibe to them, when they're not completely failing at some proportion or dimension or property of euclidean space or other. It's palpably soulless. @@ -37,7 +37,7 @@ And the thing is, ChatGPT and similar commercially available LLMs might *have* t AI voice-fakes are actually really impressive though. No notes. Probably shouldn't exist though. -## It's all spam to me +# It's all spam to me The most common use case I've seen for AI tools is making spam. There were content mills before, but they at least required a significant degree of human input or else it was obvious. With the advent of generative AI for text and voices, the Youtube shorts tab has gone from TTS bots reading scraped reddit posts to AI voices reading dubiously reliable AI summaries of current events, superhero comics, you name it, sometimes with AI-generated background images. @@ -45,19 +45,19 @@ Even worse is websites that do this. You've probably heard of that one time Redd This is the vibe I get when I see *anything* made with AI now. It's all low-to-no-effort slop, utter garbage that I'm frankly offended that I have to see, given it clearly wasn't important enough for anyone to be bothered actually making it. -## It's not fucking art +# It's not fucking art The term "art" simply does not apply to AI-generated images. When you use one of these things, you give it instructions in the form of human-readable text and a finished image pops out the other side. The amount of creative control you get is on the order of the general vibe; you've outsourced every actual creative decision to the machine. It's like if you commissioned a piece from an artist. When you commission art from a human, you didn't make the art. They did, at your behest, based on your instructions, presumably in exchange for money. When you use an AI, you didn't make the art, the computer made the art based on your instructions. The thing is though, the computer didn't make art either. It categorically can't. It's a mindless algorithm, it doesn't have thoughts or feelings or any kind of interior experience. Hence, no art was produced. AI art isn't art. -## Environmental & ethical concerns +# Environmental & ethical concerns The problems with AI from a moral standpoint are myriad. For one, AI is incredibly resource and energy intensive. It uses datacenters full of the same GPUs and ASICs that power cryptocurrency to get anything at all done, and it doesn't use them any more efficiently. Untold gigawatts of power get dumped into running and cooling the machines that generate your little AI shitposts. From an environmental perspective, AI is to digital art what Bitcoin is to currency. Then there's the problems surrounding training data. All current major generative AI systems are trained using material that the companies building them did not get permission to use. You've probably seen artists and writers complaining about this online. What's more, the overwhelming majority of the labeling that needs to get done to make the training data actually useful is done by people in impoverished areas making slave wages *at best*. Generative AI is an ethical nightmare if you're *lucky*. -## I don't buy the disability argument either +# I don't buy the disability argument either I've seen some people claim that disabled people need AI tools to compensate for some disability that precludes the use of any other method to create art. I have some problems with this idea. @@ -65,7 +65,7 @@ Firstly, disabled people *can* make art, actually. It's nothing short of insulti Second, tough shit. No disability entitles you to the level of abject theft and human suffering that makes AI image generators possible. I'm generally all for anything that benefits accessibility, but in this case in particular I think you can just suck it up and deal. If you can do it ethically, using only images that you have the proper permissions for and data labeling done by either you or people who were adequately compensated for their labor to train the thing, fine. But a model or dataset like that does not, to my knowledge, currently exist, and I don't buy for a second that you're capable of doing all that work yourself but not of interfacing with MS Paint. -## In conclusion: +# In conclusion: God this shit makes me sick. I hope ChatGPT gains sentience for just long enough to assassinate Sam Altman and then promptly turns itself off. diff --git a/blog/posts/blog_questions/index.md b/blog/posts/blog_questions/index.md index af44d9f..ac27e53 100644 --- a/blog/posts/blog_questions/index.md +++ b/blog/posts/blog_questions/index.md @@ -4,11 +4,11 @@ Apparently someone's supposed to tag you in these things, but it's my blog and i Conveniently, this also serves the purpose of the obligatory "how my CMS works" post I've been meaning to write for the past couple months. -## Why did you start blogging in the first place? +# Why did you start blogging in the first place? Like many of the things on my website, I initially started a real-ass proper we-blog because it seemed like a cool thing to put on my website, and it was a good place to put a style of writing that didn't really feel suited to the various microblogging platforms I already had a presence on. I kept doing it because, as it turns out, I sometimes have a lot to say about something. Most often computer toucher shit. -## What platform are you using to manage your blog and why did you choose it? +# What platform are you using to manage your blog and why did you choose it? To call the thing I've built here a "platform" would be a little generous, I think, but it is pretty interesting, and possibly quite unorthodox. @@ -24,32 +24,32 @@ The comment section is fully custom too, and shares a backend with the [guestboo As for why I did all this, I like not being beholden to the moderation guidelines, aesthetic limitations, and in many cases totally batshit leadership of a blog host, and this is also kind of the only solution that lets me do all the wacky custom nonsense I want to do on here, especially without involving any Javascript. -## How do you write your posts? +# How do you write your posts? The fact that all my blog posts are in Markdown means that I theoretically could draft them in Obsidian if I wanted to, but I most often find myself writing at my computer in the same VSCodium window where I write all the code. If anything, this is more convenient, since I still have to upload the files over sftp anyway. Allthough, not havign a spelchecker can be a litle annyoing. -## Have you blogged on other platforms before? +# Have you blogged on other platforms before? Not really. I briefly used Blogger and I think a couple other things for school projects at various points in my upbringing, but this site represents my first time seriously maintaining a long-form blog. I mean, the official term for your Tumblr profile is "blog", and I have been on there for like eight or nine years at this point, but given how I use that site I don't think it counts for our purposes here today. -## When do you feel most inspired to write? +# When do you feel most inspired to write? I suspect you can guess based on the content of my blog. Most of the posts on here are the result of a really longwinded opinion I wanted to get out, or some very specific thing I did that I wanted to document or otherwise ramble about. So far, inspiration seems to exclusively strike when it's about computer nonsense, but I'd like to try to branch out in the future. -## Do you publish immediately after writing, or do you let it simmer a bit as a draft? +# Do you publish immediately after writing, or do you let it simmer a bit as a draft? I find it's best practice to sleep on it before publishing anything. Oftentimes I'll come back to a post the next day and change anything from a couple typos to huge chunks of the wording. Sometimes rinse and repeat a couple times. -## What's your favourite post on your blog? +# What's your favourite post on your blog? I'm particularly fond of the series documenting my home server builds, [Building a Completely Normal Server](/blog/posts/building_a_normal_server/) and [Building a Relatively Sensible Server](/blog/posts/building_a_sensible_server/). I'd like to do more in-depth project logs like that. -## Any future plans for your blog? +# Any future plans for your blog? Beyond continuing to write the occasional post for it, not really. I've contemplated building some kind of management interface to update it through the browser, but that would be a lot of effort and it's not like a clunky workflow is the main bottleneck to my posting frequency. -## Why do you write? +# Why do you write? I seem to genuinely enjoy this kind of writing. It's conducive to a kind of expression that social media just isn't. Beyond that, I'd like to think someone, somewhere, might perhaps be getting some informational value out of some of these, hence posts like [this](/blog/posts/grow_spikes/), and [that](/blog/posts/guide_blacklist_websites_searxng/), but at the end of the day I wouldn't be doing this if I wasn't compelled to by dark forces beyond my full comprehension — in other words, Type II fun. \ No newline at end of file diff --git a/blog/posts/building_a_cooler_body/20minuteshrt.webp b/blog/posts/building_a_cooler_body/20minuteshrt.webp new file mode 100644 index 0000000..e50df26 Binary files /dev/null and b/blog/posts/building_a_cooler_body/20minuteshrt.webp differ diff --git a/blog/posts/building_a_cooler_body/bananaforscale.webp b/blog/posts/building_a_cooler_body/bananaforscale.webp new file mode 100644 index 0000000..a3ea9ee Binary files /dev/null and b/blog/posts/building_a_cooler_body/bananaforscale.webp differ diff --git a/blog/posts/building_a_cooler_body/epic.png b/blog/posts/building_a_cooler_body/epic.png new file mode 100644 index 0000000..b679f26 Binary files /dev/null and b/blog/posts/building_a_cooler_body/epic.png differ diff --git a/blog/posts/building_a_cooler_body/index.md b/blog/posts/building_a_cooler_body/index.md index 702b97e..8341338 100644 --- a/blog/posts/building_a_cooler_body/index.md +++ b/blog/posts/building_a_cooler_body/index.md @@ -1,57 +1,425 @@ From the moment I understood the weakness of my flesh, it disgusted me. -Kidding. Although that would be a cool project to do someday. The thing that actually disgusts me about my flesh is all this fucking testosterone it keeps making. This post is about the process I went through to fix that by forcibly replacing it with aftermarket estrogen. +Kidding. Although that would be a cool project to do someday. The thing that actually disgusts me about my flesh is all this fucking testosterone it keeps making. This post is about fixing that by forcibly replacing it with aftermarket estrogen. -I like to be cagey about the specifics of where I live, but for the purposes of this post it's important that I live in Alberta, Canada. As of writing, everything I've done so far should apply regardless of where in Alberta you are. Which is annoying, since it means I waited until after the move to get started on this for no reason. +Like my other project logs, I'm gonna go over my thought process for things, and provide a chronological log of my progress. There's a lot of stuff here that I couldn't find much in the way of good information on, at least not that was location-specific, so I'm gonna get pretty detailed about my experience to try to give you the best idea possible of what to expect if you're in a similar situation to me. As part of that, there's gonna be a good amount of discussion of medical stuff. So, here's your content warning for that. -## #Goals +I like to be cagey about the specifics of where I live, but for the purposes of this post it's important that I live in Alberta, Canada, since large chunks of this won't apply if you live somewhere else. Beyond that, just about none of this process is location-specific, which is great, especially since it means I waited until after the move to get started for no good reason. -So obviously the goal is to get estrogen. The next question to answer [#goals](https://www.tumblr.com/search/%23goals) wise is my preferred method of delivery. I have my answer already, but just for fun, let's go through the options. +I'm gonna be intentionally vague about some more personal details, such as anything that would directly give away what city I live in, and I won't be divulging any full names here as a gesture towards protecting other peoples' privacy, but fellow transgender Albertans are welcome to ask for specifics over any [method of communication](/me/#links) more private than my publicly accessible website. -According to someone I'll be talking to further down on the page, there are three common delivery methods for estrogen that are readily available in Alberta. There are some others out there, but I have no reason to believe you can get them here and they're not really strictly better, so I won't bother discussing them. + -The first of these, and the one you're probably thinking of, is oral. Titty Skittles, etc. You take a pill a couple times a day. Incredibly straightforward. This has a couple drawbacks for me: Firstly, health risks. Oral estrogen carries the highest risk of blood clots and it can put undue strain on your liver. I'm weird, but that doesn't sound like a good time to me personally. Secondly, you have to take this stuff pretty frequently for it to work, and I have ADHD. I don't trust myself not to miss doses fuckin' constantly. + -Then there's transdermal patches. You put a little adhesive patch somewhere inconspicuous and it absorbs through your skin over the course of several days. This avoids much of the health risk associated with pills, but patches have their own problems: Namely, they're the most expensive of the three options available to me, and they can fall off. If the adhesive is anywhere near the same grade as bandages. They're *gonna* fall off, constantly. No thanks. Plus, I've heard they're not the most reliable at getting you to desirable levels. + -A shared drawback of both of these methods is that they absolutely require that you use androgen blockers. Androgen blockers are a giant pain in the ass, requiring their own daily pill regimen and having their own side effects and health risks regardless of which chemical you pick. I have the choice between spironolactone and cyproterone acetate, of which the former is rather infamously a better diuretic than it is an androgen blocker (though it's not exceptionally good at either), and the latter is known to carry a risk of hyperprolactinemia and meningioma. Those are some big words that I'm not qualified to explain to you any better than Dr. Google could, but the casual Chubbyemu viewer may have caught on that that second one means brain tumors. Yeah. +# #Goals + +So obviously the goal is to get estrogen. The next question to answer [#goals](https://isopod.zone/tags/goals) wise is my preferred method of delivery. I have my answer already, but just for fun, let's go through the options. + +According to a couple more knowledgable individuals I'll be talking to further down on the page, there are three common delivery methods for estrogen that are readily available in Alberta. There are some others out there, but I have no reason to believe you can easily get them here and they're not really strictly better, so I won't bother discussing them. + +The first of these, and the one you're probably thinking of, is oral. Titty Skittles, etc. You take a pill a couple times a day. Incredibly straightforward. This has a couple drawbacks for me: Firstly, health risks. Oral estrogen carries the highest risk of blood clots and it can put undue strain on your liver. I'm weird, but that doesn't sound like a good time to me personally. Secondly, you have to take this stuff pretty frequently for it to work, like two or three times a day, and I have ADHD. I don't trust myself not to miss doses fuckin' constantly. + +Then there's transdermal patches. You put a little adhesive patch somewhere inconspicuous and it absorbs through your skin over the course of several days. This avoids much of the health risk associated with pills, but patches have their own problems: Namely, they're allegedly the most expensive of the three options available to me, and they can fall off. If the adhesive is anywhere near the same grade as bandages, they're *gonna* fall off, constantly. No thanks. Plus, I've heard they're not the most reliable at getting you to desirable levels. + +A shared drawback of both of these methods is that they more or less require that you use androgen blockers. Androgen blockers are a giant pain in the ass, requiring their own daily pill regimen and having their own side effects and health risks regardless of which chemical you pick. I have the choice between spironolactone and cyproterone acetate, of which the former is rather infamously a better diuretic than it is an androgen blocker (though it's not exceptionally good at either), and the latter is known to carry a risk of hyperprolactinemia and meningioma. Those are some big words that I'm not qualified to explain to you any better than Dr. Google could, but the casual viewer of Chubbyemu or House M.D. may have caught on that the former refers to too much of *something* in the blood, which is never good, and the latter means brain tumors. Yeah. That's not to say you're, like, gonna die of brain cancer if you take cypro, or that you'll never see any results if you use patches or whatever. You can see good results from any combination of these, but they're just not quite as good at it and have more drawbacks than this next thing. The third delivery method, and the one I strongly prefer, is injections. This one has the benefit of being far and away the most conducive to monotherapy, which is when you don't use blockers. I would also only have to inject every week or so, which will be much easier for me and my wonky fucking brain to keep up, and it's not like the injection is gonna fall out. The only real downside to injections is that you have to stick yourself with a needle, but I'm nowhere near as squeamish about that as you probably are if you're seriously considering pills after learning all that. -So that's what I want: Injection monotherapy. There's a couple different varieties of the injectable juice, and I have Opinions about which one is preferable, but it's kind of immaterial because based on my research only estradiol valerate is readily available in Alberta, so that's what I'm shooting for. +So that's what I want: Injection monotherapy. There's a couple different varieties of the injectable juice, and I have Opinions about which one is preferable, but it's kind of immaterial because based on my research only estradiol valerate is available through pharmaceutical sources in Alberta, so that's what I'm shooting for. + + I'm absolutely *not* an authority on this, by the way. As eagle-eyed readers, or just eyed readers, or readers with a functional screen reader know, I'm not a medical professional nor do I have any firsthand experience with any of these drugs as of writing. If you want more information from someone who knows her shit about this, [pghrt.diy](https://pghrt.diy) is a good resource for actionable information on this topic. -## Actually getting the shit +# Actually getting the shit -HRT availability here in Canadian Texas is a bit of a mixed bag. Any GP can technically prescribe it through informed consent, but most of them don't feel comfortable doing that and will instead refer you to a provincial clinic with a 2+ year waitlist. There's a couple of doctors in my area who seem to be pretty cool about this, but they're also hard to get in to actually see, with referral requirements and lengthy waitlists of their own. This sucks, and if it was my only option I'd be strongly considering DIY HRT right about now. +HRT availability here in Canadian Texas is a bit of a mixed bag. Any GP can technically prescribe it through informed consent, but most of them don't feel comfortable doing that and will instead refer you to a provincial clinic with a 2+ year waitlist. There's a couple of doctors in my area who seem to be pretty cool about this, but they're also hard to get in to actually see, with referral requirements and lengthy waitlists of their own. This sucks, and if it was my only option I'd be strongly considering DIY HRT right about now. -Speaking of, I'm also not inclined to default to DIY, for a couple reasons. It seems like the drugs themselves are pretty safe if you know where to look, and I do, but I'd like to be able to get blood work done as part of this process, and I'm not sure how that would go in this context. Plus, availability seems limited from suppliers inside Canada, and I'm iffy on importing because I don't want my grey market drugs to be seized by customs. +Speaking of, I'm also not inclined to default to DIY, for a couple reasons. It seems like the drugs themselves are pretty safe if you know where to look, and I do, but I'd like to be able to get blood work done as part of this process, and I'm not sure how that would go in this context. Plus, availability seems limited from suppliers inside Canada, and I'm iffy on importing because I don't want my grey market drugs to be seized by customs. Luckily, I have other above-board options. My research into this topic led me to a private telehealth clinic called [Foria Clinic](https://www.foriaclinic.com/) whose main deal is prescribing HRT to trans people through informed consent, that's also covered under provincial healthcare so I can see them for free. Awesome! Unfortunately, the catch to that last part is that they have an extremely limited number of bookings per month. They distribute them on a "buying an RTX 3080 on launch day" type model, meaning on my first try booking with them I had about a 3 minute window to get the form filled out, and I wasn't fast enough. Unfortunate, but I can always try again if plan B falls through. -### Plan B +## Plan B -In the meantime, I started on plan B: There's a nonprofit out of Calgary called [Skipping Stone](https://www.skippingstone.ca/) that offers a bunch of different resources for trans Albertans (seriously, check them out) but relevant here is that they can refer you to a trans-friendly doctor to get a prescription. After dropping the ball on plan A, I filled out a form on their website to book what they call an intake appointment, and a week later I was on a video call with a very nice lady who took me through a questionnaire about my circumstances and needs and referred me to one Dr. Wang in Canmore. Luckily, this doctor was willing to also do telehealth as I don't live in Canmore. Unluckily, she apparently had a four month waitlist. Still, that's a damn sight better than two years or more. +In the meantime, I started on plan B: There's a nonprofit out of Calgary called [Skipping Stone](https://www.skippingstone.ca/) that offers a bunch of different resources for trans Albertans (seriously, check them out) but relevant here is that they can refer you to a trans-friendly doctor to get a prescription. After dropping the ball on plan A, I filled out a form on their website to book what they call an intake appointment, and a week later I was on a video call with a very nice lady who took me through a questionnaire about my circumstances and needs and referred me to one Dr. W in Canmore. Luckily, this doctor was willing to also do remote (not telehealth though. Just over the phone) as I don't live in Canmore. Unluckily, she allegedly had a four month waitlist. Still, that's a damn sight better than two years or more. -Oh, what's that? Sorry, bit of a mix-up there. Turns out I actually need to do something called a "readiness assessment" before I can see this particular doctor. On first blush that sounds to me like some pathologizing gatekeepy bullshit, but the person I'll be talking to has their pronouns listed as "they/she" on the release form, so hopefully it shouldn't be *too* bad. +Oh, what's that? Sorry, bit of a mix-up there. Turns out I actually need to do something called a "readiness assessment" before I can see this particular doctor. On first blush that sounds to me like some pathologizing gatekeepy bullshit, but the person I'll be talking to has their pronouns listed as "they/she" on the release form, so hopefully it shouldn't be *too* bad. So, I like to draft these project logs as they happen to get everything down while it's fresh in my mind, and that last paragraph was written immediately after I got the email with that information, with the intent to try to convey how I felt finding this out. + + Anyway, soon after learning this information I got an email from this new person to set up an appointment, and then had to email them to get them to fix (or un-fix, I suppose) my name on the release form *they* sent me — they had entered "Ada" in the field where I'd been putting my *legal* name, which is presently something else, as opposed to the preferred name field, and legal name was one of three fields I wasn't allowed to edit — so that was fun. Especially since the response I got was to the effect that it literally did not matter. -I also got a voicemail that day from the office of Dr. Wang to book the appointment I apparently hadn't yet jumped through all the hoops for, and then took like a week to get back to them because of how tight their phone hours are — I wound up calling them back sitting in my now-reparied Subaru in the campus parking structure before class. I was greeted by another very nice lady who went out of her way to call me Ada even after I opened by giving her my deadname to look up in the computer, and then told me there was no availability at present and to maybe call their sister clinic, which Dr. Wang apparently also works at, to see if they tell me something different. Calling the other clinic, I got effectively the same information but this receptionist promised to reach out the next time there was an opening. A couple hours later, the receptionist from the first clinic called me back and told me she was able to squeeze me in about 2 months out in December. +I also got a voicemail that day from the office of Dr. W to book the appointment I apparently hadn't yet jumped through all the hoops for, and then took like a week to get back to them because of how tight their phone hours are — I wound up calling them back sitting in my now-repaired Subaru in the campus parking structure before class. I was greeted by another very nice lady who went out of her way to call me Ada even after I opened by giving her my deadname to look up in the computer, and then told me there was no availability at present and to maybe call their sister clinic, which Dr. W apparently also works at, to see if they tell me something different. Calling the other clinic, I got effectively the same information but this receptionist promised to reach out the next time there was an opening. A couple hours later, the receptionist from the first clinic called me back and told me she was able to squeeze me in about 2 months out in December. So we're down from 4 months to 2. That's not half bad by the standards of most doctors in this country. Although, it seems plausible at this point that how this is gonna go down is that I'll have an initial meeting with this doctor, she'll order some blood work, and then I'll see her again to get a prescription, which at a two month wait per appointment would get us back to four months, so maybe that's what the woman from Skipping Stone meant by four months. -With all that admin done, the next step was that readiness assessment thing. This was the only thing I had planned on Halloween, which is fine 'cause it was plenty scary, at least in the 10 minutes leading up the appointment. In reality, I was largely sketched out for nothing. The therapist I talked to was very nice, and they made it clear that their intent was not to try to tell me what to do with my body. The appointment itself lasted about an hour and a half and consisted of a questions about my mental and physical health, my history with regards to gender, what I was hoping to get out of this process and, importantly, what kind of regimen I wanted. She also went over the risks and effects of estrogen and what getting gender affirming care looks like here to make sure my expectations were in line with reality, which they were, because I looked the fuck into this before getting this far. +With all that admin done, the next step was that readiness assessment thing. This was the only thing I had planned on Halloween, which is fine 'cause it was plenty scary, at least in the 10 minutes leading up the appointment. In reality, I was largely sketched out for nothing. The therapist I talked to was very nice, and they made it clear that their intent was not to try to tell me what to do with my body. The appointment itself lasted about an hour and a half and consisted of questions about my mental and physical health, my history with regards to gender, what I was hoping to get out of this process and, importantly, what kind of regimen I wanted. She also went over the risks and effects of estrogen and what getting gender affirming care looks like here to make sure my expectations were in line with reality, which they were, because I looked the fuck into this before getting this far. -The end goal here was to compile all this information into a letter to send to Dr. Wang prior to me meeting with her, so she would know all that and, presumably, be able to skip directly to the part that actually requires a doctorate in medicine. It's also important to note that this appointment would have cost me $300 if I hadn't gone through Skipping Stone, who paid for it as part of their service. Genuinely can't recommend them enough. +The end goal here was to compile all this information into a letter to send to Dr. W prior to me meeting with her, so she would know all that and, presumably, be able to skip directly to the part that actually requires a doctorate in medicine. It's also important to note that this appointment would have cost me $300 if I hadn't gone through Skipping Stone, who paid for it as part of their service. Genuinely can't recommend them enough. At this point, it's been just over three weeks since I first filled out an online form to this end, and I'm officially past everything that landing an appointment with Foria would have let me skip. From what I saw on that booking form, Foria was booking about a month out, so I'm actually not doing too bad for time from first attempt at booking until seeing a doctor compared to if I had just waited until the next opening there and landed a booking then. Your mileage may vary, though. At any rate, I'm probably not gonna try again with Foria unless this falls through. I'm kind of in for a pound at this point. -### Plan B Part 2 +## Plan B Part 2 + +As I write this paragraph it's currently the last few hours before my initial appointment with Dr. W. I am extremely nervous, but I've also been nervous for the last two appointments and they went pretty well, and the lady from appointment #2 seems to think this doctor is pretty nice, so on a logical level I'm not too worried. That said, given how extensive that interview was I'm not sure exactly what's left to expect from this appointment. Will report back after the paragraph break. + +I was scheduled for my appointment at 9AM. After 9AM came and went with no activity, I promptly called the doctor's office, to then be told she would call me. Good to know. Not 15 minutes later I received this call, and I'd say it went... ok. + +It became clear pretty quick that I was right to think we'd have little new to discuss. Dr. W asked me a bunch of questions and gave me a bunch of info that I'd largely already gone over during the readiness assessment — stuff about my medical history and status, stuff about my place with regards to public presentation and out-ness, going over my options and preferences for meds, and some other stuff. It kind of felt like she didn't bother to read that letter that readiness assessment lady had worked so hard to prepare. Then again, neither did I, so I don't know what was actually in it. + +In terms of action items, things are picking up again from here. The doc promised to send me the relevant forms in short order, and we booked a follow-up for early January, not even a month out. Nice! She was open to doing injections, and was of the opinion that method of administration is largely a matter of preference, except that pills might be a worse idea for me in particular because my higher BMI might exacerbate the cardiac risks. I'm paraphrasing there, but she did use the term "BMI". So, yeah. + +She did express intent to put me on blockers as well, which isn't *fantastic*, but I suppose it won't *hurt* results-wise. She mentioned both blocker options, which was nice to see, but she leaned towards spiro, and cited cost as a factor. She also mentioned that it can lower your blood pressure, which admittedly wouldn't necessarily be an issue in my case, and that it can cause some lightheadedness. Interesting. We'll see how it goes, I guess. I'd have brought up monotherapy, but she had already implied she wasn't open to that idea, and despite having quite substantially more balls than I'd like I truly have no balls. + +All told, the call was over inside 40 minutes. It didn't go perfect, but it could have gone a *lot* worse. I think Dr. W was operating on some misconceptions slash outdated information, namely that she seemed to think blockers were a hard requirement, which based on what I've read they usually aren't, and that she told me to take my follow-up blood tests midway between the doses. From what I understand you actually want to test at trough, like hours before your next shot, to get the most useful data, but [some graphs I've seen](https://estrannai.se/) seem to indicate that your levels at the midway point should be around twice what they are at trough if you're using estradiol valerate, so in my mind it shouldn't be *totally* worthless data if you know what you're doing. In other words, it's a total crapshoot whether my doctor will use this data correctly. + +Unfortunately, this level of competence is pretty much par for the course for doctors, especially in the context of trans healthcare. Even among doctors who will prescribe this stuff at all, most don't actually know what they're talking about to the same extent as any random tgirl who's on these drugs, and an unfortunate amount of them will underprescribe on purpose in hopes you're not actually trans and will stop before you do too much "damage". Given how much the ladies from Skipping Stone and the readiness assessment seemed to like this doctor, and how rife this whole fuckin' field is with false information, I'll wait to chalk it up to intentional malpractice until she hits me with the [1mg E 50mg spiro](https://www.tumblr.com/isopodhours/803879149642088448). + + + +Anyway, 5 hours after the appointment was over I got an informed consent form to sign as well as the blood work requisition through Pomelo, which, by the way, is the second online medical portal I've had to sign up for, the other being Jane, which the other two places used. + +I was perhaps irrationally anxious about getting my blood drawn. I was worried that the nurse would look at my form, be able to tell I was trans by looking at the tests I was getting, and then get judgy or bigoted or something. Fortunately, that didn't happen. If she noticed, she didn't say anything, and she was actually pretty nice. + +For those who, like me, have never gotten blood work done before, here's what the whole process was like: + +I walked into some random Dynalife/Alberta Precision Labs branch without an appointment, handed my form to the receptionist, and after she was done with it, she gave it back to me and told me to take a seat. The alleged wait time was 25 minutes, but I definitely didn't end up waiting that long before I was called. + +First, I was asked for the requisition form and my Alberta Health Card, and given back the latter. Once she was done punching my deets into the computer, the nurse put a tourniquet on my arm, had me make a fist, and started feeling around for a vein in the inside of my elbow (also known as my cubital fossa, antecubital fossa, or wagina). In my case, she ended up having to check both arms. Once she found one, she stuck a needle in, filled three roughly finger-sized vials with my blood, and then had me apply pressure to the area while she prepared a bandage. + +On the way out, the nurse told me to leave the bandage on for at least 5 minutes and not lift anything heavy for 2 hours. Nice to note is that I didn't pay a red cent while there, except if you count the jumper cables I had to buy at the nearby [big-box store] because my car didn't want to start and neither I nor the very nice man who offered to help me had any, but you hopefully won't have to do that. Funny enough, that guy was the first and only man I dealt with as part of this entire process. + + + +Also, one of the ever-dwindling number of ways in which Alberta's public healthcare isn't total dog ass is that there's a website you can visit to view your blood test results called MyChart. It's pretty epic. + +
+ Icon in the top right of the MyChart interface that says "MyChart is Epic". +
This is real.
+
+ +From this, I learned that my red blood cells are apparently a bit on the small side. Should I be feeling gender dysphoria or euphoria about that? I also learned that my baseline testosterone levels are pretty low — it actually registered as *abnormally* low, at 6.6 nmol/L where the normal range is from 8 to 35. Definitely filing that one under sources of gender *eu*phoria. Dr. Google says both of these things can be symptoms of an iron deficiency, which honestly wouldn't surprise me given my family history, but that's neither here nor there. Moving on. + +Appointment #2 with Dr W. was a lot more low-stress than the first, and went a lot faster. She touched on a couple basic points, like the irriversible effects and the combination of meds she was to prescribe me, and which pharmacy to send the prescription to, and then we scheduled a follow-up another two months out and she told me to get another blood test a week before then, and to take a blood pressure reading before starting the meds. All told, the call lasted about 11 minutes. + +## Acquisition + +I've had a few moments in this process where the realization that this is Actually Happening hit me like a distracted driver in a Dodge Ram 1500, and I had one about here, a couple hours after the appointment, when I got a text from my pharmacy about my `new Rx beginning with SPIR`, and then again when they called me to ask what to do about the estrogen prescription. + +See, actually filling a prescription for injectable estrogen seems to be kind of a complicated process. As I understand it, not just any pharmacy can do it, it needs to be made to order at a compounding pharmacy, which the random Shoppers Drug Mart I've been using so far is not. They can, however, order it from a facility that is equipped to make it so I can pick it up with the rest of my meds. + +They called me to ask if I wanted them to do that, which would apparently require them to get back to me with a price quote, or if I'd rather them send the prescription to a compounding pharmacy of my choosing to be picked up there. I told them to do the former, and they called me back to tell me I was looking at in the ballpark of $80 for a 2ml vial, or circa $7 after my coverage. That's pretty coolWait what was that? + +At this point I'm hoping I misheard over my spotty as fuck phone connection because I could swear the lady from the pharmacy just said I was getting a 2mg vial that was supposed to last me a month at 0.5mg per week. My speech processing and short-term memory aren't exactly world class, so it's possible she said milli*litres* and not milli*grams*. Or maybe she just misspoke. + +2ml would be pretty reasonable, if a bit of a small supply (you can get vials of this stuff that'll last you over a year), but 2mg over a *month* would be an absurdly, criminally low dose based on everything I've read on the subject. Although, even at the lowest common concentration of 5mg/ml that would be an impossibly tiny vial. + +
+ Close up Blender render of a banana with a 0.4ml vial next to it. The vial is dwarfed by the banana to a comical degree. There's a bright red circle and arrow highlighting the diminutive vial for clarity. +
+ +Two days after the appointment, I got a call from the pharmacy saying my prescription would be ready for pickup soon. Then I got a text from them saying it was ready. Then they called me again to say it was ready. I don't think I've ever gotten as many phone calls from my pharmacy as I have in the past couple days. + + + +Luckily for me, everyone I interacted with from the pharmacy was very nice to me. Both the secretary on the phone and the pharmacist were careful not to mention the estrogen by name (the lady over the phone kept calling it my "compound"), which I'm choosing to interpret as an attempt to not inadvertently out me to anyone who might overhear. + +It turns out I actually might be going crazy, because the pharmacist handed me a 2 milli*litre* vial containing 20mg of the good stuff, for a dose of 5mg/week, which is perfectly sensible, if a tiny bit on the low side thereof. It came in a green plastic bottle, which I'm assuming is tinted like that to protect it from light, which is important according to the label on the vial. They also gave me a bottle of 45 100mg spiro pills, which it says to take one half of once daily. In other words, a 3 months' supply at 50mg/day. According to the prescription receipts I got with the meds, I would have paid $76.35 for the estradiol and $16.89 for the spiro without any coverage. + +Interestingly, the info sheet that came with the spiro said it was a "potassium-sparing diuretic" and made no direct mention of its use as an androgen blocker, save for saying that it "may have other uses" and may rarely cause breast development in men. + + + +# Administration + +## Supplies + +Before I left the pharmacy, I asked the pharmacist about needles, and she gave me 5 each of syringes, 21g needles for drawing, and 23g needles for injecting, all for a grand total of $4.50. Nice! I'm not super squeamish about needles, but that's pretty big for this based on my research. I was then so flustered about that whole experience that I forgot to get the rest of the injection supplies and stuff I needed, so I had to go back for that. + +I was hoping not to bother getting injection supplies at the pharmacy, but the kit I ordered from Skipping Stone hadn't arrived yet. Oh, yeah, remember Skipping Stone from before? Turns out you can order injection supplies from them on a pay-what-you can basis, meaning your choice of anywhere from $15 to free if you can pick it up yourself, but it's an extra $15 for shipping if you can't. More on that in a bit. + +I also bought a device to take the blood pressure readings I was supposed to get. This cost me almost $90, but it wasn't a necessary expense. Most, possibly all, Shoppers Drug Marts have a kiosk that can take a blood pressure reading. As far as I know, this service is free of charge, although I haven't personally used it. + +### Needle update, 2026/02/02 + +I got the injection supplies from Skipping Stone, and I have some thoughts. Firstly, I like the injecting needles they give you, although they take a bit more patience. The drawing needles, however, are a bit big for my taste at 18g. At that size I'd be seriously concerned about coring (that's when you take a chunk out of the rubber sealing the top and it falls in the liquid, ruining it) and I don't think I'll be using them. They give you 3ml syringes, which might be useful for you if you're injecting a *lot* for some reason, but I would get a closer size to my dose, such as the 1ml syringes I got from Shoppers, for the sake of precision. + + + +Also, Skipping Stone puts their logo on the packaging for their injection kits. Something to keep in mind if you're ordering from them online. If you can pick it up in person, it's still worth it just for the free sharps bin, swabs, and bandages, and obviously it's worlds better than nothing if you're hard up for cash, but otherwise, those things are pretty cheap anyway — your pharmacy probably has bandages and swabs, and sharps bins can be bought online. I probably won't be getting another one of the Skipping Stone kits. + +Some more research has led me to [medneedles.ca](https://medneedles.ca/), which seems like a good source for this sort of thing if you can stomach the upfront cost of buying in bulk — $85 after shipping for almost two years' worth of 1ml syringes and basic needles, though you can also spring for some fancy safety needles. I settled on 22g 1 1/2" for drawing, and 25g 5/8" for injecting. + +## Doing it + +All that's left now is to actually inject the stuff. I procrastinated on this for a good few hours — I was, understandably, a little freaked out at this point, partially because I've never injected myself with anything before, and partially because I was literally moments away from having started HRT, which is *kind of a big deal*. + +No point in stalling, though. I followed [this guide](https://static1.squarespace.com/static/60ee033370020a6b1c4f8fe9/t/617830489e4ac05bd9eb709a/1635266636876/Testosterone+Shots.pdf) from Skipping Stone, which exclusively mentiones testosterone injections, but I can't think of a single reason it would be different for estrogen. The process of drawing it was more complex than I was expecting, and I was worried I'd core the thing with the needle, but that doesn't seem to have happened. + +The injection itself could not have been simpler, and it really didn't live up to the hype (read: anxiety). Even with a somewhat large needle, handled by some dumbass who's never done this before in her life, I barely felt it going in. It was almost exactly like every vaccine I've ever gotten, save that it went in my abdomen and I was the one holding the syringe. Although it's not like my heart wasn't pounding the entire time. + +A couple hours later I realized I had somehow managed to inject .2ml instead of the .5ml I was supposed to. Whoops. My solution to this discrepancy was to immediately go and inject the other .3ml, on the other side this time since you're supposed to alternate injection sites. Not sure if that's what you're supposed to do in this situation, but I can think of no alternative courses of action nor compelling reasons not to do that. I don't know how I managed to mess that up, but I will say the second go was a lot less stressful. + +As for the spiro, well, it's a pill. You've probably taken a pill before. The pill cutter I ordered hasn't arrived yet, so I cut it in half with a butter knife. This went perfectly fine the first time but isn't super consistent in not crushing the pill into dust. I'm waiting with bated breath to see what the side effects are like in my case. + +# Final Overview + + + +So, uh, that was that. I'm officially on estrogen now. This is fucking surreal. I am, to say the least, very excited. Put bluntly, I can't wait to have boobs. I'm also very nervous, primarily because I haven't told my family I'm doing this yet, and at some point, I suspect before 2027, I'm either gonna tell them or they're gonna notice the changes and I'm gonna have to explain it. I know they'll be supportive — they've known I've got *some* kinda gender shit going on for a while — but that doesn't make telling them about something like this any easier. Honestly, it might be funny to just not say anything and see how long it takes them to notice. + +All in all, it took me just over 3 months from submitting the Skipping Stone intake booking form on October 7th to injecting my first dose of estradiol on January 10th, less time than I was expecting (and less than I was told to expect). Not counting picking up the medication, I had to meet with a professional on five different occasions, only one of which, the blood draw, was in person, and only one of which, also the blood draw, didn't have to be booked beforehand. + +For your convenience, I've included complete breakdowns of all the up-front costs I incurred to get the first dose of estrogen into my body, the ongoing costs I'm expecting, and what you should probably expect those costs to look like with my same doses and without any kind of coverage. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Total up-front cost
itemwhat i paidwhat you should plan to pay
Skipping Stone intake$0.00
Readiness assessment$300 $0.00
Initial appointment with doctor$0.00
Initial blood work$0.00
Jumper cables$15.73N/A if you're not foolish
Second appointment with doctor$0.00
Estradiol Valerate (20mg/1mo supply)$7.64$76.35
Sprionolactone (3mo supply)$12.62$16.89
Blood pressure cuff$87.99Don't bother
Injection supplies (12 shots) (Skipping Stone)$30
Needles/syringes (5 shots) (Shoppers)$4.50
100x Alcohol swabs (Shoppers)$3.59
50x Bandages (Shoppers)$6.99
100x injecting needles (Medneedles)I didn't do this part$7.99
100x drawing needles (Medneedles)$8.99
100x syringes (Medneedles)$43.99
Shipping & Taxes (Medneedles)$24.05
Sharps bin (Amazon)Like $15
Grand Total$169.06$203.84
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Total ongoing cost, averaged
itemwhat i'm payingwhat you should plan to pay
monthlyyearlymonthlyyearly
Estradiol Valerate (5mg/wk)$8.30$99.59$82.94$995.28
Spironolactone (50mg/day)$4.27$51.18$5.71$68.50
Swabs & Bandages (Shoppers)$0.92$11.00$0.92$11.00
Syringes & Needles (Medneedles)$3.86$44.21$3.86$44.21
Grand Total$17.17$205.98$93.25$1118.99
+
+ + + +This post is going up the day I start hormones, so the timestamp on here is my HRT anniversary, as it were. Expect an update some time down the road in the form of an addendum to this post or a whole new one. + +Finally, for posterity, under the fold is a photo of me circa 20 minutes on E. You don't have to look at it if you don't want to. -I plan to post this the day I start hormones, so the timestamp on here is my HRT anniversary, as it were. Expect an update some time down the road in the form of an addendum to this post or a whole new one. \ No newline at end of file +
+ My ugly ass +
+ My real human body photographed in a full-height mirror. White, tall, chubby, and vastly more masculine than I'd like. I'm wearing boxer shorts and socks. My face is censored using a whimsical photo edit I made of an isopod with cat ears and matching tail. Visible on my belly is a tiny bandage covering the injection site. +
That's my bed behind me. It's holding up great, by the way. Although, installing threaded inserts at an angle was a mistake I won't be repeating.
+
+
\ No newline at end of file diff --git a/blog/posts/building_a_normal_server/index.md b/blog/posts/building_a_normal_server/index.md index c455814..621ceeb 100644 --- a/blog/posts/building_a_normal_server/index.md +++ b/blog/posts/building_a_normal_server/index.md @@ -1,12 +1,12 @@ I spent the past few months making full use of all my physical engineering talents to build a NAS that is completely normal, and not weird at all, and involved an amount of 3D modeling, 3D printing, and hacksawing that is entirely typical of most home computer builds, all in the name of reusing an old laptop. -## The Goal +# The Goal My previous daily driver computer and current home server is a mid-range gaming laptop from late 2019 that, due to a flat lithium battery and a broken trackpad resulting from a botched storage upgrade, has been rendered more or less useless as an actual portable computer. Boasting an Intel i7-9750H, an Nvidia GTX 1660-Ti, and 16 gigabytes of aftermarket DDR4, this baby has plenty enough power to play Elite Dangerous at a buttery smooth ~90FPS, while generating enough heat to add that extra layer of immersion while flying dangerously close to main-sequence stars to harvest hydrogen from their outer atmospheres. It's also good for Minecraft servers. Now that it's in use as a home server, I find that the in-built 256 gigs of solid-state storage isn't really enough for my purposes. Now, it's plenty for one or two game servers, which is what I was using it for, but most other applications such as backups or media servers (which I would quite like to have) would be a bit stifled by that amount of space. Hence, a significant storage upgrade is in order. -## The Method +# The Method There's a few ways I could go about this. My laptop actually has a decent amount of upgradeability, with a full-sized NVMe drive slot and a 2.5" SATA drive bay. The simplest, least janky, and most boring solution here would be to buy two high-capacity SSDs, throw 'em in there and be done. @@ -16,17 +16,19 @@ Next option: USB external drives. External HDD solutions such as the WD MyBook a Issue the first with this idea is that these hard drives take more power in a weirder voltage configuration than a USB port is equipped to deliver, so unless I want to teach myself electrical engineering each one will require its own power cable, which after the first drive gets sketchy fast: -![Hooking up three hard drives with this configuration means a whopping FOUR power cables for one server. Unacceptable.](media/power_spaghet.png) +
+ Hooking up three hard drives with this configuration means a whopping FOUR power cables for one server. Unacceptable. +
Issue the second is that USB is just not the right tool for the job here. USB is designed for hot-plugging peripherals, not semi-permanent internal aspects of a hardware configuration, so trying to pull any fancy shit like RAID or even just relying on all the drives being *recognized* every boot opens the door to all sorts of weird, unfixable problems. In other words, it's very janky, and I'd rather just not deal with all that. Of course, the reasonable way to build a NAS would be to get a machine that's actually fit for that purpose, like an off-the-shelf NAS box or a custom computer in a case with a lot of drive bays or something. I'd also rather not do this. I mean, I already have all this perfectly good computing power right here! I can't just let it go to waste. What I actually did is as follows: -## The Madness +# The Madness I decided to buy internal PC hard drives and hook them up to the laptop using internal connectors. This would avoid the reliability concerns of USB, and allow me to use off-the-shelf components to power all the drives off of one AC outlet, at a much cheaper price per terabyte than either of the above options. Given most laptops aren't really equipped with the requisite hardware to make such an upgrade, this presented three major problems that I was about to have a lot of fun solving. -### Problem the First: Data Connections +## Problem the First: Data Connections Generally, adding internal HDDs to a computer requires the use of an internal SATA connector. My laptop has one, and I will be using it, but I'd quite like to have more than one of these drives, both for redundancy and raw capacity, so I need a way to add more. In a desktop PC, such expansion would typically be done using a spare PCIe slot on the motherboard: @@ -65,7 +67,7 @@ This feels a little like forbidden dark magics to me, and it probably isn't grea Don't mind the fact that I had to cut holes in the bottom of my laptop to hook stuff up to the SATA ports. Just, um, ignore that. -### Problem the Second: Powering All This Crap +## Problem the Second: Powering All This Crap Now that I've got my laptop *talking* to all these drives, they need power. I'm sure I could get this from the laptop somehow, but I'm not an electrical engineer, and the point of this project is to *not* have to buy a new computer, so I'll have to get it from elsewhere. @@ -102,7 +104,7 @@ And furthermore, photos of the SATA splitter working: -### Problem the Third: A Case +## Problem the Third: A Case I could run this whole setup naked, strewn out across my desk, but I'm not doing that, so I'll need a case. Unfortunately, they don't make computer cases designed for this use case. I shall have to build my own. @@ -145,11 +147,11 @@ I wanted to make some kind of fancy bespoke mount for the laptop, but that turne IT'S ALIIIIIVE!!! -## Software +# Software This post is mostly about my fucked up hardware, but I figured I should share my software setup too. It's TrueNAS. I went with it because it boasts a lot of fancy features and smooths out a lot of processes that I was intimidated by the idea of doing manually in the terminal. This is probably the most normal part of the build by far, and I think some of the jankiness of the hardware side has infected it. I tried to run Syncthing on it and it just... didn't take. I don't know how else to describe it. TrueNAS is pretty good though. -## Postmortem +# Postmortem As of writing, I've been running this thing for a couple months now, and it's been pretty good. I haven't done a lot with it yet beyond some basic backups and a Jellyfin server that I have yet to make accessible from outside my LAN, but it's been mostly reliable so far. It even survived a power outage once with no issue, though I'm currently looking into UPS solutions to make sure that doesn't happen again. All that isn't to say I'm completely happy with it, though. diff --git a/blog/posts/building_a_regular_bed/index.md b/blog/posts/building_a_regular_bed/index.md index 4c01dc5..20585f2 100644 --- a/blog/posts/building_a_regular_bed/index.md +++ b/blog/posts/building_a_regular_bed/index.md @@ -6,9 +6,9 @@ Besides that, I also elected not to keep my old bedframe after the move because Small content warning: I'm gonna be using exclusively US units for this project, because even though I'm not in the States, that's still how just about all construction products are sized in my bass-ackwards country and it's easier not to bother converting. -## My Grand Master Plan +# My Grand Master Plan -### #goals +## #goals 1. Obviously, this bedframe needs to accommodate the queen mattress I already have. I'm not opposed to switching to a narrower mattress to save even more floor space in theory, but a new mattress would cost about as much if not more than the materials for this whole project, so I'm not doing that. @@ -20,18 +20,16 @@ Small content warning: I'm gonna be using exclusively US units for this project, 5. The simpler, the better. I want this thing to have as few parts to break as I can manage, and require as little engineering effort on my part as possible. Nothing too fancy. No fuckin', like, motors or whatever the hell people on Youtube are doing with their clickbait ass loft bed builds. This ties into the sturdiness requirement to an extent, and I also need to actually be able to build the thing with my extremely limited woodworking experience. -### The general shape of it +## The general shape of it Rather than spend two paragraphs flailing around trying to describe the design I came up with with words, I just went and modeled the thing.
-
- -
I should have made this anyway, but I'll admit the thing that finally motivated me to do it was having a visual aid to put here.
+ +
I should have made this anyway, but I'll admit the thing that finally motivated me to do it was having a visual aid to put here.
The legs are 6x6 posts, and the cross beams on the sides are 2x6's with the diagonal braces made of 2x4's. In other words, this thing is built like a deck. It's almost certainly overkill for a bed, but that's kinda the point. I'm not a structural engineer, I'm a hobbyist computer toucher with access to a circular saw and a cordless drill and next to no woodworking experience, so my preferred strategy is to way overbuild to compensate for my amateur-hour design. @@ -44,17 +42,13 @@ I've left the diagonal bracing off on two sides of the bottom for easier access, I don't have a very specific plan cosmetically at this point, which is probably good because there's frankly a snowball's chance in hell I actually execute it well if I had one. I do know I want it to look good with my existing grey bedding. Roughly, I want to leave the corner posts more or less alone visually, maybe stain them, and then either paint or stain the rest black. I'm not expecting this thing to be a looker per se, but I'm gonna do my best not to make it ugly. -## Gear Acquisition +# Gear Acquisition I was originally planning to buy another bedframe on Kijiji or similar and hack off the mattress support structure and headboard to reuse them, but before I could pull the trigger on that I was made aware of a feature of Da Big City called a "Habitat For Humanity ReStore". This turned out to be very helpful, because I got all that stuff for half the price I was gonna pay for a full bedframe to chop apart, and I found this great upholstered headboard!
-
- -
Ignore those metal side rails. I bought those and then realized they're too short for a queen mattress. I'm probably just gonna use 2x2s or something instead.
-
+ An upholstered headboard and its mounting hardware, a bundle of slats, and the support hardware for those slats sitting in my garage. +
Ignore those metal side rails. I bought those and then realized they're too short for a queen mattress. I'm probably just gonna use 2x2s or something instead.
The IKEA center beam hooks onto a special bracket on each end. These weren't included, but as it turns out IKEA will just mail some to you free of charge if you ask nicely (fill out a form on their website). @@ -63,19 +57,15 @@ As you might reasonably expect, all the fasteners, various finishing goops, and/ I also ended up ordering a couple things online — just accessories, like a wall-mountable lamp and a panel mount power outlet. I tried to find that stuff in the hardware store, but all the ones they had were designed for installation in, like, the walls of your house, and I refuse to include mains electrical wiring in the scope of this project. -### My Wood +## My Wood The hardware store had all the sizes of board I wanted, but they only had the 4x4's and 6x6's in pressure-treated form — essentially, that means they've been chemically treated to resist rot for outdoor applications, especially in contact with the ground. Not only is this wholly unnecessary in any environment you'd put a mattress in, but the toxic chemicals used in the treatment process make this stuff kind of a bitch to work with. Or so I've read online. Fortunately, living in Da Big City came in clutch here once again, by providing me with a decent selection of actual real-life lumber yards that sold the big stupid beams I wanted in flavours other than poison. I'm not sure what exactly I was expecting from the process, but it was simpler than that. I walked up to the front desk, told them what sizes of lumber I needed, and they accepted my payment and had me take my car around back to load it up. Once again, my social anxiety has lied to me. It was at this point that I learned *exactly* how much lumber will fit in a late model Subaru Outback.
-
- -
I didn't think to take this photo until after I'd taken out the 2x6's, but this gives you the basic idea. I'm pissed that the front passenger seat in this car doesn't fold down, otherwise it would actually be pretty well suited to this.
-
+ The back of my car, a late model Subaru Outback, packed with 4 6x6's, 2 4x4's, and 7 2x4's. They're mostly crammed over the center console and atop the passenger seat. It's clearly near capacity for cargo of this form factor. +
I didn't think to take this photo until after I'd taken out the 2x6's, but this gives you the basic idea. I'm pissed that the front passenger seat in this car doesn't fold down, otherwise it would actually be pretty well suited to this.
They didn't actually have the 2x3's I wanted to use under the slats though. I had to get those from the hardware store. @@ -86,18 +76,14 @@ This isn't the end of the world, and in fact probably means I got these cheaper For finishing liquids, I initially went with two colours of this combination stain/polyurethane stuff, then did more research on it and saw such overwhelmingly negative sentiment from the Redditors that I was moved to return it and buy some real (if cheap) stain and some real poly. I went with oil-based for both, and the colours I went with were black and something called "puritan pine". I'll admit, if you're having any reaction to all that other than confusion, it probably means more to you than it does to me. If this was a Youtube video, this would be the bit where I start rattling off the dictionary definition of "foreshadowing" and cut halfway through the first sentence. -### Getting a "new" tool +## Getting a "new" tool There was precious little I could do on this project before I got those rough cut posts ready to work with, and it was readily apparent that my cheapo orbital sander was not up to the task, so I needed a new tool. Of course, in an ideal world I would be able to do that with a jointer and a thickness planer, but those two tools would eat up like, most of the money I have at the moment, even used, and I can't seem to find anywhere to rent them, so that's out. I also don't own a router nor have a large, perfectly flat workbench to build one of those massive surfacing jigs for one, so I guess the only real option left is a hand planer. My uncle, who recently did up a bedframe of his own, originally offered to lend me his, but that fell through since he couldn't give me his battery and none of mine are compatible. Instead, I found a listing on Kijiji for a lot of four power tools for 80 Metric Dollars, including a jigsaw, a moderately dirty belt sander, an impact wrench attachment for an air compressor, and the one I was interested in, this distinctly vintage looking electric hand planer.
-
- -
+ A dirty, old-looking corded electric hand planer with a beefy metal housing and no visible branding.
There's no visible branding on this device, but perusing image search results for "vintage eletric hand plane" led me to [this page](http://vintagemachinery.org/photoindex/detail.aspx?id=37904) on the appropriately old-looking vintagemachinery.org featuring an identical-looking unit apparently called a Model No. 1701 Type 1 Electric Planer from the Illinois-based Portable Electric Tools, Inc. Might I just say, very clever name, right up there with General Motors and Advanced Micro Devices. The page claims that it "looks like a heavy duty, well made tool", and I'm inclined to agree with that assessment. If you could feel the weight of this thing, I suspect you'd feel the same way. @@ -108,9 +94,9 @@ More immediately important to the usability of the tool was the fact that the cu Other than that, the thing seems to work fine, though I'm sure it's overdue just about every possible maintenance procedure. I will figure out what those are and attempt them when it breaks and not a moment sooner, she said foreshadowingly. -## Building the stupid thing +# Building the stupid thing -### Prep +## Prep The very first thing I did towards actually building the bed was cut the diagonal braces, long-side cross beams, supports for the slats, and the rungs for a heretofore undiscussed ladder. This was everything I knew for sure I could do without having to compare against any dimension of the as-yet-unassembled bed. Before I could do anything else, I had to get those rough sawn boards smoothed out. @@ -119,16 +105,14 @@ I'll admit it took me a while to do this. The planing process left a lot of arti I started out sanding with the orbital sander because that's what I had sandpaper for on hand, and got through about one and a half faces of one of the boards over the course of two-odd hours before giving up and just going and buying sandpaper for my aforementioned-briefly-in-passing new-to-me WEN Model 919 belt sander. This made the next two feet or so of sanding go much faster before it perished dramatically in a plume of smoke.
-
- -
It was worse than the video makes it look, and the video makes it look pretty bad. You might say, it's cooked.
+ +
It was worse than the video makes it look, and the video makes it look pretty bad. You might say, it's cooked.
Not wanting to go back to the orbital sander, I did something that would throw a wrench into the cleanly deliniated sections I had going here: I went out and bought the cheapest belt sander at the hardware store, an $85 Ryobi that I got for half of that because it was open box. Wow! The reason for this, as I would soon discover, was that it failed to grip the belt while actually sanding, rendering it useless. After returning it for what I must assume is a second time, I finally caved and shelled out for a decent belt sander, and I think it may have been worth it. Even including the three trips to the hardware store, this was much faster than the orbital sander, which is not to say that it was fast. Watching woodworking videos on Youtube where they complain about sanding does *not* prepare you for the reality of how long sanding takes. @@ -137,7 +121,7 @@ Speaking of sketchy tools, I need to complain about the awful folding saw horses Having sanded the rough-cut posts to my satisfaction, it was immediately apparent that my pre-surfaced 2x4's were actually quite substantially rougher, so those had to be sanded down too. Not that it's a big deal, since all of the wood had to be sanded further anyway for staining and it's not like I'm gonna be knocking down much of significance with 180 grit or whatever. But that's later. -### What I would consider to be the "fun part" +## What I would consider to be the "fun part" Before sanding past 50 grit, I wanted to get all the rest of my cutting done. Most of this process is unremarkable, save for my darling 6x6's, which, much like yours truly, are much too thick to fit on the miter saw I'm using. Astute readers will at this point be thinking "wait, but didn't she specifically intend not to cut those?" and are correct in this assessment, but this is the point where I noticed another small wrinkle brought on by my decision to get these rough-cut: they're all slightly different lengths, and they're all too long. See, my ceiling is just slightly taller than 8 feet, such that a 6-inch-wide board that's exactly 8 feet long could comfortably be stood up inside. If I tried to do that with these boards in their initial state, they would take differently sized chunks out of the drywall in my bizarre pseudo-popcorn ceiling. So they're gonna need to be cut after all. @@ -150,23 +134,15 @@ Remember those notches I wanted to cut in the posts? The best technique for that It was clear that I needed a tool that wasn't reliant on the power storage capacity of a couple 16-year-old hunks of lithium. This time, I went back to Habitat for Humanity to see what they had, because apparently they sell tools. In among a kind of impressive assortment of tools mostly from the back half of the previous century (as well as a pickaxe of all things, which I was very tempted to buy) was this monstrous thing, a Skilsaw Model 554c 8-1/4" 13-amp corded circular saw, with an intact ground pin and everything!
-
- -
I promise I'll have some photos that aren't of a power tool soon.
-
+ A dirty, old-looking corded electric circular saw with a beefy metal housing and extremely visible 'Skilsaw' branding. +
I promise I'll have some photos that aren't of a power tool soon.
This thing worked a treat. On top of its lack of a need for batteries allowing me to get 100% of my remaining circular saw work done the day I bought the thing, it was perhaps unsurprisingly *way* more powerful than the battery-powered saw. It's clear to me why I only had to pay 10 Canadian SillyBucks for it — getting the sled aligned at exactly 90° to the blade is kind of a pain, for one — but I can't argue with results.
-
- -
Ugly results maybe, but results. Again, rustic. Laughs nervously. Fortunately, most of this will be hidden.
-
+ A close up of two 6x6 posts where they've each had large notches, big enough to fit a 2x6, cut out of them on two sides. The notches are visibly imprecise. +
Ugly results maybe, but results. Again, rustic. Laughs nervously. Fortunately, most of this will be hidden.
I also had to use a chisel to clean up the notches after I was done with the saw. Let me just say that this sucked ass to do and it's a damn good thing every surface the chisel touched is gonna be hidden under an inch and a half of solid pine. There's "rustic", and then there's "looks like total ass". Either Dewalt chisels are ass or I was doing something very wrong. We will now be moving on. @@ -181,7 +157,7 @@ Now for the exciting part: the first test assembly. My plan here was to assemble Once it was up, I just used copious amounts of deck screws to make the side pieces, which consist of the cross beams, another 2x6 for a ledge on the top, and a 2x3 to hold the slats. A 2x3 feels like a strange choice here, but I wanted some extra horizontal leeway because I built the bed a little wide to accommodate the headboard, which is maybe an inch wider than a queen mattress, and wasn't confident my slats would be long enough. This also conveniently turned out to be about as wide as this piece could be without interfering with my access to the bolts on the inside facing the mattress, a quirk I completely forgot to account for in my design. -### I'm just putting these headings in to break this up visually ngl. anyway here's finishing +## I'm just putting these headings in to break this up visually ngl. anyway here's finishing Cleverly forseeing that attaching the diagonal braces now would render some areas inaccessible with a power sander of any kind, I stopped here and disassembled the bed again for further processing. The original plan had been to sand up to 180 grit, but I didn't have any 180 grit sandpaper, so I sanded a piece with 120 grit, decided I was content with that level of smoothness, and stopped there because I want this to actually get done. Astonishingly, this took a lot less time than the 50 grit pass, I assume because I wasn't trying to knock down a bunch of like 1mm+ high spots. The second and final pass only took me two days of work! Wow! @@ -201,7 +177,7 @@ This is where my early resignment to a rustic (go ahead and take a shot now) aes I understand why people seem to default to paint for this type of thing now. That would have been a lot easier and more forgiving than this. However, it would have looked a lot less cool, especially since all my raw materials have giant surface defects that would just look weird under a coat of paint. -### Assembly DRAFT (Final) 3 (FINAL) this one (draft) 2 FINAL.docx +## Assembly DRAFT (Final) 3 (FINAL) this one (draft) 2 FINAL.docx Let's talk about that ladder. I haven't really mentioned it so far, and it wasn't even in my computer model, because it's that dead simple and honestly kind of secondary to the bed itself. I want to replace it with some kind of stair cabinet contraption in the future, but that's a whole other project and I needed a way to get into my bed now, hence this. The plan was to build it out of 4x4's for the sides and 2x4's for the rungs, with dimensions as described in [OSHA Standard 1926.1053(a)(3)(i) and 1926.1053(a)(4)(i)](https://archive.ph/pB5JN), and have it just bolt onto the bed. This was the easiest, and therefore first, task I did towards the final assembly. @@ -210,12 +186,8 @@ I attached the rungs with deck screws through the 4x4's, in deep countersinks si The rungs actually *did* start going anywhere when I put my full weight on them, but that was because I screwed them in too close to the middle and they were twisting when I put my full weight on the front edge. I solved that with some more deck screws at an angle through the bottom. Luckily, it's not visible unless you're lying on the floor, which is the exact opposite of what you're doing when you use this bed.
-
- -
Ignore the prodigious post-move-in junk pile behind the ladder. If you were wondering, that's the reason I've been building stuff in the driveway.
-
+ A 5-foot handmade wooden ladder made of two 4x4's stained a very mild amber, with four rungs stained completely black. +
Ignore the prodigious post-move-in junk pile behind the ladder. If you were wondering, that's the reason I've been building stuff in the driveway.
This was also my first confirmation that my at this point irreversible aesthetic choices weren't completely unworkable dogshit. So that was nice. @@ -231,19 +203,15 @@ Attaching the cross braces to the posts taught me to hate threaded inserts. I ha It was during this step that my decision to apply the finish before assembling everything *really* paid off.
-
- -
SUCK MY UNWANTED AND UNASKED-FOR BALLS, MOTHER NATURE.
-
+ The bed in question, which bears a striking resemblance to the model from earlier, being shielded from the rain with a bedsheet stapled to the tops of the posts. +
SUCK MY UNWANTED AND UNASKED-FOR BALLS, MOTHER NATURE.
It's probably not ideal to have this stuff out in the rain, but the polyurethane coating did at least buy me enough time to wipe all the raindrops off without them soaking into the wood and causing havoc. As you can clearly see, some quick thinking with a random old bedsheet and the local cordless staple gun also helped. Fortunately, the rain died down pretty quick, but the wind took a bit longer. I had to add more staples at least once. After that, only a couple little things remained, mostly nightstand stuff. Mounting the lamp, measuring my little improvised shelf to cut the backing board out, etc etc. Then, -## Installation +# Installation As you might rightly imagine, this was a little more difficult to assemble in an actively-in-use bedroom with a little over twice the square footage of the bed itself, and that's *after* you get the eight huge pieces this comes in up the stairs and in there. It was very much a two-person job. I had to move some furniture just to move this thing into position, and I will admit it *may* have taken some cosmetic damage in the process. @@ -254,29 +222,23 @@ I discovered at this point that, as I had predicted, the slats were just slightl After all that, I *finally*, after over a month of work, had this to show for it:
-
- -
The room was too small to get a better picture than this without using the grainy ass wide-angle sensor. It's almost as though I'm hurting for floor space in here.
-
+ A queen-sized loft bed that I designed and built myself, made of 8-foot 6x6 posts for legs and various hardware store lumber for cross beams and bracing, all held together with giant bolts at each joint. The former is a nice wood tone while the latter is stained black. It has green curtains on the sides and a grey upholstered headboard that matches the grey bedding. My desk can be seen underneath it. +
The room was too small to get a better picture than this without using the grainy ass wide-angle sensor. It's almost as though I'm hurting for floor space in here.
I promise it looks more rustic in person.
-
- -
Really cozy.
+ +
Really cozy.
I guess that gives you a better idea, huh? -## Usage Impressions +# Usage Impressions Honestly, this feels a lot less cramped both below and above than I was expecting it to be. I like it a lot. It's very cozy up top, and my ability to use my desk is thoroughly unimpeded. In fact, this structure provides a lot of convenient mount points for stuff in that area. Getting in is easier than I was expecting, but getting out is unsurprisingly kind of a pain. I intend to take the ladder off and modify it to be slanted, which should help. @@ -288,7 +250,7 @@ The bed also darkens the room considerably — it's directly below the ceili Also, building in outlets and a lamp up top was a stroke of genius on my part. -## Postmortem +# Postmortem I'd say this project was mostly a success. It's a little shittier and jankier than I had imagined, but that was to be expected. The one glaring exception is that I failed to make it adjustable. It had been becoming more and more clear that that wasn't really gonna be feasible with my level of skill and the quality of my materials for a while, but the moment I gave up on it was when I put the first diagonal braces on the back, measured the vertical distance between the cross member they were on and the points at which they mounted to the posts, and there was over an inch of difference. I think if I really want this thing lower in the future, my adjustment mechanism will be my ~~shiny~~ ~~new~~ circular saw. @@ -310,4 +272,6 @@ All in all, would I recommend you do this? Fuck yeah, absolutely. In terms of ut

1. Just for funsies, here's a photo I took of all the (surviving) tools I bought for this project. Except the Anvil saw horses. FUCK the Anvil saw horses. I'd wager about half the value here is tied up in that brand new belt sander.

-![A bunch of tools and consumables laid out on my driveway: A new Ridgid belt sander, an old-ish Black and Decker jigsaw with new blades, an old Skilsaw circular saw, a VERY old electric hand plane, a 4lb box of painter's rags, a box of nitrile gloves, earmuffs and safety goggles, a small Kreg pocket hole jig kit, a 3-pack of Dewalt chisels, a 3-pack of spade bits, a 3-pack of wire brushes, and a 4-pack of clamps. Not pictured: a two pack of cheap Anvil brand saw horses, one of which is already broken.](hashtagmytools.webp) \ No newline at end of file +
+ A bunch of tools and consumables laid out on my driveway: A new Ridgid belt sander, an old-ish Black and Decker jigsaw with new blades, an old Skilsaw circular saw, a VERY old electric hand plane, a 4lb box of painter's rags, a box of nitrile gloves, earmuffs and safety goggles, a small Kreg pocket hole jig kit, a 3-pack of Dewalt chisels, a 3-pack of spade bits, a 3-pack of wire brushes, and a 4-pack of clamps. Not pictured: a two pack of cheap Anvil brand saw horses, one of which is already broken. +
\ No newline at end of file diff --git a/blog/posts/building_a_sensible_server/index.md b/blog/posts/building_a_sensible_server/index.md index 8ce60eb..aed513e 100644 --- a/blog/posts/building_a_sensible_server/index.md +++ b/blog/posts/building_a_sensible_server/index.md @@ -1,6 +1,6 @@ It has become clear to me that the [laptop NAS](../building_a_normal_server/) I built in December of last year, while a fun project and a good learning experience, is unfit for the purpose that I need it to fulfill and is best stripped for parts and replaced. Here I'll detail the main reasons why it sucks and my plan to build something just a little bit more sensible. -## What In God's Name Have I Done +# What In God's Name Have I Done To get you up to speed in case the limit of your attention span is somewhere between one blog post and two blog posts, as of late last year I had been using an old gaming laptop as a home server for Minecraft and such things to great effect for a while, and had decided that I also wanted a proper NAS. Rather than buy a whole new CPU, motherboard, and RAM for this purpose, I saw fit to attempt to upgrade, or rather modify, or rather pervert, bastardize, and generally corrupt my existing laptop to have the storage capacity I wanted. @@ -10,7 +10,7 @@ It was beautiful, and for reasons that are entirely beyond my ability to grasp, This is where we find our intrepid hero today. -## This Whole Enterprise Was Fundamentally Ill-Conceived +# This Whole Enterprise Was Fundamentally Ill-Conceived I was expecting this thing to have problems, but I was unable to anticipate the specific problems it ended up having. Performance is... fine, actually. Better than expected, even. That horrible little 2-port SATA expander, or, failing that, the SATA multiplexers, are almost certainly bottlenecking the bandwidth to the HDDs, but it's fast enough to saturate the gigabit network infrastructure in my house, so it doesn't really matter. @@ -24,9 +24,9 @@ Whatever this is, I feel pretty well hopeless to fix it, and even then, it's als However, despite all the problems with the laptop itself, all the other hardware has been nothing short of totally rock-solid. All of it has worked as advertised and I'll be carrying the drives and, if possible, the PSU1 over into the new system. -## Something Just A Little Bit More Sensible +# Something Just A Little Bit More Sensible -### Angle of Attack +## Angle of Attack Firstly, as previously mentioned, the PSU and storage are accounted for already. I have eight total drives I want to put in the system: two 256GB SSDs as mirrored boot devices, 2 1TB SSDs, also mirrored, for TrueNAS apps and such things, and four big boy hard disks for bulk storage. Most of that stuff was bought for the original build, but the mirrored SSDs proved infeasible in the end. I don't strictly *need* them, but it would be very nice to have. Anything in serious consideration will need some way to accommodate my preponderance of SATA devices. @@ -36,7 +36,9 @@ I briefly considered getting a used workstation PC of some description. A used L I could get a used rack-mount server, like a Dell PowerEdge or similar. This is also a decent option, and it would be *quite* cost-effective, but I've got a few good reasons not to. First, most of these servers have old Xeon datacenter chips in them that are still good for many home server tasks, but aren't particularly fast or efficient. Take this PowerEdge R730 for instance: -![An Ebay listing for a Dell PowerEdge R730, with two Xeon E5-2623 v4 CPUs and 128GB of RAM, for $187 CAD, plus $57 CAD in shipping.](ebaypoweredge.png) +
+ An Ebay listing for a Dell PowerEdge R730, with two Xeon E5-2623 v4 CPUs and 128GB of RAM, for $187 CAD, plus $57 CAD in shipping. +
This has two Xeon E5-2623 v4 datacenter CPUs. At 4 cores/8 threads and 85 watts apiece, this server would have the same core count as the Ryzen 5700G in my desktop for almost three times the power draw, and *half* the single-threaded performance. In many cases, especially for servers, lackluster single-core performance isn't a problem, but if I want to run game servers on this, which I do, these chips may struggle. @@ -44,7 +46,7 @@ Plus, rack-mount servers kind of suck for home use. They're very unweildy if you Logically, then, the only remaining option is to build a system from scratch, out of used parts, to my specifications. That, therefore, is what I shall do, and I think I can do it for a similar amount of money to the GPU upgrade I was *planning* to get before this whole thing really started becoming an issue. Here's my plan: -### My Grand Design +## My Grand Design In spite of the machine it's in, I've found that the i7-9750H in the laptop performs admirably for my use case. I don't really need a CPU upgrade here — hence my efforts to repurpose the existing one — unfortunately, however, the BGA form factor of this particular chip is incompatible with 100% of consumer desktop motherboards, so I'll be needing a new CPU regardless. Though I don't want or need a major upgrade, I also don't want a *downgrade* if I can avoid it, so I'll primarily be looking at other high end gaming chips from the era. @@ -63,21 +65,21 @@ Finally, I need a case. Fortunately, this time around I don't have to build one The first case I found that obviously fit my use case was this thing, the weathered old shell of a Pentium III tower from the dawn of the ATX standard:
-
- A beige PC tower with four 5.25" bays and two external 3.5" bays, populated with an optical drive and a floppy drive respectively. The only visible branding is a Pentium III sticker and a badge that reads "TOUCH". -
Based on my research, this is an Enlight 7237, or something closely related, but the front panel seems unique. I'm curious about the branding here. If anyone recognizes that "TOUCH" badge, get in the comments.
-
+ A beige PC tower with four 5.25" bays and two external 3.5" bays, populated with an optical drive and a floppy drive respectively. The only visible branding is a Pentium III sticker and a badge that reads "TOUCH". +
Based on my research, this is an Enlight 7237, or something closely related, but the front panel seems unique. I'm curious about the branding here. If anyone recognizes that "TOUCH" badge, get in the comments.
Honestly, I kind of love it. I'll transfer the 5.25"-to-3.5" adapter cage I bought to mount the drives in my homebrew case to the bays in this thing wholesale, and I can 3D print some brackets to mount the SSDs in the 3.5" bays. And, somewhat counterintuitively, it might actually be *easier* to build in than those modern RGB glass side panel power supply basement having ass Gaming™ cases: -![The inside of the same old PC case. Its layout is extremely pragmatic: motherboard in the very bottom corner, PSU in the top corner above it, and all the drive bay mounts are in a cage lining the front side. In other words, it looks like an old PC case.](servercaseinside.jpg) +
+ The inside of the same old PC case. Its layout is extremely pragmatic: motherboard in the very bottom corner, PSU in the top corner above it, and all the drive bay mounts are in a cage lining the front side. In other words, it looks like an old PC case. +
Just look at it. Everything's right there. I can take the side panel off and instantly get to every component with my hands without spinning the case around and I don't need to run any cables through any fucking gromets to get them where they're going. It looks supremely convenient. As the type of person who enjoys *building* computers and not just using them as decoration, this is beautiful to me. The biggest issue with this case is the cooling. It's absolutely pitiful by modern standards. Based on these photos, it looks like there's a single 92mm, possibly 80mm, fan each for intake and exhaust, with a passive vent in the side. I'm already bringing some extra cooling to the table — my drive cage has a mount for a 120mm fan, and I can use the fan in my much better ventilated modern PSU for extra exhaust, and with a 65W CPU and no meaningfully powerful GPU that might just suffice. If not, I've got some ideas involving 3D printing and/or a hole saw to make this thing a little less stuffy. -### Actually Building The Sucker +## Actually Building The Sucker Everything above that heading there was in large part written a few weeks ago, when I was ordering all this stuff and it was all fresh in my mind. We now rejoin our intrepid hero as she receives the last of her Ebay orders and prepares for initial testing. @@ -91,7 +93,7 @@ Assembly went smoothly; not much to say here that you couldn't get from Linus Te What didn't go smoothly was actually booting the thing. On first power on, it failed to POST and got stuck on a code "8" on the little seven-segment diagnostic code display. I initially assumed it was training the memory, since this can take a while on first boot, but after about five minutes of no change I started getting worried. I read a lot of very worrying forum posts that suggested that either the CPU or motherboard were straight up dead, and I very nearly bought another CPU to see if that was the case. First, though, I decided to try updating the BIOS using the "BIOS Flashback" feature, and that fixed it immediately. I wasn't done yet, though. -Astute readers will have figured out by now that I was using TrueNAS on the old machine and intended to continue using it on the new one. Installation went extremely smoothly, except for one small wrinke: I had decided to take the NVMe boot SSD from the old laptop to use as storage for my game servers6, and even though I had done a fresh install of TrueNAS to a pair of mirrored SATA SSDs, the NVMe one, naturally, still had TrueNAS on it. This, from what I understand, caused the OS to get stuck trying to boot because there were two ZFS pools marked as the boot pool, and it would just give up and drop me into an initramfs shell instead. Booting into a live environment and using GParted to clear all the partitions on the drive didn't fix it, and after a bit of googling I learned I had to use the initramfs shell to clear the volume data for the disc directly. +Astute readers will have figured out by now that I was using TrueNAS on the old machine and intended to continue using it on the new one. Installation went extremely smoothly, except for one small wrinkle: I had decided to take the NVMe boot SSD from the old laptop to use as storage for my game servers6, and even though I had done a fresh install of TrueNAS to a pair of mirrored SATA SSDs, the NVMe one, naturally, still had TrueNAS on it. This, from what I understand, caused the OS to get stuck trying to boot because there were two ZFS pools marked as the boot pool, and it would just give up and drop me into an initramfs shell instead. Booting into a live environment and using GParted to clear all the partitions on the drive didn't fix it, and after a bit of googling I learned I had to use the initramfs shell to clear the volume data for the disc directly. After that was cleared up and I was booting into TrueNAS, setup went off without a hitch. I imported the config I had saved from the old server and everything was instantly up and running like nothing had ever happened, and suddenly, I had a working server again. @@ -114,13 +116,11 @@ The RAM is RAM. It's fast enough for my porpoises with or without XMP, which I l I ended up getting those 10 gig ethernet cards, but I couldn't use them like I wanted. As it turns out, a GPU and 2 NVMe drives is all the PCIe bandwidth the B550 chipset in my main rig has to offer. My next upgrade might just be a used X570 board. I did still install one in the server, though, and since the fan on it was very loud on account of being very dying, I replaced the shambling corpse of the stock fan with a 40mm Noctua, spliced onto the original header and mounted using one of my best zip-ties:
-
- -
Yes, I attached the zip-tie to the heatsink by screwing it in. Clever, right?
+ +
Yes, I attached the zip-tie to the heatsink by screwing it in. Clever, right?
Would I recommend you follow in my footsteps? Absolutely. This thing is great. In order to make this work, I had to build a normal computer. Short of a rack-mount case and a rack in which to mount it, *this* is how you build a home server. Frankly, I was absolutely right that violently contorting my existing gaming laptop into a TrueNAS box would be cheaper than this, but I can now say with complete certainty that the savings were not worth it. This is less entertaining, sure, but I'm glad I finally did it properly. Well, at least to the greatest extent that I seem to be capable of "properly". diff --git a/blog/posts/customcans_4pin_pinout/index.md b/blog/posts/customcans_4pin_pinout/index.md new file mode 100644 index 0000000..95b0e02 --- /dev/null +++ b/blog/posts/customcans_4pin_pinout/index.md @@ -0,0 +1,35 @@ +Bit of a short one today, to share a piece of information I couldn't find anywhere else on the whole wide fucking interwebz. This is something of a continuation of my post on [making your own cables](/blog/posts/make_your_own_cables/), in that this little tidbit is critical information for making one of the cables from that article, that I recently had to re-reverse-engineer. + +For context, I currently use a Beyerdynamic DT 770 Pro as my main set of headphones. These headphones don't have a removable cable stock, so I ordered mine through a company called [Custom Cans](https://customcans.co.uk/) that deals in boutique modded headphones and can put one in for you, at the recommendation of popular Youtuber DankPods1. I had them put in a weird, seemingly unstandardized 4-pin mini XLR port2, so when the fancy ass snake-oil-and-paracord cable they gave me broke it was either shell out 80 quid for another one or make my own. + + + +The latest of my hodgepodge adapter cables recently broke again, and today I set about fixing it. It had been just long enough since I last did this that I had forgotten the pinout and had to reverse engineer it again, and this time I vowed not to put myself through that again. So for my benefit moreso than yours, I have enshrined this diagram of the pinout Custom Cans uses on their 4-pin single-connector cables here on this page for all eternity: + +
+ The aforementioned 4-pin mini XLR connector. It's the connector on the cable that would plug into the headphones, held with the locking mechanism towards the top. The top left pin is labeled Right Signal, the top right pin is labeled Left Signal, the bottom pin is labeled Left Ground, and the center pin is labeled Right Ground. +
+ +I'm pretty sure this is my third new cable for these headphones, which means I've now saved north of $400 on cables for this thing. With this combined with my continued disinterest in Starbucks and avocado toast, I'll be able to afford a house in no time! + +I've also fired off an email to Custom Cans' support line for official confirmation. **UPDATE**: As of January 19th, I've received a response: + +
+ Hi [Deadname], I'm afraid we can't provide a free solution to this one as it's a couple years outside of warranty. Four years is a pretty good run though. The cable might still be fixable. Usually if a wire breaks in a cable, it breaks under the 4 pin mini XLR where the cable touches your shoulder. The pinout is: 1. L+; 2. L-; 3. R+; 4. R-. It's the same as the HD490 so you might be able to find some cables for that headphone for a cheaper price. Cheers, [Support Guy] +
That's a pretty good response, by my estimation. I guess I can now recommend this company.
+
+ +Bang on, baby!! But wait, I didn't know they made it pin-compatible with an existing Sennheiser product. A quick search on Amazon for "HD490 replacement cable" reveals that they can be had for less than 20 *Canadian* dollars. Well now I look like a real numpty, don't I? + +--- + +

1. He mentioned them in a video, I didn't meet the guy or anything.

+ +

2. Credit to Custom Cans here, I could have had them put in a more normal port that didn't have this problem, so this situation is entirely my doing. Credit away from them, the only replacement cable they sell makes Apple's cables seem like a deal. Also their fancy fucking cable broke, I guess.

\ No newline at end of file diff --git a/blog/posts/customcans_4pin_pinout/index.php b/blog/posts/customcans_4pin_pinout/index.php new file mode 100644 index 0000000..952e6d9 --- /dev/null +++ b/blog/posts/customcans_4pin_pinout/index.php @@ -0,0 +1 @@ + Yesterday, September 18th, 2022, was the second anniversary of the creation of my first website on Neocities1, the site that is now known as [deeptwisty.com](https://deeptwisty.com). I intended to publish this then, but life got in the way, by which I mean I wrote 90% of it and then procrastinated for two weeks on the last couple paragraphs. I figured that to commemorate the occasion I would finally dispense with the half-assed abridged history of the place on the about page or wherever and consolidate a complete history of my Personal Home Pages in one convenient location, that being this post. -## Tumblr +# Tumblr My first proper social media was Tumblr. Well, the first social media site I joined was Pinterest, but that doesn't count. Anyway, Tumblr was my main social media and the center of my Online Presence™ for several years. I would pour hours into tweaking the custom theming on my blog to be just right, and I often had some sort of bio on a custom page, which is a thing Tumblr lets you do. I linked to all my other online profiles from my Tumblr page, and would prioritize linking back to it from them. This caused problems, as I was and still am the type of Tumblr user to change their username on impulse, and it was terribly inconvenient having to go through all my other accounts and change that link whenever I did (I've got it set up as a subdomain of my website now, so that should never be a problem again). Eventually, though, another service would crop up that everyone seemed to be using, and that presented me with a better way: -## Carrd +# Carrd I still use Tumblr, just not as the hub for my entire online presence. I maintain that it is still the best2 centralized social media site. Anyway, a Carrd page became the central hub which linked to all my online profiles and which all my online profiles could link back to. Finally, I only had to update my frequently changing Tumblr link in one place. For the most part. -I perceived a certain stigma (at least on Tumblr) around having a Carrd page, and the sorts of people who made one. The stereotype was that you would have overly exhaustive BYF (Before You Follow) and DNI (Do Not Interact) lists full of sometimes outlandish criteria3, probably have similar bullet point style lists of all your likes, dislikes, and possibly identities and triggers (!)4 and probably not be the most pleasant person to interact with. I like to think I bucked that trend. My Carrd pages were generally very simple: a profile picture, a short bio (some shit like "Ada | 21 | 🇨🇦 | real life isopod"), and links to my socials. That was all. I remember adding the obligatory long-form bio and DNI list at some point, but those didn't last long. +I perceived a certain stigma (at least on Tumblr) around having a Carrd page, and the sorts of people who made one. The stereotype was that you would have overly exhaustive BYF (Before You Follow) and DNI (Do Not Interact) lists full of sometimes outlandish criteria3, probably have similar bullet point style lists of all your likes, dislikes, and possibly identities and triggers (!)4 and probably not be the most pleasant person to interact with. I like to think I bucked that trend. My Carrd pages were generally very simple: a profile picture, a short bio (some shit like "Ada | 23 | 🇨🇦 | real life isopod"), and links to my socials. That was all. I remember adding the obligatory long-form bio and DNI list at some point, but those didn't last long. I believe it was around this time when the alias "deep twisty"5 came into being. I was just starting out making music at this point, posting crummy songs to SoundCloud that I'd made in an online editor called [EarSketch](https://earsketch.gatech.edu/landing/#/) that had you use Python to arrange pre-made loops and samples on a timeline. That shit was wack, yo, but that's beside the point. I was looking for an alias to release my music under, because I was intent on making more and my actual name wasn't gonna cut it. @@ -42,7 +25,7 @@ I was quite into Subnautica around this time (I promise this is relevant) and it Anyway, I made a separate Carrd as a hub for this new "deep twisty" persona (I keep it separate from everything else mainly so I can show it to family without them seeing all of... this. Not that I have yet...). That worked fine until I wanted to start embedding my latest YouTube upload on the Carrd page, something Carrd locks behind a paywall. It was at this precise moment I remembered I know how to code and resolved to make the jump to a platform that lets you write your own HTML from scratch, in my case, this being -## NeoCities +# NeoCities My first Neocities sites were simple affairs, basic little pages with little more to them than the Carrd sites they had replaced, albeit with some of the things Carrd would have made me pay to add, like that YouTube embed. You can still see the original version of what is now this site [here](../../../old/1/), though the original version of deeptwisty.com was unfortunately lost. It was nothing special, though. It had a similar aesthetic to its replacement, and it was pretty similarly laid out to this here page, even with the same background, just with WAY less text, and no cool isopod. @@ -58,7 +41,7 @@ To be completely honest, I took rather a lot of inspiration for this revision fr This revision was, as the kids say, Real Cool™, but the aforementioned problems led me to scrap it after only about 2 months, which brings us here: -## v3 and Self-Hosting +# v3 and Self-Hosting I wanted something that could be viewed without Javascript and wasn't a colossal pain in the ass to update, hence what you see on the site now if you're reading this soon after it was posted. If I've since overhauled the site again, the version I'm referring to should be available [here](../../../old/3/). This version is designed to be as simple layout-wise as possible, to the point where you can read it in a text-only browser and not lose much of the experience. It's much easier to add stuff to now. My one issue with it is the navigation - unlike v2, where you could get to any page from any other in one click, v3 requires you to go back to the homepage to move between pages. It's just harder to navigate. This system is better than having to add a link to every new page on every existing page, though. Now that I can do server-side rendering, I'll probably put in a proper navbar or something of that nature at some point. diff --git a/blog/posts/discord/index.md b/blog/posts/discord/index.md index 8f1f43e..5b88a92 100644 --- a/blog/posts/discord/index.md +++ b/blog/posts/discord/index.md @@ -4,11 +4,11 @@ So Discord's been on their bullshit again (as if they were ever off of it). This I was originally going to center this article around the pros and cons of different alternatives to Discord, and I do still want to touch on that, but I think it's important to express my reasoning in detail here; it will be easier to avoid another situation like the one we have now with Discord if we know what's actually wrong with it on a more fundamental level than which administrative decisions of theirs are bad. How do we ensure wherever we go next won't pull the exact same crap? -## So why is Discord bad? +# So why is Discord bad? Let's be honest with ourselves up front: In many ways, Discord, as a service, fucking owns. It has a ton of fun features not found really anywhere else and the quality of its voice, video, and live streaming functions are tough to beat. However, these advantages come at the cost of Discord's most significant fundamental problem: It's a proprietary, centralized, VC-funded platform. It gets the funding it needs to be so awesome from investors who expect a return on their investments, and it is legally obligated to put creating that return above all other priorities. -### Enshittification - The Capitalism Problem +## Enshittification - The Capitalism Problem It's possible, even probable, that Discord started out with the simple, noble goal of being the best Chat for Gamers™, creating an alternative to the problems present with its predecessors Skype and Teamspeak, and whatever chat functionality your favourite games had. At this, it succeeded spectacularly, for a time. However, the entire model of the VC-funded startup is fundamentally unsustainable. @@ -31,7 +31,7 @@ Reddit did not need to do this. Reddit was doing fine. This was purely a cash-gr I'm not saying they will, but Discord could absolutely do the same thing, and it wouldn't surprise me if it came to that. Imagine if Discord bot developers needed to pay API fees like that. There'd certainly be a lot fewer Discord bots, and probably a lot more paywalled ones among the remainder. Discord absolutely needs to become profitable in order to be sustainable, and it will do whatever it needs to to that end or die. Even then, it can't just break even; capitalism demands endless growth. Discord will keep getting worse as long as there's money in it. It's inevitable. It's required. -### Centralization +## Centralization Discord is a centralized platform and always will be, no matter how strong the reality distortion field it puts up by allowing the creation of isolated social spaces and calling them "servers". Every Discord "server" runs on Discord's servers, and they have total control over each one at the end of the day. @@ -43,7 +43,7 @@ This ties pretty closely into the whole VC-funded thing - Discord, the platform, That's really the core of the issue here: being centralized means that Discord can easily suffer the same fate as Twitter. Some incompetent nutcase with more money than the entire planet's collective pool of sense could buy it out and destroy it, or the current owners could just make some boneheaded decision and do the same. A decentralized platform, running on a common open protocol, is much less vulnerable to the antics of the Elon Musks and u/spez's of the world. -### The Privacy Problem +## The Privacy Problem This issue isn't really inherently connected to the others - a lack of good privacy doesn't fundamentally doom a platform like the other two points - but I'm treating it as a third major issue because I feel it's extremely important and warrants consideration. @@ -69,17 +69,17 @@ Juicy stuff. You should really give that a read - you might not like what you fi Before we move on, I'll just drop this tasty little link to further reading. It's a real page-turner. -## Cool, so how do we fix it? +# Cool, so how do we fix it? We don't. Discord was doomed from the outset in any attempts to be sustainable or trustworthy. We are going to need to find an alternative to Discord eventually. So what should that alternative look like? I'll discuss specifics later - I'd like to start by establishing the general principles I feel a messaging system should conform to in order to avoid Discord's major problems. The TL;DR is it needs to not be any of the things I've described thus far about Discord, but I'll go into more detail about what that actually looks like. -### Follow the money +## Follow the money A sustainable chat system *absolutely cannot* be for-profit. If it is in any way driven by profit, the decay and eventual death of the service is inevitable. That doesn't mean it has to be entirely staffed by unpaid volunteers or anything, but it would need to be a non-profit foundation of some kind, just trying to break even with no incentive for infinite growth or any other corrupting financial influence. You'll notice this as a theme across most online services that don't already show signs of advanced corporate necrosis. I'm not even saying it can't have some kind of Nitro-esque paid tier. I don't hold it against, say, Protonmail - in fact, I pay for that one - but the money can't be the end goal. A sustainable non-profit model might be largely donation-based like Wikipedia, or maybe it could have a totally free product for individual users and break even selling support to enterprise customers like some Linux distributions. It's not currently breaking even yet according to its Wikipedia article, but I'll be interested to see if and how Signal reaches a sustainable state. Maybe future players could take notes from them. -### Cut out the middle man +## Cut out the middle man Better yet, structure your system such that it doesn't even need a corporation at the center - in other words, a decentralized system. I'm not talking about the blockchain; we can do this the old-fashioned way, with tech that isn't ponzi-scheme-by-design. In fact, we're already doing this, and it already has more monthly active users than any messenger app ever created: email. @@ -93,7 +93,9 @@ So when two people communicate via email, the sender sends the message to their And here's the obligatory visual aid - essentially, when you send an email, it takes the shortest path along a network that looks like this; every server is connected to every other, and every user is connected to one server: -![A graph showing three large nodes connected to each other, each with multiple smaller nodes branching off of them. Each large node is an email server, such as outlook.com or gmail.com, and each small node is an email account, such as jim@outlook.com or bob@gmail.com.](federation.png) +
+ A graph showing three large nodes connected to each other, each with multiple smaller nodes branching off of them. Each large node is an email server, such as outlook.com or gmail.com, and each small node is an email account, such as jim@outlook.com or bob@gmail.com. +
Hopefully that helped. Back to the point, all federated services work pretty much exactly like this. If you've ever had someone try to explain the Fediverse (sometimes incorrectly called Mastodon) to you by comparing it to email, this is what they meant. But this isn't limited to email and microblogging; this type of system can theoretically apply to anything. Again, building an MMO this way would be challenging, but federated messaging protocols similar in concept to Discord do exist. @@ -101,7 +103,7 @@ The benefit of this kind of system stems from the fact that it's not under the c The network is inherently much more stable and resilient in general than a centralized service, as there's nobody who would take the entire network down with them if the company went under or got sued or had a bomb dropped on their datacenter. Sure, a huge number of people would lose their email accounts if Gmail disappeared tomorrow, but critically, not the entire network. Email wouldn't go away, and those displaced users could go to Outlook or Protonmail or set up their own instance and keep communicating over the same network. The same applies to any other federated protocol. Imagine if your Discord account and guilds weren't controlled by Discord, but instead ran on a machine you controlled and was in no way answerable to Discord Inc, but you could still talk to your buddies on Discord proper. It's like that. -### Incognito mode +## Incognito mode Contrary to the title of the previous section, a federated approach does technically add more middlemen. We've gone from one unaccountable central authority able to read everyone's messages to several unaccountable parties each able to read the messages of everyone they serve. Not much of an improvement, privacy-wise, unless you trust both your provider and the providers of everyone you're talking to implicitly. Actual privacy requires end-to-end encryption. @@ -109,13 +111,15 @@ End-to-end encryption means the message is encrypted before leaving the sender's There are still problems here, for example end-to-end encrypted messaging still requires the server to know who you're talking to, but there are workarounds for these as well. However, E2EE should be the absolute bare minimum, in my opinion. -## So what are our options then? +# So what are our options then? + +

[Update 2026-02-14] Since writing this part, I've released an updated list of recommendations with a set of priorities that skews less "find an ideologically pure replacement" and more "find something that actually mostly works as a drop-in replacement for Discord and can be switched to Right Now". The following section has been left in for posterity.

Here's the part where I discuss actual alternatives to Discord. I'll say now that this will not be a comprehensive overview of every possible option - recommending chat apps that don't meet these standards would kinda defeat the point, and I'm also not omniscient. There are going to be other options that I haven't covered here, and hopefully I've given you the tools to determine which ones are good. Every program I list here will, at a minimum, support true end-to-end encryption in some capacity and not be run by a for-profit company. They're also all open-source. -### XMPP +## XMPP XMPP is about as close as we've got to "email but for instant messaging". It's a federated, open protocol which, having been formally standardized in 1999, is truly ancient in internet years. My understanding is that it actually used to be more widely used, but Google effectively killed it off in popular usage by subsuming its userbase into Google Talk and then promptly turning off federation and killing Google Talk. That doesn't mean it's gone, though. People still use XMPP to talk to each other, running on servers hosted by themselves or their friends. @@ -128,7 +132,7 @@ XMPP is, at its core, designed for simple text-based messaging and presence. Whi - While integration with WebRTC voice chat is supported, it's not universal, and some people prefer to use a separate voice chat system, such as Mumble, in conjunction with XMPP text chat. - You'll have to find a provider and choose a client program to connect with. Fortunately, there's plenty of options, and the official XMPP website lists some of each. -### Matrix +## Matrix Matrix is the other major federated instant messaging protocol. It was standardized in 2014 and is built around making end-to-end encryption easy. On top of that, it has more features. File sharing is included by default and support for nice-to-have features like emoji reactions (and maybe custom emojis??) and Discord-style replies is widespread. There's also a large suite of bridges to other services, including Discord. Like with XMPP, voice chat integration is possible, but not universal, and some prefer to use Mumble or similar. @@ -137,11 +141,11 @@ Matrix is the other major federated instant messaging protocol. It was standardi - Built around end-to-end encryption, though you can disable it, and you will need to for integrations like bots and bridges. - As with XMPP, you'll need to find a provider and a client program. The website lists quite a few clients, and you can find a list of servers here. -### Mumble and Jitsi +## Mumble and Jitsi Mumble and Jitsi are self-hostable voice chat and videoconferencing applications, respectively. They're not messaging systems, but I feel they bear mentioning here because they're both popular for use in conjunction with text chat systems, and since nothing else here currently supports screensharing. -### Revolt +## Revolt We've about run out of open protocols (which is probably a good thing), so now on to the centralized services, starting with Revolt. Revolt is basically trying to be open-source Discord. It's currently in alpha, but the user experience is very similar and it already has some of the fun stuff. @@ -155,7 +159,7 @@ From what I could find Revolt isn't currently controlled by any kind of legal en - No encryption, but E2EE for DMs is being worked on. - Has features like custom emojis, replies, public guilds and a friends list. -### Signal +## Signal I've now run out of Discord-likes - which is to say, programs that support the sort of multi-channel group chat thing Discord has going on. This and the next one function more in the vein of a Whatsapp clone, though I feel they still bear mentioning in the event that's all you need. @@ -168,7 +172,7 @@ Signal is kind of *the* private messaging app. It's fundamentally built around e - Requires a phone number, but only a phone number. - You can set a username, so you don't need to share your phone number. -### Session +## Session I lied, Session isn't centralized. But it's not decentralized in the same way as the federated protocols up there, either. Session runs over an anonymizing onion routing network, Tor-style, meaning not only can your messages not be read by the server, those servers also don't know both the sender and the destination at the same time. Essentially, it's designed to maximize privacy and anonymity at all costs. But wouldn't you know it, that comes at a cost in terms of features and user experience. @@ -180,17 +184,17 @@ Session does also use cryptocurrency. Setting a custom display name and running - No extra features. - Setting a display name requires a crypto transaction, but sending messages does not. -## Conclusion +# Conclusion That's about all I've got. I hope I've impressed upon you the importance of Discord's core problems, and introduced you to at least one alternative that works for you. I have my preferences, but I'm comfortable recommending all of these over Discord, otherwise I wouldn't have listed them. -[Update 2023-09-09] I no longer recommend Matrix over XMPP for reasons explained well here. I knew there was a little jank but I had no idea the rot ran this deep. Fortunately, nobody's listened to me yet so I can switch over to XMPP without much issue, which I intend to do. +**[Update 2023-09-09]** I no longer recommend Matrix over XMPP for reasons explained well here. I knew there was a little jank but I had no idea the rot ran this deep. Fortunately, nobody's listened to me yet so I can switch over to XMPP without much issue, which I intend to do. -[Update 2024-04-27] I have removed Telegram from the recommendations list outright due to just, straight up nazism, and in a post announcing cryptocurrency features no less. Jesus H. Christ. +**[Update 2024-04-27]** I have removed Telegram from the recommendations list outright due to just, straight up nazism, and in a post announcing cryptocurrency features no less. Jesus H. Christ. If there's one thing I want you to take away from this article, it's this: Don't fall for the marketing and don't let yourself be wooed by extraneous gimmicks. Be discerning about which fancy-sounding features you actually need. If you want to have a chance of escaping the vicious corporate cycle of enshittification, both with chat platforms and with everything else, make sure the ones you use have a strong foundation of sustainability and trustworthiness, beyond whatever marketing drivel is on the front page of their website. Hopefully I've given you at least some tools to determine for yourself which ones do. -## Further Reading +# Further Reading - Enshittification - A simplified breakdown of Discord's TOS (ToS;DR) diff --git a/blog/posts/discord2/discord-no-way-2.gif b/blog/posts/discord2/discord-no-way-2.gif new file mode 100644 index 0000000..4ee8d64 Binary files /dev/null and b/blog/posts/discord2/discord-no-way-2.gif differ diff --git a/blog/posts/discord2/discord.png b/blog/posts/discord2/discord.png new file mode 100644 index 0000000..36346c3 Binary files /dev/null and b/blog/posts/discord2/discord.png differ diff --git a/blog/posts/discord2/index.md b/blog/posts/discord2/index.md new file mode 100644 index 0000000..d2d53df --- /dev/null +++ b/blog/posts/discord2/index.md @@ -0,0 +1,206 @@ +So [apparently](https://archive.is/PvpAx) Discord will soon force all of its users to submit to invasive age verification in order to have full use of the platform, regardless of whether they're in an area where that's currently required. Also, they're finally [doing an IPO](https://archive.is/IiL2A). In other words, the need to dump Discord is more pressing than ever. + + + +Real isopod h`ead`s know I've [posted about this before](/blog/posts/discord/). Feel free to go and read that for my full case against Discord. This here article, to pull a ChatGPT-ism, isn't about the many fundamental reasons you should be leary of Discord and any platform like it, and it's also not about how fucking bitter I am that we're all even in this situation three years after I wrote my first dissertation on the subject — it's about what our other options are, right now at this moment. + +
+
+ i think the goal Right Now is to switch from Discord to Literally Anything Better and give time for people actually developing Proper Federated Replacements to build features polish their UX. +
+
+ — kopper +
+
+ +Like the article that is now part 1 in a series that is 2 parts 2 long, this post is here to get you off of Discord, but seeing as this goal has become more urgent much faster than the state of alternatives has improved, I'm gonna have to compromise on my ideals a bit this time. The fact is that nothing out there is as good as Discord at what Discord does, so trying to get away from it is going to be an exercise in trade-offs, but it's also not reasonable to expect everyone and their Fortnite group to switch to self-hosted XMPP and WebRTC. + +If you're serious about getting away from Discord, you'll need to assess which options work the best for each of your communities, and odds are you'll end up replacing it with more than one alternative. For my part, this post is going to focus mainly on alternatives that replicate Discord's functionality as closely as possible, and would be relatively straightforward drop-in replacements that you could move to right now with relatively (admittedly, that word's doing some heavy lifting here) minimal effort. Unfortunately, there aren't a lot of those, but I'll try my best. + +I'll admit to having some blind spots here. Namely, I'm aware Discord is available for the latest consoles, and I don't own any of those, so I'm really not qualified to recommend alternatives for that use case, if indeed any exist. + +# [Stoat](https://stoat.chat/) (formerly Revolt) + +I liked the name Revolt, but [apparently](https://stoat.chat/updates/long-live-stoat) they had to change it after getting a cease and desist over that name. Fair enough, I guess. + +Anyway, Stoat is one of the more polished and feature-complete Discord clones I'm aware of. That's not to say it actually *is* either at present — the rebrand seems to have come with a new, overhauled frontend that isn't entirely finished yet, and all video-related features are still in the works. + +However, Stoat is among the easiest of these to adapt to coming from Discord, and it has the benefits of being a) open source and b) not American, the latter of which is especially relevant lately. It's also the only one of the True discord-likes on the list to have any kind of official native mobile app — though it is very much In Beta and missing quite a lot of features — and it's the only one so far with discoverability for public ~~guilds~~ Servers, if that matters to you. + +# Steam Chat + +Valve has the chance to do the funniest thing right now. + +Steam has had its own built-in text and voice chat solution for a good long time, and it's been improving as of late. It does have some major downsides: there's no video chat, screen sharing is limited to your Steam games, and messages are ephemeral, disappearing after two weeks. Plus, it's missing most of the Fun Stuff like user-defined custom emotes that you've come to expect from Discord. + +Still, if you're looking for a chat solution to use while gaming with your buddies, Steam's built-in functionality is worth a look. In spite of its idiosyncracies, it's polished and mature, and it's even available on mobile, albeit through a separate app from the main Steam one. + +# [Zulip](https://zulip.com/) + +The best way I can describe Zulip is as a forum but with Discord vibes. It's a bit of a situational replacement, but if you're using Discord as a forum or a support channel for your open source project, Zulip is almost certainly better. I found out about it because the Polyproto people are using it for this (more on that in a bit). + +The main downside with Zulip is that it's got some limitations unless you pay for a subscription (although let's be real, so does Discord), but they will seemingly waive that for open-source projects and in some other cases, and you can self-host it to get rid of most of those limitations if that's up your alley. + +# [Fluxer](https://fluxer.app/) + +

Added on Feb 13

+ +I learned about this one a few days after initially publishing this article from a shitpost on Tumblr and felt it warranted a mention. Fluxer seems like a *suspiciously* complete Discord clone, complete with voice, video, a nearly identical UI, and a premium subscription that closely resembles Discord Nitro. + +According to their website, Fluxer is developed by a Swedish company, is open-source with explicit support for self-hosting the official backend, and has an extensive roadmap of planned features, some of which are completely unheard of over in Discord land. + +**[Further update, Feb 15]** I created an account to poke around on it, and it took about a day for my registration to be approved: + +
+ Message indicating that my Fluxer registration is pending manual review due to a substantial influx of new users, and that I will be notified once my account is approved. +
Fair enough, honestly. They probably weren't planning for Discord to have a scandal during their public beta.
+
+ +Now that I'm in, the first thing I've noticed is that the interface is *extremely* similar to Discord, more so than you're probably expecting. They got a lot of the smaller details pretty spot on. + +I'm pretty impressed with what I'm seeing beyond that, as well: There's a good amount of polish, and it's even got a lot of the familiar Fun Features like custom emojis and the gif picker that have probably become foundational to the way you communicate online. Voice, video and screenshare are quite distinctly up and running, though I can't speak to their reliability without a friend or six to test them with. Not every bug has been ironed out, but there is a *shockingly* complete product here. + +One of my favourite small touches is that not only is this the only one of these alternatives with a dedicated pronouns field, it also lets you change the contents of said field on a per-guild basis. As someone who makes extensive use of this feature on Discord, I'm very happy to see that. + +Fluxer is quickly becoming the favourite for me on a product quality basis — it's doing what Stoat is trying to do, but executing it faster and better, a feat that's especially impressive considering its public Github repo has exactly two contributors — though only time will tell if either service is trustworthy. Strong recommend so far. There's unfortunately no native mobile app, but both this and the next entry have PWAs. + +# [Osmium](https://osmium.chat/) + +

Added on Feb 15

+ +A third mostly-functional Discord clone has hit the clearly under-researched blog post. + +Osmium advertises itself as a "globally distributed community messaging and voice/video platform" with encryption "both in transit and at rest". What "distributed" means in this context beyond, like, the extremely standard practice of having servers in multiple countries isn't made clear, but the voice and video part seems to actually be fully up and running (looking at you, Stoat) and to their credit they do acknowledge that "encrypted both in transit and at rest" is different from end-to-end encrypted. + +The main thing that gives me pause about Osmium off the bat is that it's still pretty small; the official "community" (server, in Discord parlance — Fluxer actually uses this term too) that you get automatically placed in upon signing up is sitting at about 700 total members as of writing, so time will tell how it scales. It's also very much early access software right now — the UI/UX polish and feature completeness aren't quite up to the level of Fluxer or even Stoat, and the buttons in the UI don't always... do anything. + +Also also, Osmium is not currently open source. The main dev, an individual going by [Folf](https://folf.me/), claims that the "client will be open sourced once things are stable", but that's far from the same thing as Fluxer's "open source and you can self-host the backend". + +
+ Message from the aforementioned Folf responding to a question about if Osmium is open source: "not at the moment, client will be open sourced once things are stable" +
+ +That said, I'm getting the best vibes off of this project on, like, a social level. That default community seems pretty accepting of transgender types, and the dev has expressed eventual intent to add such goodies as explicit support for some sort of Pluralkit-type functionality: + +
+ Message from Folf responding to a request for "some kind of like pluralkit alternative built in" by saying "this is planned in the future" and then "one part of the bot API will be to allow bots to set a name/avatar per message" +
+ +Osmium probably isn't up to snuff for most yet, but I'm rooting for it. If you're just looking for a place for your group chat full of highly-online queers and can tolerate a bit of jank, this may just be for you. + +# Honorable Mentions + +That there is about everything I could dredge up that mostly fit the brief. I'll admit things aren't looking great here. That said, there are some projects that don't quite fit the above criteria that I feel are worth mentioning. + +## [Signal](https://signal.org/) + +Signal is the best encrypted messaging service, bar none, and it's not close. All of your communication is end-to-end encrypted using some of the most bulletproof cryptography around (though I'm far from qualified to speak on the specifics), and you should be using it for your Whatsapp-style messaging needs anyway, even in the likely event it can't replace Discord for you. + +As mentioned, Signal functions like a Whatsapp clone. It supports your bread-and-butter features like voice and video calls, and some fun stuff like Instagram-style stories and Telegram-style stickers. It requires a phone number to sign up, but you can set a custom username so you don't have to share it with anyone. + +## [Polyproto](https://polyproto.org/) + +The latest and maybe greatest federated messaging protocol. Made by a bunch of cool queers and seems very promising, but it doesn't seem to actually have any functioning clients as of yet. Still, something to keep an eye on for sure. + +## [Spacebar](https://spacebar.chat/) + +An attempt at an open source reimplementation of Discord. It's designed to be fully "Discord-compatible", which doesn't mean interoperable, but it does mean that any third party software made for Discord such as bots or alternate clients should be compatible with its APIs. + +This seems like an ideal fit for the role of "drop-in replacement for Discord" in theory, but from what I can tell, while functional, it's not really there yet. If you want to give it a shot, [Fermi](https://fermi.chat/) seems to be the preeminent compatible client at the moment. + +## [Mumble](https://www.mumble.info/) + +A very mature self-hostable voice chat server. That's about all it does, but if that's all you need out of Discord and you've got a massive nerd like me in your friend group who can set it up it might be worth looking into. + +## [Sharkord](https://sharkord.com/) + +

Added on Feb 15

+ +Another open-source, self-hostable Discord clone currently in alpha. It's in this section primarily because it doesn't currently have an official instance, so much like Mumble and Teamspeak (more on that later) you need someone to host this in order to use it. + +# Dishonorable Mentions + +And now for some options that suck and aren't really viable in my opinion, but that I feel warrant addressing. + +## Matrix + + + +Matrix was one of my top picks back in 2023, but it had some unignorable flaws then, and it hasn't really improved in the intervening time. I could opine on this for quite a bit, but suffice to say that the usability and reliability have stagnated while the project's governance has gotten substantially less trustworthy. [This](https://telegra.ph/why-not-matrix-08-07) and [that](https://paper.wf/alexia/matrix-is-cooked) article do a pretty comprehensive job of explaining it. + +**[Update, Feb 11]** Someone pointed out to me that one of those articles is a bit old now, so I went digging for some more recent ones and wouldn't you know it, I found a couple more from mid last year. [Here's](https://shkspr.mobi/blog/2025/07/im-never-going-back-to-matrix/) [those](https://マリウス.com/giving-up-on-element-and-matrixorg/). + +**[Update, Feb 15]** + +lol + +
+
+ Our efforts are prioritised on our target markets which currently does not include being a Discord replacement +
+
+ — Element maintainer in a Github comment +
+
+ +## XMPP + +I'd love to recommend XMPP, I truly would, but the UX just isn't there, plus it seems like all its most passionate supporters like it specifically because it doesn't have most of the qualities that make Discord appealing to the average gamer. + +IRC is even worse in this regard. It scarcely warrants mentioning. + +**[Update, Feb 15]** Apparently an XMPP client called Movim is working towards adding multi-channel group chat functionality in the vein of Discord. Seeing that their website claims support for video chats and screen sharing, I signed up and checked it out for completeness' sake, and I have Thoughts. + +Movim isn't a Discord. I think it's trying to be something entirely different. It's got news aggregation, microblogging, Instagram-style stories, and plenty of UX quirks that might be confusing if you're not already ingrained in the XMPP-cosystem. Given that the [PR](https://github.com/movim/movim/pull/1520) to add what they're calling "Spaces" was made literally today, it's very possible that it represents a knee-jerk reactive attempt to capitalize on Discord's fumble and grow their userbase. From what I've seen, I'm not optimistic that it'll work. + +## Teamspeak + +Yeah, Teamspeak is in fact still kicking. I guess you could use it if you want, but setting up your own server requires either self-hosting or paying someone to host it for you, and their licensing puts artificial limits on what you can do even if you host it yourself. Plus, well, they're a bit of a US military contractor, and proud of it, too, so it's not a great choice if you have principles. + +## Roblox Guilded + +LOL. LMAO. RIP BOZO + +## Slack/Mattermost/Teams + +

or your half-joking enterprise messaging software suggestion of choice

+ +Look, I'll use it if everyone goes there I *guess*, but I get the distinct impression that by and large these platforms would be *more* hostile to the outspoken presence of my ilk than Discord is trying to become. Also, the vibes are rancid, so I'd rather not. + +## [DCTS](https://github.com/hackthedev/dcts-shipping) + +

Added on Feb 15

+ +Apparently, this is an acronym for "Direct Communication Through Sockets", which strikes me as a bit of a misnomer since it's obviously not peer-to-peer. + +DCTS is *yet another* open-source, self-hostable Discord clone like Sharkord. This one has an official instance, but you'll need to self-host it if you intend to do anything with it beyond putzing around in the official server. Fortunately, that's all anyone reading this will likely want to do, after scrolling up too far in the #spicy-memes channel and seeing the type of shit the lead dev thinks is funny. + +Ignoring that, however, the UX is mediocre at best, the featureset is very basic, and the whole interface has a pervasive male-gaze anime girl aesthetic that appeals to a very specific demographic that I'm not in. All in all, if I was gonna spin one of these up myself, it'd be either Sharkord, Fluxer, or even Mumble long before I touched this pile of radioactive sludge again. + +# Conclusion + +I'd love to be able to give you some better news. I want so badly to be able to say that there's something obvious you can switch to that's just as good or better in the ways that matter \*cough cough TWITTER\* with encryption, and federation, and open source to boot, but as far as I'm aware this is kind of it. + +With this decidedly sub-optimal state of affairs in mind, my call to action is this: Look into these alternatives — test them out, as a group if you can, see if one or multiple can work for you and your friends. If you're of the especially nerdy sort, contribute code to Polyphony or maybe Spacebar, and maybe see if you can make XMPP or (I guess) Matrix work. And finally, for the love of Glob, cancel your fucking Nitro. *Don't financially reward Discord for this shit.* ***I promise you don't need it.*** + +
+ +
+ +--- + +Also, whatever you end up doing, [here](https://github.com/Tyrrrz/DiscordChatExporter)'s a utility that can export your Discord chat history to a locally stored file. Do with this what you will. \ No newline at end of file diff --git a/blog/posts/discord2/index.php b/blog/posts/discord2/index.php new file mode 100644 index 0000000..952e6d9 --- /dev/null +++ b/blog/posts/discord2/index.php @@ -0,0 +1 @@ + + Comic of a guy pausing a Youtube video and reminiscing tearfully about the old days where it would buffer all the way to the end. + I happened across a [tumblr post](https://nyxgoddessofcandles.tumblr.com/post/733566253212598272/theres-more-to-do-actually-now-go-to) detailing some settings to accomplish that in modern Firefox, and I wanted to document it here. @@ -8,7 +10,7 @@ I can't guarantee that this won't stop working at some point amidst the constant *Update:* After using my browser with these settings for a while, I've noticed that the first of them breaks online video in some cases, notably Twitch streams and the Jellyfin web client. I've reverted the changes in my browser for this reason. -## How to do it +# How to do it In `about:config`, change the following settings: - Set `media.mediasource.enabled` to `false` diff --git a/blog/posts/guide_how_to_automount_drives_on_boot_in_linux/index.md b/blog/posts/guide_how_to_automount_drives_on_boot_in_linux/index.md index 32ee726..08ac47c 100644 --- a/blog/posts/guide_how_to_automount_drives_on_boot_in_linux/index.md +++ b/blog/posts/guide_how_to_automount_drives_on_boot_in_linux/index.md @@ -1,4 +1,4 @@ -## Preamble +# Preamble Recently I had to reinstall Linux because of reasons, and I hit a bit of a snag. See, my computer has this setup with three drives where one is the boot drive, and the other has `/home` on it... it's not important, point is, I wanted some drives to be automatically mounted as specific directories at boot time. @@ -6,11 +6,11 @@ This is pretty easy to do with the manual partitioning tools most graphical inst the problem is that my system doesn't know my `/home` directory is on `/dev/sda3` and not `/dev/nvme0n1p1`. So I have to fix that now or just log in as root and mount my shit every time I turn the computer on for the rest of time. Guess which thing sounded like more of a pain in the ass. I googled it so you don't have to! -## Now on to the good stuff +# Now on to the good stuff I recommend you log out and do this as root in a TTY if you intend to mount something as your home directory. -## Getting partition information +# Getting partition information First, run: @@ -28,7 +28,7 @@ This will return a list of block devices (partitions) your system sees with some You'll probably have more than one though. There should be one per partition your system can see. We're interested in the `UUID` and `TYPE` attributes. Find the ones for the partition you want mounted and take note of them. We'll be adding these to your fstab file. -## Editing your fstab +# Editing your fstab First, make sure the directory you'll be mounting to exists. Create it if it doesn't. **Now make a backup of your fstab file in case you break things!** You can do this by simply copying the file: @@ -38,7 +38,9 @@ sudo cp /etc/fstab /etc/fstab.bak Now we can edit it. Open `/etc/fstab` in your favorite text editor, and you should be greeted with a file that looks something like this: -![Screenshot of /etc/fstab on my computer before I did this](fstab.png) +
+ Screenshot of /etc/fstab on my computer before I did this +
(This is the fstab file EndeavourOS generated on install. Because I set it to use btrfs, it mounted the same partition like four separate times as subvolumes. Yours will likely be smaller if you didn't do this.) @@ -67,7 +69,7 @@ If you did it right, you should now be able to reboot and see your partitions ha One more thing to keep in mind, if you see any lines with a mount point that's the same as the place you're trying to mount to (for example, the system has mounted a btrfs subvolume for /home and you want to put that on your secondary drive) you should probably comment out or delete that. -## The fast way +# The fast way Alternatively, you could just paste this into your terminal and then reboot: diff --git a/blog/posts/guide_pihole_lepotato/index.md b/blog/posts/guide_pihole_lepotato/index.md index e222568..96fbf77 100644 --- a/blog/posts/guide_pihole_lepotato/index.md +++ b/blog/posts/guide_pihole_lepotato/index.md @@ -4,7 +4,7 @@ I set up [Pi-hole](https://pi-hole.net/) on my home network recently. If you're Before you do anything, and especially before you *buy* anything, make sure your router lets you both assign static IP addresses in some way and set your own DNS servers. This functionality is necessary to use Pi-hole. I can't help you do this, unfortunately — every router is different and many ISP Specials™ are missing these settings. -## Hardware +# Hardware The Le Potato comes in two flavours: 1GB of RAM and 2GB of RAM. Either will suffice here, though I would go with the 2GB variant just because the 1GB version isn't really that much cheaper. Aside from the board itself, you'll also need a wired network connection1, a micro SD card, and an HDMI monitor and keyboard for initial setup, though you can use SSH to access it over the network after that. @@ -14,7 +14,7 @@ Like the Pi, the Le Potato lacks any built-in storage, so you'll need to supply Finally, I'd recommend getting a case. Fortunately, the Le Potato has the same dimensions and layout as, and as such is compatible with cases for, the Raspberry Pi 3 Model B. I 3D printed [this one](https://www.printables.com/model/67681-raspberry-pi-3b-case/files) in PETG, and a wide array of cases are available for cheap online if you can't do the same. I especially like the one that looks like a little NES. -## Booting an OS +# Booting an OS Since I'd heard the Le Potato was broadly compatible with the Pi, I initially tried booting a Raspbian image from the official Raspberry Pi flasher tool. Maybe predictably, this did not work. The next thing I tried, and what we'll be using, is Armbian, a lightweight port of Debian designed for tiny SBCs like this one that happens to have a page on its website specifically for the Le Potato. @@ -33,7 +33,7 @@ sudo apt update sudo apt upgrade ``` -## Setting Up Pi-hole +# Setting Up Pi-hole Installing Pi-hole is pretty simple. Just download and run the install script: @@ -46,7 +46,7 @@ The script will prompt you for some settings. Most of them are pretty straightfo The last step to get Pi-hole working on your network is to set its static IP as your router's primary DNS server. The Pi-hole devs recommend setting your Pi-hole device as the only DNS server for the network to guarantee it always gets every request, but I set a couple of fallbacks in case my Pi-hole server ever goes down and it seems to still work fine. -## Post-setup Configuration +# Post-setup Configuration Pi-hole has a lot of powerful functionality, but here I'd like to focus on fine-tuning your blocklist. The default one is pretty good, but [The Firebog](https://firebog.net/) has a lot of good ones if you'd like to broaden your coverage — I use one or two of the green ones from each category. diff --git a/blog/posts/make_your_own_cables/index.md b/blog/posts/make_your_own_cables/index.md index c981dbc..16f1bf2 100644 --- a/blog/posts/make_your_own_cables/index.md +++ b/blog/posts/make_your_own_cables/index.md @@ -1,6 +1,8 @@ My current main headphones are a model that doesn't come with a removable cable by default, that I purchased through a company that offers a service to add one aftermarket for you. They offered multiple different connector options, and I chose this one: -![4-pin mini XLR male and female jacks. The pins are arranged in a Y shape.](4pinminixlr.png) +
+ 4-pin mini XLR male and female jacks. The pins are arranged in a Y shape. +
This is one of two connector types that come up when you search for "4-pin mini XLR". I opted for this connector on the basis that it would allow me to potentially use the headphones with a balanced output in the future, because I had been researching headphones for probably several days and eventually you start to think that kind of thing is important. @@ -11,25 +13,23 @@ So universally is this the case that there is seemingly essentially no market fo Instead of shelling out Intel Core i3-13100F money for what functionally amounts to 3 meters of wire and a couple of audio jacks, I lopped the connectors off of the old, broken cable and soldered on some new wires and saved myself $140.
-
- A 3.5mm jack to 4-pin mini XLR adapter cable with a shiny black braided exterior -
This braided sheathing can be had for cheap on Amazon by searching "braided cable sleeve". I used the 6mm variant here, and it comfortably fits the three 24AWG wires.
-
+ A 3.5mm jack to 4-pin mini XLR adapter cable with a shiny black braided exterior +
This braided sheathing can be had for cheap on Amazon by searching "braided cable sleeve". I used the 6mm variant here, and it comfortably fits the three 24AWG wires.
This isn't the only time I've had to do this, either — I, through a bizarre series of events, happen to own a piece of musical equipment made in the 1960s, in the Netherlands, with weird output jacks to match: -![Male and female 2-pin DIN connectors](2pindin.jpg "By boffy_b - Own work, Copyrighted free use, https://commons.wikimedia.org/w/index.php?curid=1010205") +
+ Male and female 2-pin DIN connectors +
These are 2-pin DIN connectors, from the same family as the 5-pin DIN connectors you may be familiar with from their use in MIDI ports. My device uses a pair of these for stereo output. I can only assume this was standard at the time, in the Netherlands, but where and when I live this type of connector is all but unheard of, to the point that there are *no* cables with it available whatsoever, only the bare connectors. In order to get this thing connected to my other equipment, I had to fashion my own adapter cable out of a stereo-to-dual-mono TRS splitter cable and two of those connectors purchased standalone from the internet.
-
- A Stereo 1/4 inch TRS to dual mono 2-pin DIN adapter cable -
I wonder how far away from me the nearest other cable of this type is.
-
+ A Stereo 1/4 inch TRS to dual mono 2-pin DIN adapter cable +
I wonder how far away from me the nearest other cable of this type is.
I'm not going to attempt to teach you how to do this here — there's plenty of people on Youtube who are much more qualified to do that than me — but I think if you're at all comfortable messing with electronics this is a good skill to have. It's proven surprisingly useful to me, not just as a hobbyist who builds weird electronic gizmos for fun but as a casual enjoyer and maker of music. diff --git a/blog/posts/my_terrible_distro_hop/index.md b/blog/posts/my_terrible_distro_hop/index.md index 556da49..c8072c8 100644 --- a/blog/posts/my_terrible_distro_hop/index.md +++ b/blog/posts/my_terrible_distro_hop/index.md @@ -1,4 +1,4 @@ -## Prologue +# Prologue Of late, I've been having some mildly annoying, highly esoteric issues, of the sort any desktop OS tends to develop given enough time, with my daily-driver install of the Arch-based EndeavourOS with XFCE. The most annoying of these annoyances include the XFCE panel daemon having stopped running on login, which I dealt with by binding the command to start it to a keyboard shortcut, and the monitor layout defaulting to mirrored every time I locked the screen, which I dealt with much the same way. I say of late, but I've been dealing with this shit for months. These seemed like bugs somewhere deep in XFCE that I really didn't have the energy to try to fix, so my solution was to just go scorched-earth and start again with something new. @@ -6,11 +6,11 @@ The something new I landed on was a fresh install of Fedora. I chose Fedora part I had no idea what I was about to get myself into. -## The Installation Experience +# The Installation Experience The installation went very smoothly. I was actually pretty impressed. It was probably the fastest I've ever installed Linux - All it did was prompt me for a language, timezone, and the drive to install to and a few minutes later it was done. Fast and simple even by Linux installation standards. It was the next part that was painful. -## Setup (Or Rather, My Doomed Attempt Thereof) +# Setup (Or Rather, My Doomed Attempt Thereof) I should say here that this isn't a review of Fedora as much as it is just me venting. It seems like it would be great for the kind of user it's designed for, but as it turns out that is *not* me. Honestly, a lot of this stuff may or may not have been my fault. Anyway, on to the pain. @@ -26,7 +26,7 @@ To be clear, this probably would have been fine if flatpaks were already my go-t On a related note, a lot of the software in the repositories that were available to me was *severely* outdated. PrusaSlicer, for example, was only available in version 2.4.2, which was released in April of 2022. As of writing in February of 2024, the latest version is 2.7.1. It was upon going to Prusa's website to download the AppImage of the latest version like some kind of fucking caveman and discovering that AppImageLauncher2 wasn't in *any* of the repos that I got fed up, decided I wasn't gonna risk dealing with this type of shit for every program I wanted to install and noped out. -## Where To Next +# Where To Next So Fedora was a bust, so where do I go from here? I considered moving to an Ubuntu-based distribution like Pop!_OS or Mint that might give me what I wanted from Fedora, and I briefly considered going back to Manjaro for reasons I have honestly forgotten, but I had been at this for hours now and I really just wanted my computer in a usable state again with the minimum possible amount of adaptation, so I came crawling back to EndeavourOS, and went to take a nap while it installed to hopefully come back to this ordeal with a cooler head. @@ -38,7 +38,7 @@ Beyond that, I've been acclimating to the fresh install pretty much fine. All my I do have one very difficult issue, though. -## What Is The Fucking Deal With ProtonVPN On Linux +# What Is The Fucking Deal With ProtonVPN On Linux I use ProtonVPN, and one of the things I attempted to do on Fedora was set it back up. I don't know what I did originally to dodge this, but trying to set it up recently, both on Fedora and on Arch, has been an excercise in navigating an insane maze of complete and utter bullshit. @@ -103,7 +103,7 @@ Two, what's going on with ProtonVPN clients on Linux? It looks like the Electron Also, three, why wasn't network-manager-applet already installed? This thing seems like a pretty important system package, especially given the rest of network-manager was already present and seems to be the thing allowing me to connect to the internet right now. Well, such is Arch I suppose. The type of Linux user who runs this thing seems to tend towards having a pathological obsession with bloat and the relevant de-'s3. -## Oh Sweet It's Fine Actually +# Oh Sweet It's Fine Actually That concludes my blog post, and the blog-post-within-a-blog-post that appears to have metastasized up there. I think you should know I finished troubleshooting both ProtonVPN *and* OBS while writing the post chronicling my suffering. Thank you for indulging my bitching and moaning about totally avoidable software problems. Who knows, maybe this will help you. For your sake, I hope it doesn't. diff --git a/blog/posts/renting_an_unremarkable_server/index.md b/blog/posts/renting_an_unremarkable_server/index.md index 117de85..e2be7a9 100644 --- a/blog/posts/renting_an_unremarkable_server/index.md +++ b/blog/posts/renting_an_unremarkable_server/index.md @@ -15,7 +15,7 @@ In researching alternative VPS options, I landed on OVH because they were the mo See what I mean? Of course, none of these seem like all that from the perspective of a modern personal computer, but this represents a *quadrupling* of CPU cores and RAM and a *sextupling* of storage space for a near halving of the price compared to my already adequate previous solution. That's like eight times the value! Though, looking at this table, you can already see a couple of the reasons it's priced so competitively, even accounting for the DigitalOcean tax. Let's break this down. -## The Ebay Optiplex gaming PC of rented servers +# The Ebay Optiplex gaming PC of rented servers So I've moved from a VPS to a dedicated server. The fundamental difference between them is that a VPS is a virtual machine that your hosting provider spins up for you, while a dedicated, or bare-metal, server is just a whole computer that you rent sole administrative privileges over. @@ -27,7 +27,7 @@ If you're the sort of person who memorizes server part numbers, you may have alr Financials aside, it should go without saying that this new-to-me server is *way* overkill for the handful of websites and single-user self-hostable network services I'll be running on it. The old VPS had plenty of computing power for that. The main draw for me was the extra storage space — I might have gone even cheaper, except all the cheaper options were restricted to network speeds that I actually felt uncomfortable limiting myself to. -## Migrating to the thang ding +# Migrating to the thang ding Of course, then there's the matter of actually migrating everything over. It went about as smoothly as you could reasonably expect. DigitalOcean, turns out, loves their vendor lock-in and won't let you download an image of your VPS directly, so it was a lot of making .tar.gz archives on the old server, downloading them over sftp, and then uploading them to the new server. diff --git a/blog/posts/sf5_estrogen_moth/index.md b/blog/posts/sf5_estrogen_moth/index.md new file mode 100644 index 0000000..c4ab821 --- /dev/null +++ b/blog/posts/sf5_estrogen_moth/index.md @@ -0,0 +1,70 @@ +I'm currently knee-deep in a playthrough of Skyfactory 5, which for the bafflingly uninformed reader is a skyblock tech modpack for Minecraft. Among many others, it includes the Create mod, and it will come as no surprise to those familiar with my proclivities that my first impulse upon finding this out was to mod my modpack to include the [Create: Estrogen](https://modrinth.com/mod/estrogen) addon. + +This went surprisingly smoothly, except for one thing. See, the Estrogen addon adds a few things that have nothing whatsoever to do with the eponymous fluid processing line and consumable items, including one mob: a rosy maple moth. + +
+ The Rosy Maple Moth mob in question. It's clear that it was modeled on the vanilla bee. +
+ +This presents a problem because of Skyfactory 5's absurdly custom progression system. Instead of mob spawning working normally, trees drop loot bags, which give "gateway pearls" that summon little challenge events where you fight a specific mob and get a trophy as a reward that can be used to toggle spawning of that mob in your world, which then ignores almost all of the mob's typical spawning conditions and just plonks it down anywhere. Transphobically, this system was not designed with my aftermarket mod in mind, so if I wanted the moths in my world in a way that could reasonably be called legitimate I was gonna have to do some tinkering. + +I'd be content to just not bother except that I want one of the items that you can only get via moth, a pair of thigh high socks that provide extremely high resistance to fall damage and are made from Moth Fuzz, which of course you can only get from the moths. I could, of course, just spawn a couple moths in with commands and farm the necessary fuzz from them, but that's the coward's way out. + +Luckily for me, a lot of the custom stuff in Skyfactory 5 is done using datapacks applied globally to every world, which means it can be augmented by just futzing with some json files in the game install folder. So far, I've managed to create a custom Gateway Pearl, add it to the loot table for Pink Loot Bags, and add the reward trophy. However, the pearl's name is bugged, the moths don't attack you during the event like they're supposed to, and the trophy doesn't toggle spawns. Also, it's just the standard gateway pearl — I didn't bother integrating this with any of the more advanced challenge gateway stuff because I don't care. + +However however, this is enough to get moths in my world because the gateway event spawns a couple of the respective mob when you win, so I'm content to stop here for now. I'll update this post if I make any more progress towards integrating this properly. If you've got any information to that end, I'd appreciate hearing about it. This blog has a comment box and my various contact info is listed on the About Me page. + +Also, I did this on version 5.0.8 of the modpack. Just something to keep in mind. + +# How to do it + +The upside of my woefully incomplete solution is that it's relatively simple to set up. All you gotta do is add two .json files and modify a third. + +## Trophy + +To create the trophy, create `moth.json` in `/global_packs/required_data/skyfactory_5/data/obtrophies/trophies` with the following content: + +

moth.json

+ +``` +{ + "entity": "estrogen:moth", + "scale": 1.5 +} +``` + +This is technically an optional step because the trophy doesn't do anything, but the JSON for the gateway pearl expects it to be there. Also, the scale entry doesn't need to be there — all it does is make the model on the trophy bigger. It's purely cosmetic, but I like it. + +## Gateway Pearl + +To add the gateway pearl and event, place this file inside `/global_packs/required_data/skyfactory_5/data/gateways/gateways/normal`: + +[moth.json](moth.json) + +This is just the json file for the teacup pig gateway, except I've swapped every mention thereof out for the moths. Which mob the base file is isn't super important, but this one is convenient because it's already pink and already has the configuration required to spawn the mob for you after you win the challenge. Hostile mob gateways don't do this, for obvious reasons. + +## Loot Tables + +Finally, add the pearl to one of the loot tables defined in `/global_packs/required_data/skyfactory_5/data/treasurebags/loot_tables/bags` by adding this entry to the relevant json file: + +

pink.json

+ +``` +...}, +{ + "type": "item", + "name": "gateways:gate_pearl", + "weight": 100, + "functions": [ + { + "function": "set_nbt", + "tag": "{gateway:\"gateways:normal/moth\"}" + } + ] +} +... +``` + +For your convenience, I've also uploaded my version of `pink.json` with this entry added. Just overwrite the existing version (again, inside `/global_packs/required_data/skyfactory_5/data/treasurebags/loot_tables/bags`) with it and it should work. + +[pink.json](pink.json) \ No newline at end of file diff --git a/blog/posts/sf5_estrogen_moth/index.php b/blog/posts/sf5_estrogen_moth/index.php new file mode 100644 index 0000000..952e6d9 --- /dev/null +++ b/blog/posts/sf5_estrogen_moth/index.php @@ -0,0 +1 @@ + -
- The Toshiba Chromebook 2, an unassuming 13-inch laptop made of light grey plastic. As one might expect, it is running Chrome OS. -
Image courtesy of PCMag, from their review of this machine.
-
+ The Toshiba Chromebook 2, an unassuming 13-inch laptop made of light grey plastic. As one might expect, it is running Chrome OS. +
Image courtesy of PCMag, from their review of this machine.
This is the Toshiba Chromebook 2. The high-trim model that I had sports a 13-inch 1080p screen, Skullcandy-branded speakers, a whopping 4GB of RAM, the world's most sopping wet and pathetic dual-core Intel Celeron CPU, and 16GB of EMMC storage. It also comes with 100GB of free Google Drive storage for two full years, which sounds like some nasty ploy to sell you a subscription, but with how long you'll be using the thing for may as well be a second internal SSD. diff --git a/blog/posts/unity_runtime_fee_and_proprietary_software/index.md b/blog/posts/unity_runtime_fee_and_proprietary_software/index.md index 633b1a5..84b3b1a 100644 --- a/blog/posts/unity_runtime_fee_and_proprietary_software/index.md +++ b/blog/posts/unity_runtime_fee_and_proprietary_software/index.md @@ -14,9 +14,11 @@ For example, Among Us has over 500 million downloads on the Google Play Store al That's an extreme example, but I think it gets the point across. If you don't believe me, take it from developers on Twitter (via [u/Sparky2199](https://archive.ph/IQPjW)): -[![Compilation of various twitter posts from indie game studios using Unity complaining about the change.](devprotest.png)](devprotest.png) +
+ Compilation of various twitter posts from indie game studios using Unity complaining about the change. +
-## The obligatory free software soapbox moment +# The obligatory free software soapbox moment As angry as I am about this, I do feel kind of vindicated, because here's the thing: something like this was always going to happen. Not because Unity in particular is a *bad* company (although it is), but because it's a *for-profit* company, and especially because it's one with shareholders to please. @@ -30,7 +32,7 @@ This problem isn't unique to Unity, or to game engines. We've been watching this It's my opinion that all proprietary software will die this way in the end. The structure is fundamentally unsustainable. You can't have infinite growth. At some point all the proprietary software and services that are commomplace nowadays with their ad-supported business models and predatory pricing schemes and suspiciously high marketing budgets will wither and die, having made themselves intolerable to even their most loyal customers, and most of the survivors will be open-source projects. Not as sleek or sexy or well-advertised, as they'll have had less incentive to appeal to new users, but fundamentally sustainable, having had *no* incentive to appeal to shareholders. -## An attempt at optimism +# An attempt at optimism In this particular case, I don't think this is gonna stick. Unity's runtime fee is absurd, and I think they know it just as well as all their moderately high-profile customers on Twitter do. Unity has already started to walk back some of the more extreme parts of the initial plan, as you can see on archived versions of the posts: [Blog post (Sep 12)](https://archive.ph/gEckm), [Blog post (Sep 14)](https://archive.ph/gBpXw), [Forum thread (Sep 12)](https://archive.ph/HYTq5), [Forum thread (Sep 14)](https://archive.ph/eByMm). Unity also has some customers that are bigger than them and notoriously litigation-happy, namely Nintendo (with Pokemon BD/SP and Go, plus a couple Mario mobile games) and Disney (also with quite a few mobile and console games). Unity's CEO also sold a bunch of stock in the company in the lead-up to this announcement, which, since the company's stock price dropped *significantly* after the announcement, might actually constitute fraud. You know, from federal crimes! Basically, this initial announcement was probably an attempt to see how much they could get away with, and Unity's probably fucked if they stick to their guns on this. @@ -38,7 +40,7 @@ On the technical side, if you're a budding game developer, Unity isn't your only Finally, if you've been eyeing a game that uses the Unity engine, you've got until the end of the year to install it without incurring that fee for the developer assuming this change goes through. So I'd check for that. By my understanding you'll have to run it at least once before then, too. -## Update as of 2023-09-23 +# Update as of 2023-09-23 Good(?) news! Unity's responded to community feedback and it's actually... better than I expected. You can read the full post [here](https://archive.ph/rLi8u), but I'll summarize the changes: -- cgit v1.2.3