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
Today I Learned
Short TIL posts
1852 posts
latest post 2026-05-13
Publishing rhythm
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/