😴🎹 Rest / Music

I’ve been off work since the 15th. It’s the first time that my holiday vacation a) starts a week earlier than for most people, and b) is booked way in advance (back in January!). I remember really having to convince myself to do it, but I’m glad I did. I liked this line from an article I read recently on “rest”:

rest is when you’re not associating your self-worth with what you have to do next.

The Riddle of Rest

It resonates with me, because to rest I really need to have few/no plans or expectations, which is not possible for things that are tied to my self-worth! I’ve spent the last week just getting to the point where I feel like I’m starting to relax. When I’m less stressed I can tap into my innate curiosity and my artistic side. That side is tiny and very much underdeveloped, but when I’m rested developing it feels fun and fulfilling, and not like an insurmountable challenge.

I’ve enjoyed diving more into music lately, specifically theory and production. I played piano as a kid, but a) I didn’t learn very much theory, and b) it was a chore that I was made to do rather than something I sought for myself. Music in general was either work or a luxury, which messed up my relationship with it. I’m slowly rediscovering how to engage with it in a healthy, playful, supportive way. After attempting to learn guitar a few times since my parents gifted me one on my 18th birthday, the last attempt—at the start of the pandemic and aided by Yousician—seems to have stuck. I still have structure, but I don’t have to perform for anyone but myself, which is incredibly liberating.

I picked up an Arturia Minilab 3 last week. It’s small enough to keep on my desk, so I’m hoping that even if my motivation waxes and wanes, at least the ability and prompt are easy and frequent enough to keep me learning and experimenting. I watched Taetro’s music theory for producers Youtube course, which was I enjoyed as it was simple enough that I could follow without getting overwhelmed. Also signed up for a more in-depth course on Udemy. We’ll see how that goes.

Arturia Minilab 3 (black)

Misc

  • Got my first tooth onlay put in. The temp one broke apart about a week before the procedure, but apart from hot/cold sensitivity going a week with essentially half a tooth was tolerable.
  • Still playing God of War.
  • Pushed a few updates to my Mastodon on Oracle Cloud repo to support upstream patches (such as to increase feed length) and bump the sidekiq threads (needed if connecting to relays, which I did this week).
  • Watched pretty much all Orba-related videos by Artiphon. They’re entertaining even if you don’t care about the hardware.
  • Went down a rabbit-hole learning about synthesis via this playlist.
  • Watched Avatar: Way of Water in AVX (first movie since 2019). Visually stunning, but spiritually vacuous. Recycled tropes and stereotypes, forced acting, predictable plot.
    • A fire alarm went off about 2 hours into the ~3 hour movie, so I didn’t get to see how it ends, and to be honest I wasn’t even upset. I got enough of the eye-candy and I couldn’t see myself caring about any of the characters if I hadn’t already by that point.
  • Watched Glass Onion (lovely!) and Triangle of Sadness (entertaining, but kinda pointless)

hollowed-out tree trunk curled inside

Short-form notes are all I can manage right now:

  • Mastodon
  • Work is stressful right now and I’m part-time just managing burnout symptoms. Looking forward to my upcoming vacation starting Dec 16th.
  • I’m a bit sad that the surf-skating and biking season is over. However, excited for winter running. Need to get new traction spikes for my running shoes as last season’s rusted.
  • Still on a Tegan And Sara binge. I’ve had Hell stuck in my head all day today.
  • Discovered the ADHD Nerds podcast. It’s helping normalize some of my behaviours and feelings.
  • Went for a hike in Ardaugh Bluffs with C yesterday. Muddy after the recent snow-melt, but great to get away from home for a while.
  • No video games in the past few weeks, but C and I are still enjoying Andor (working through it slowly), and I just started watching Meltdown.

screenshot of my mastodon instance

TL;DR Follow the instructions on https://github.com/faevourite/mastodon-oracle-cloud-free-tier.

When you join Mastodon you lend trust to whoever runs your server, including trust that they moderate the content, keep the service well-maintained, and back up its data. This is easy if you know the people running it! If no one in your friends/family group is running a server already, and you don’t mind the administrative responsibility that services like Masto.host save you, you can host your own without breaking the bank by leveraging Oracle Cloud’s generous free tier.

I did this recently to set up my personal instance! In addition to the reasons above, I wanted to own my data, have a @glyphy.com handle, and be able to make small tweaks to Mastodon itself (like adding custom server emoji). The last two reasons are admittedly all in service of my vanity. Mastodon can verify my identity via links in my profile, and I have writer’s block when it comes to the custom emoji (typist’s block?). But personalization is the soul of IndieWeb and I’m here for it.

While I could just create a free account on Oracle Cloud, spin up a 4-core 24GB ARM-based compute instance (free tier limit) using the console admin UI, and follow the official Mastodon installation instructions, I wanted something more maintainable and automated. If (when?) I mess up my instance beyond repair I’d like to be able to recover quickly.

Here’s what I ended up using to accomplish this:

  • Docker for running everything
    • Core components: Mastodon apps, Postgres DB, and Redis cache
    • Caddy, to serve everything over TLS, with a certificate provisioned using its Cloudflare integration
    • Backups via Kopia
    • Healthchecks.io and Newrelic for monitoring (free tiers)
  • Ansible to install and configure all of the above
  • Terraform to provision the underlying cloud infrastructure
  • Cloudflare (free tier again) to manage DNS and provide some bot protection
  • Sendgrid (you guessed it, free tier) for Mastodon emails, such as password recovery
  • Pushover for cron job failure notifications
    • This is the only thing that’s paid here (optional, though). $5 lifetime per device. It’s more than paid for itself over the years.

I put all the scripts and manifests together into this GitHub repository, along with instructions on how to get it all running.


Below are just some notes about the different choices, mostly so I myself remember them when they invariably turn out to be wrong.

Docker

I don’t want to deal with random OS portability issues or package conflicts. Docker also has a nice side effect of requiring me to think about where things will be stored. An inventory mandate.

One thing I’m worried about is the difficulty of future updates that require some manual steps in a specific order. Docker-compose’s “bring everything up together” behaviour spells danger here. I don’t mind a little bit of downtime on this personal instance, but it may be a bigger deal otherwise.

Caddy

Serves as few purposes:

  1. Multiplexes the “web” and “streaming” containers over the same domain
  2. Enables compression
  3. Sets aggressive caching headers
  4. With its Cloudflare DNS module it can provision a TLS cert, which means that Cloudflare->Mastodon traffic is also over HTTPS, and I can just block port 80 entirely

Kopia

As far as backup software goes, it’s relatively young, but I like it. I recently switched to it for some personal backups. It’s like a fancier restic. I point it at Google Drive via rclone (baked into Kopia’s Docker image). If/when I run of storage there I may move to Backblaze B2.

Healthchecks

This is a recent discovery. It’s like a dead-man’s switch for cron jobs, and has its own copious free tier. I have it integrated with Pushover and email, but it supports many other notification systems.

Ansible/Terraform

I first tried using Ansible to provision the infrastructure, but (slowly) realized why Terraform is preferred for this sort of work. The latter keeps track of state. With Ansible, I think I would’ve had to save the IDs of every piece of infra somewhere, and then read it back on startup, to avoid having it try to re-create what already exists.

Cloudflare

I turned on its proxying for my Mastodon domain. I was worried at first since they seem to mess with traffic initiated by systems, but so far I haven’t noticed any problems.

I don’t feel great about using a service that supports right-wing extremists. I’d like to move away to one that’s less harmful. For now, I just promise myself not to give them any of my money. I don’t mind turning off their bot protection, and Caddy is able to automatically refresh a TLS cert, so they’re really only managing DNS for me right now.

Sendgrid

Their customer service is atrocious and the product is stale. But I already had an account, so that’s what I went with. I turn off all email notifications from Mastodon itself except for password resets.


Overall, I’m very happy with how this all turned out. Maybe one day OCI will clamp down on its free tier or my account will get more popular (unlikely) and I’ll be forced to pay up for more infra, which is ok with me. I also like the idea of being the only one to blame when something goes wrong with my own instance.

Calm lake at sunset

I, and seemingly half the internet, have set up a Mastodon account this past week as Twitter’s future is looking increasingly grim. I’ve been vaguely aware of the Fediverse, but never bothered to learn much about it until this mass Twitter exodus presented the opportunity. My account has been active on the bird site since 2007, albeit mostly in lurker mode. If it disappears tomorrow I won’t lose much. Starting up on Mastodon is an opportunity to reset. This may change as the network grows, but for now it feels safer to share more of myself on there. There’s no algorithm to display what I post to anyone who wasn’t looking for it. It’s a much calmer experience.

Some resources I’ve found helpful as I’m learning both the technical and the cultural aspects of it:

I’m still sorting out how to:

  • Follow threads. It doesn’t seem to be a native function, and I don’t want to reply just to get notified.
  • Mute threads. I haven’t participated in any active discussions yet, so it hasn’t been much of a problem.
  • Use the keyboard shortcuts without having to first click on a post. They don’t seem to work at all in Firefox on the standard view, but fare better in the advanced one. Even then, the default focus is on the post text field and no matter how much I tab I can’t seem to get the shortcuts to “kick in” unless I click on something first.

Overall I like it! I’m currently @[email protected] , but plan to migrate to my domain soon. Using it as an opportunity to refresh my rusty terraform/ansible skills.