This week I finally got an opportunity to sit down and play around with the tsnet library from Tailscale. I used it to build a demo application called TSHelp . This is a short write up of what I built and learned. What is tsnet? Lets start with the description from
We use pretty much the default Phoenix.Logger setup for the most part, with a custom JSON formatter. Recently while investigating some prod issues I realised that my default first action when opening the logs in grafana is to filter out the healthcheck endpoint logs. Each one gets a request
This is my default way to brew coffee at home, it's very simple, hard to mess up, and consistently great. Many are inspired either from James Hoffmann, or modified versions.
Earlier this week we were talking about ways to receive one-off dumps of data from customers. For various reasons the customer couldn't use email, and we didn't like the idea of asking them to upload the data into something like a shared google drive folder as
Okay, this post is potentially very niche, but the issue was happening consitently for me so I thought I'd drop the fix down here for anyone else running into it. Before we get going, this is probably only relevant for you if you're running something like
⚠️ TLDR; toot.sh is coming to a close. On the 16th March 2025, all accounts on toot.sh will be frozen. Data deletion will then begin on 16th April 2025. For the past couple of years I've been running my own mastodon instance, toot.sh . The
Interlaken was stunning, but not without its tourist traps. Jungfraujoch was incredible, Harder Kulm wasn’t worth it, and hiking the Lauberhorn Trail was a highlight. Swiss transport was flawless, but the prices weren’t. Would we go back? Absolutely—once we’ve saved up again!
Slow PostgreSQL queries on JSONB columns? Even with a GIN index, performance can degrade as datasets grow. Increasing the statistics target from 100 to 1000 improved query speed significantly. Learn how SET STATISTICS and ANALYZE can help optimize query planning for high-variance JSONB data.
Just a small article this time around, so I'll get to the point! In my global .gitignore file I keep a line for .elliot . This lets me have a directory in every code project called .elliot which is always ignored by git. This provides me with a space
Learn how to securely self-host services using Tailscale Serve without exposing them to the public internet. This guide covers setups for Uptime Kuma and Windmill, with step-by-step examples and tips for Docker users to simplify infrastructure and improve privacy.
I'm a real novice when it comes to hardware but I try to learn what I can. A few months ago I was reading about drive health monitoring and it wasn't something I'd really dealt with before. Given most of my experience is with