TIL: `pg` vs `pg2` Erlang modules

I started reading up on Erlang's pg module(pg = "process groups", it's not related to Postgres!) recently and kept seeing references to pg2. This is quite confusing because pg is the newer module that replaces pg2. From pg.erl's initial commit message:…

TIL: Looking up a VM's private IP in Hetzner

I recently had to look up my Hetzner VM's IP in a private network I'd set up from inside a Docker container. My initial set up was a bit clunky passing the host IP addresses during deployment but there's an easy way to look…

Elixir clustering on a Kamal+Hetzner deployment

I've been experimenting with Kamal for deploying an Elixir application. The application was previously deployed on Fly.io and relies on the Erlang VM's clustering capabilities, so I had to get this working on the Hetzner deployment I'd spun up using Kamal. It took…

TIL: Configuring multiple FLAME backends

In OctoCut, I have to perform a few tasks that are CPU or memory intensive. Instead of performing them on the machine serving web requests, I want to perform them on a different machine. FLAME is perfect for this. (If you're not familiar with FLAME, I highly recommend…

TIL: LiveView toast after async work

In a Phoenix Liveview app, I recently had to do some work in an assign_async(export a video). In terms of UI, I wanted to: * show a toast(or flash message) at the beginning indicating the work has started. * show toast once the work is completed, or if it…