Today I Learned

Short TIL posts

1852 posts latest post 2026-05-13
Publishing rhythm
Apr 2026 | 23 posts
Today i got hit by this accessibility issue on my site. Low contrast links are not distiniquishable. I had not seen this error title before it was new to me, maybe I have bad memory or maybe it’s new to me. [1] I ended up dropping the background color of the site down a notch as I didn’t really care for the semi-dark brown anyways. I’m liking the near black bg-zinc-950 much better now. [2] Now I got that 100 A11y score in lighthouse. [3] References: [1]: https://dropper.waylonwalker.com/api/file/24b4e31f-60db-47b8-b67c-07c4d4b6fb71.webp [2]: https://dropper.waylonwalker.com/api/file/8b4f2087-3f24-4212-ad00-74f294aff114.webp [3]: https://dropper.waylonwalker.com/api/file/17497676-3730-4875-9e10-c6d121ba537a.webp
Dropper Dropper is a simple file sharing service. Dropper · dropper.waylonwalker.com [1] Dropper is a place for me to drop files for quick posts like this. [2] Note This post is a thought [3]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://dropper.waylonwalker.com/ [2]: https://dropper.waylonwalker.com/api/file/c3a4c39d-c9ab-4e0a-b4c1-b74362877342.webp [3]: /thoughts/
Add a healthcheck to your FastAPI app | Nic Payne I'm building a few FastAPI apps to throw in docker and run on my homelab... I wanted to add healthchecks and here's a simple way to do it Make sure to pype.dev [1] Nice example of adding a healthcheck to fastapi [2], and integrating it with docker. Don’t forget to include curl in the install, nice touch. Note This post is a thought [3]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://pype.dev/add-a-healthcheck-to-your-fastapi-app [2]: /fastapi/ [3]: /thoughts/
GitHub - casey/just: 🤖 Just a command runner 🤖 Just a command runner. Contribute to casey/just development by creating an account on GitHub. GitHub · github.com [1] new versions of just now come with color variables already set. [group('manage')] version: #!/usr/bin/env bash version=$(cat version) echo current version {{BOLD}}{{GREEN}}$version{{NORMAL}} Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/casey/just?tab=readme-ov-file#constants [2]: /thoughts/
pipely/justfile at main · thechangelog/pipely I like the idea of having like this 20-line Varnish config that we deploy around the world, and it’s like: Look at our CDN! - thechangelog/pipely GitHub · github.com [1] I found this nugget in thechangelogs justfile, it lets you add color to your justfile with variables quite easily. # https://linux.101hacks.com/ps1-examples/prompt-color-using-tput/ _BOLD := "$(tput bold)" _RESET := "$(tput sgr0)" _BLACK := "$(tput bold)$(tput setaf 0)" _RED := "$(tput bold)$(tput setaf 1)" _GREEN := "$(tput bold)$(tput setaf 2)" _YELLOW := "$(tput bold)$(tput setaf 3)" _BLUE := "$(tput bold)$(tput setaf 4)" _MAGENTA := "$(tput bold)$(tput setaf 5)" _CYAN := "$(tput bold)$(tput setaf 6)" _WHITE := "$(tput bold)$(tput setaf 7)" _BLACKB := "$(tput bold)$(tput setab 0)" _REDB := "$(tput setab 1)$(tput setaf 0)" _GREENB := "$(tput setab 2)$(tput setaf 0)" _YELLOWB := "$(tput setab 3)$(tput setaf 0)" _BLUEB := "$(tput setab 4)$(tput setaf 0)" _MAGENTAB := "$(tput setab 5)$(tput setaf 0)" _CYANB := "$(tput setab 6)$(tput setaf 0)" _WHITEB := "$(tput setab 7)$(tput setaf 0)" Usage echo: echo {{_BOLD}}{{_GREEN}}hello there{{_RESET}} Note This post i...
Hurl - Run and Test HTTP Requests Hurl, run and test HTTP requests with plain text and curl. Hurl can run fast automated integration tests. hurl.dev [1] Hurl was mentioned by @gerhard [2] on the latest changelog and Friends [3]. Looks like a feature rich easy to use testing tool that is tested via what looks like a config file. Hurl is a command line tool that runs HTTP requests defined in a simple plain text format. It can chain requests, capture values and evaluate queries on headers and body response. Hurl is very versatile: it can be used for both fetching data and testing HTTP sessions. Hurl makes it easy to work with HTML [4] content, REST / SOAP / GraphQL APIs, or any other XML / JSON based APIs. Note This post is a thought [5]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://hurl.dev/ [2]: https://gerhard.io/ [3]: https://www.youtube.com/watch?v=mvC7497CJJs&t=3001s [4]: /html/ [5]: /thoughts/
Today I discovered the Urllink function in bash from the ujust tool from ublue.it [1]. Seems like a cool trick, but might not work everywhere. ######## ### Special text formating ######## ## Function to generate a clickable link, you can call this using # url=$(Urllink "https://ublue.it" "Visit the ublue website") # echo "${url}" function Urllink (){ URL=$1 TEXT=$2 # Generate a clickable hyperlink printf "\e]8;;%s\e\\%s\e]8;;\e\\" "$URL" "$TEXT${n}" } ```j References: [1]: https://ublue.it
watchfiles Simple, modern and high performance file watching and code reload in python. watchfiles.helpmanual.io [1] Simple, modern and high performance file watching and code reload in python. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://watchfiles.helpmanual.io/ [2]: /thoughts/
I’m really excited about turso [1], an amazing project by tursodatabase [2]. It’s worth exploring! Turso Database is a project to build the next evolution of SQLite. References: [1]: https://github.com/tursodatabase/turso [2]: https://github.com/tursodatabase
limbo [1] by tursodatabase [2] is a game-changer in its space. Excited to see how it evolves. Limbo is a work-in-progress, in-process OLTP database management system, compatible with SQLite. References: [1]: https://github.com/tursodatabase/limbo [2]: https://github.com/tursodatabase
hostnamectl to easily change hostname | Nic Payne hostnamectl is apparently a linux utility for easily changing your hostname in a variety of ways I learned there's transient and static hostnames, so that& pype.dev [1] For some reason the ublue ecosystem does not prompt you to set your hostname on install and you get a hostname like bazzite showing up. Looks like this is the fix. hostnamectl –static hostname babyblue-aurora Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://pype.dev/hostnamectl-to-easily-change-hostname [2]: /thoughts/
Ansible Galaxy galaxy.ansible.com [1] Great examples for working with s3 buckets with ansible. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://galaxy.ansible.com/ui/repo/published/amazon/aws/content/module/s3_bucket/#examples [2]: /thoughts/
I came across cockpit-identities [1] from 45Drives [2], and it’s packed with great features and ideas. User and group management plugin for Houston UI (Cockpit) References: [1]: https://github.com/45Drives/cockpit-identities [2]: https://github.com/45Drives
cockpit-file-sharing [1] by 45Drives [2] is a game-changer in its space. Excited to see how it evolves. A Cockpit plugin to easily manage samba and NFS file sharing. References: [1]: https://github.com/45Drives/cockpit-file-sharing [2]: https://github.com/45Drives
Using OPNsense with Tailscale · Tailscale Docs Set up a Tailscale VPN on OPNsense. Get secure communication across your devices without the need for complex configuration. Tailscale · tailscale.com [1] On reboot of my opnsense router it did not tailscale up. I’m not sure if a key expired or what happened. The fix was to first enable ssh, then ssh in and run tailscale up. enable ssh # [2] In opnsense System > Settings > Administration > Secure Shell > Enable Secure Shell tailscale up # [3] ssh <opnsense ip> 8 # to select shell tailscale up Follow the link to log in. disable ssh # [4] now uncheck secure shell to lock down the opnsense machine. In opnsense System > Settings > Administration > Secure Shell > Enable Secure Shell Note This post is a thought [5]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://tailscale.com/kb/1097/install-opnsense [2]: #enable-ssh [3]: #tailscale-up [4]: #disable-ssh [5]: /thoughts/
I’ve been debugging a cloudflared tunnel issue in my homelab [1] all day today, and getting really frustrated. My issue ended up being that it was running twice, once without the correct config file and another with it. I believe that cacheing may have compounded the issue. In yesterday’s post I setup a cloudflared tunnel on my ubuntu server to expose applications running on the server to the internet. I’m setting up a new server and running cloudflared in its own vm. setup cloudflared tunnel on ubuntu [2] Check that dns is pointing to the correct tunnel # [3] dig subdomain.example.com traceroute subdomain.example.com Check that the tunnel is running # [4] export CLOUDFLARED_TUNNEL_ID = "my-tunnel-id" cloudflared tunnel list cloudflared tunnel info $CLOUDFLARED_TUNNEL_ID References: [1]: /homelab/ [2]: /setup-cloudflared-tunnel-on-ubuntu/ [3]: #check-that-dns-is-pointing-to-the-correct-tunnel [4]: #check-that-the-tunnel-is-running
I run a cloudflared tunnel on my ubuntu server to expose applications running on the server to the internet. I’m setting up a new server and running cloudflared in its own vm. Get the cloudflared binary # [1] sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O /usr/local/bin/cloudflared sudo chmod +x /usr/local/bin/cloudflared # [2] Now setup the config directory. For the systemd service to work, the config file needs to be in /etc/cloudflared. I like to give my user rights to edit the config file without being sudo, we will do that here by creating a group cloudflared, add ourselves to the group, give ownership of /etc/cloudflared to the group, give group write access to the directory, and refresh groups. sudo mkdir -p /etc/cloudflared sudo groupadd cloudflared sudo usermod -aG cloudflared $USER sudo chown -R root:cloudflared /etc/cloudflared sudo chmod g+w /etc/cloudflared newgrp cloudflared login # [3] Now we can log into the domain zone with cloudflared. cloudflared tunnel login This will give a url, follow it in a browser to log in. cloudflared tunnel create <NAME> mv ~/.cloudflared/cert.pem /etc/cloudflared/cert....
Fitting two hard drives and an SSD in a Dell OptiPlex 7010 SFF The Dell OptiPlex 7010 SFF officially only has room for one 2.5" hard drive internally, I fitted two 3.25" hard drives and a 2.5" SSD in one. willj.net [1] This guy fit 2 3.5" drives and an sdd in a dell 7050 SFF. It looks tight, and there it probably not much airflow running in it, but its an impressive project. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://willj.net/posts/fitting-two-hard-drives-and-an-ssd-in-a-dell-optiplex-7010-usff/ [2]: /thoughts/
How To Fix An Office Chair Popping Noise? With Root Causes If you hear a popping noise from under your office chair when you move around or when you spin it, it’s time to repair your office chair. Read more. ToErgonomics · toergonomics.com [1] I tried this fix on my secretlabs chair, but unfortunately it did nothing for me. Mine ended up being an issue in the tilt mechanism and not the hydraulic piston. I greased the crap out of it, it can only help the longevity. I did notice that the two washers on either side of my bearing were quite worn in. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://toergonomics.com/office-chair-popping-noise/ [2]: /thoughts/
If anyone else is having sound clicking with chair : here is the document admitting it’s manufacturer defect. If anyone else is having sound clicking with chair : here is the document admitting it’s manufacturer defect. Reddit · reddit.com [1] This is definitely happening to my secretlabs chair. I did the fix this morning, its still not perfect, but it’s better now than it has been in a long time. Mine use to be so bad that it would pop and creak every time I sat down or moved the smallest bit. It’s now quiet through the mid range of its motion with the occasional pop when I sit down. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.reddit.com/r/secretlab/comments/s6ayop/if_anyone_else_is_having_sound_clicking_with/ [2]: /thoughts/