I found snow-fall component from
zachleat [1], and its beautiful… to
me. I like the way it looks, its simple and whimsical.
Install # [2]
There is an npm package @zachleat/snow-fall if that’s your thing. I like
vendoring in small things like this.
curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js
I generally save it in my justfile so that I remember how I got it and how to
update…. yaya I could use npm, but I don’t for no build sites.
get-snowfall:
curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js
Usage # [3]
Now add the component to your page.
<!-- This belongs somewhere inside <head> -->
<script type="module" src="snow-fall.js"></script> <!-- Adjust the src to your path -->
<!-- This belongs somewhere inside <body> -->
<!-- Anything before will be below the snow. -->
<snow-fall></snow-fall>
<!-- Anything after will show above the snow. -->
References:
[1]: https://www.zachleat.com/web/snow-fall/
[2]: #install
[3]: #usage
Archive
All published posts
2507 posts
latest post 2026-05-29
Publishing rhythm
Today I learned an important lesson that you should periodically check on your
kubeconfigs expiration date. It’s easy to do. You can ask for the
client-certificate-data from your kubeconfig, decode it, and use openssl to get
the expiration date.
kubectl config view --raw -o jsonpath='{.users[0].user.client-certificate-data}' \
| base64 -d 2>/dev/null \
| openssl x509 -noout -dates
Note
This will only work for the first user, if you have more than one user or
context defined in your kubeconfig you will need to adjust.
Not every print needs supports
Not every print needs supports. So many models default to having it on,
whether needed or not. Well designed parts, designed for 3d printing almost
never need supports (depending on constraints).
reminder Include steps to reproduce
Include steps to reproduce your bug when you file a bug report or issue. You
may quickly forget how you got there, and no one can fix a bug that is not
reproducible.
-
This looks like a really good low cost option for some workholding. There is never a shortage of workholding in the shop and everything has a place. Having something low cost that you can have a bunch of makes a lot of sense. Maybe you still need a super scucum unit for really clamping the shit out of something, but this easily covers most use cases in a garage workshop. I want to build it.
Note
This post is a thought [1]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /thoughts/
-
Moore’s Law is Dead pitches a pretty ingenious sku for the new gabecube aka steam machine. I fully support repairability and ewaste reduction. most of these components have not had MAJOR improvements in years, hence his channel name. There is a possibility here that Valve could ship with their unique hardware, (apu, psu, case, ports, networking) and let you bring your own ssd and ram from an old device that you might not use anymore. I love this idea. At the same time it feels like entering the star wars universe where there are no more new manufacturing and everything is cobbled together from old hardware made long ago.
Note
This post is a thought [1]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /thoughts/
All I want for Christmas is, filliment
All I want for Christmas is filament
I don’t need gifts or fancy things
I just wanna model, tinker, and print,
watch layers stack just right.
Santa, if you’re listening... PLA, PETG, ABS will do.
When using two GitHub accounts the gh cli gives very easy gh auth switch workflow from the cli.
from the docs
gh auth switch –help
Switch the active account for a GitHub host.
This command changes the authentication configuration that will
be used when running commands targeting the specified GitHub host.
If the specified host has two accounts, the active account will be switched
automatically. If there are more than two accounts, disambiguation will be
required either through the --user flag or an interactive prompt.
# list accounts
gh auth status
# switch accounds (interactive if more than 2, i've never seen this personally)
gh auth switch
Check out basecamp [1] and their project fizzy [2].
Kanban as it should be. Not as it has been.
References:
[1]: https://github.com/basecamp
[2]: https://github.com/basecamp/fizzy
-
What a heart breaking video to listen to. I’m trying to do a better job of being positive right now. I’m trying to look at the world in what I have control over (not much more than my attitude about it). AI is killing so much right now I’m trying to look at it as the good tools the engineers made it to be. Ownership is dying around every goddamn corner. Hats off to Edison, this guy gets it. We need more companies like this taking a stand for the average person who wants to make it out there.
Note
This post is a thought [1]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /thoughts/
-
What a great campfire story Casey stumbled into. Whether any of this is true few will ever know, but its very reasonable that a race condition and a stalled job to apply configuration caused by someone who left the company 10 years ago caused an outage. I find it hilarious that they call this guy he answers, yup I still know the password, but how do I know you’re legit, I’m not just handing out the password. Casey did a stand up job telling this story.
Note
This post is a thought [1]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /thoughts/
-
Linus is Techbrophobic [1] like the rest of us. This is such an unexpectedly mild take from him. I expected some threat to the mother of the vibe coder, but he gave a pretty great middle of the road take. The industry sucks, it smells off, we know a lot wrong with it, it feels like theres a lot more wrong than we know. But the tools that its making are really good when used in the right ways. They are not a replacement for anything, they are assistive. They can lift someone from not knowing how to code to making a small webapp for their use. Someone who wants to write backend and give them a decent front end, someone who whats to write front end and give them a decent backend.
Great take from someone with more experience than most can ever dream of having, worth a listen.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /techbrophobic/
[2]: /thoughts/
gpus are awesome [1] and I need one for Bambu Studio to be usable in a
distrobox. Adding the --nvidia flag to distrobox create bind mounts the
nvidia /dev/ devices and sets up the necessary environment variables. Once
we are in there are a couple of packages to install to make it work.
distrobox create --name bambu-studio --image archlinux:latest --nvidia
distrobox enter bambu-studio
sudo pacman -S nvidia-utils lib32-nvidia-utils vulkan-icd-loader
nvidia-smi
glxinfo | gprep OpenGL
sudo pacman -Syu --needed base-devel git
git clone https://aur.archlinux.org/paru-bin.git
cd paru-bin
makepkg -si
paru -S bambustudio-bin
bambu-studio
distrobox-export --app bambu-studio
References:
[1]: /gpus-are-awesome/
Check out garbage-day.nvim [1] by Zeioth [2]. It’s a well-crafted project with great potential.
Garbage collector that stops inactive LSP clients to free RAM
References:
[1]: https://github.com/Zeioth/garbage-day.nvim
[2]: https://github.com/Zeioth
snow-fall Web Component—zachleat.com
A post by Zach Leatherman (zachleat)
Zach Leatherman · zachleat.com [1]
This is a very fun way to add some whimsy to your site, added it to mine immediately when I saw it. This is what digital gardens are for, Fun, entertainment, and self-exxpression.
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.zachleat.com/web/snow-fall/
[2]: /thoughts/
-
This ball vise Idea is incredible and I want one. Its a heavy workholding unit that can accept a variety of tools and manipulate things to a lot of angles while working on them. This looks really good for painting miniatures soldering or generally working on small 3d printed parts that I do.
Note
This post is a thought [1]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /thoughts/
git worktrees are needed
git worktrees are goated, and must be leaned on moving forward.
The Wrong Reasons To Run Kubernetes In Your Homelab
Running kubernetes in your homelab [1] is complex, time consuming, there are almost
no docs to help you (homelab focused docs for things you want to install), and
nothing is copy paste. You have to make everything happen yourself.
The Wrong Reasons To Run Kubernetes In Your Homelab # [2]
- I run compose and think kubernetes is the next logical step
- Techno Tim runs it
- I heard it’s what cool kids do
- Kubernetes BTW
- Talos Linux looks cool
- I found a cool helm chart on GitHub
- I need scale
There are also The Right Reasons To Run Kubernetes In Your Homelab [3].
I run compose and think kubernetes is the next logical step # [4]
No it’s not. It’s much different than running docker, compose, swarm. It’s
meant for scale, it’s complex, it’s made for enterprise, not your local
development or your homelab. It can do these things, it can do them quite
well, but it’s not the target audience.
Techno Tim runs it # [5]
I heard it’s what cool kids do
You need to rethink who the ...
my home row
My home row layout. It's not quite home row mods.

https://dropper.waylonwalker.com/file/fd74f80e-ff5e-4548-8419-bd407144bb6c.excalidraw
I got the kubernetes in my basement autism
What flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.

https://www.youtube.com/shorts/5Cac-cf5MOE
The k3s system-upgrade controller is a fantastic tool for upgrading k3s
automatically. It has done a fantastic job for me every time I’ve used it.
Today I ran it on a cluster that needed to upgrade several minors and I
learned that the controller does not pick up on changes to the channel url if
you change from minor to minor.
The solution I came up with was to name the plan with the version it supports.
Then on each patch upgrade, change both the plan name and the channel. I use
gitops with argocd, it automcatically cleaned up old plans, created new plans,
and the system-upgrade-controller picked up the plan and started applying
immediately.
# Server plan
apiVersion: upgrade.cattle.io/v1
kind: Plan
metadata:
name: server-plan-v1.33 # <- This is important if you want to change the channel name
namespace: system-upgrade
spec:
concurrency: 1
cordon: true
nodeSelector:
matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: In
values:
- "true"
serviceAccountName: system-upgrade
upgrade:
image: rancher/k3s-upgrade
channel: https://update.k3s.io/v1-release/channels/v1.33
---
# Agent plan
apiVersion: upgrade.cattle.io/v1
kind: Plan
metadata:
name: age...
Deleting Code for Performance
The one where I clean up an asynchronous mess
dbushell.com · dbushell.com [1]
I did not realize that David’s site was built on a homegrown Static Site Generator. As someone who also does this myself I appreciate the effort. I build my site on markata [2]. It started as a project to learn a set of tools and has become a project that I depend on everywhere and cant put down. It’s a great tool, but you probably shouldn’t use it. Anyways, I feel this really shows on David’s site. His site is filled with custom features that make it very unique, one off, and always a pleasure to read.
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://dbushell.com/2025/12/04/deleting-code-for-performance/
[2]: /markata/
[3]: /thoughts/
gpus are awesome
GPU's are awesome. I just added gpu support to my bambu-studio distrobox and
its flying! On my wayland based system the native package has never worked,
(arch or bazzite), but running in a distrobox does. Outside of distrobox the 3d
rendering canvas is black, no output. It used to work fine without gpu
support, was snappy enough, complex models were a bit sluggish, but fine.
Lately something happened and simple models bring it to its knees. It got
unusable!

> The print I happen to be working on is some custom designed gumdrops for a
> theater set. The ui is working and not lagging 30s between clicks causing
> clicks to happen on the wrong ui element.
I recently discovered posse_party [1] by searlsco [2], and it’s truly impressive.
Quit social media by posting more
References:
[1]: https://github.com/searlsco/posse_party
[2]: https://github.com/searlsco
-
Niche companies will rise from the ashes. Companies that want to build good products for customers. Companies that will get hundreds of users. They will treat them right and make enough money to support themselves, maybe.
Alongside them we will self host [1]. We will run our own services out of our basement. There will be downtime, but its ok. We will enjoy ourselves. We will tell everyone how much better it is BTW
Next to that is a firehose of shit piling back into the circular snakes mouth as all of your data flows freely between any company that can get their hands on it. These companies will spend and make money hand over fist. Most people will continue to use these services until enough is enough and unplug from everything.
In this world I don’t see how we sustain the amount of engineers we have created. Small companies run lean, small, and allow slow organic growth happen.
It will be interesting to see play out.
[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]: /self-host/
[2]: https://dropper.waylonwalker.com/file/95ae2a95-308b-4d1d-bff8-8ce6194db132.webp
[3]: /thoughts/
I’m impressed by awesome-nanobanana-pro [1] from ZeroLu [2].
🚀 An awesome list of curated Nano Banana pro prompts and examples. Your go-to resource for mastering prompt engineering and exploring the creative potential of the Nano banana pro(Nano banana 2) AI image model.
References:
[1]: https://github.com/ZeroLu/awesome-nanobanana-pro
[2]: https://github.com/ZeroLu
Malicious Traffic and Static Sites
Writing about the big beautiful mess that is making things for the world wide web.
blog.jim-nielsen.com [1]
These look like fun endpoints to add anti-maliciously, give good stuff for the sleezy things to read.
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://blog.jim-nielsen.com/2025/malicious-traffic-on-static-sites/
[2]: /thoughts/
A ChatGPT prompt equals about 5.1 seconds of Netflix
In June 2025 Sam Altman claimed about ChatGPT that "the average query uses about 0.34 watt-hours". In March 2020 George Kamiya of the International Energy Agency estimated that "streaming a …
Simon Willison’s Weblog · simonwillison.net [1]
This feels very promising for the future as we enter a world that is more and more dependent on AI that inference is so cheap. I did not understand the scale to how much cheaper inference is compared to training. As we get better with training I imagine this gets significantly better as well. I know they all claim to be profitable on inference, but scrolling through Simon’s feed here you see several articles on the stark difference.
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://simonwillison.net/2025/Nov/29/chatgpt-netflix
[2]: /thoughts/
A pretty good email scam
How I helped family recover from a clever email scam that hid behind sneaky account settings
cassidoo.co [1]
scams suck. This is a good story, sorry to hear that it happened to a real person. If you or anyone in your family has a compromised email, add these to your checklist to fix.
- automatic forwards
- 2-factor email
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://cassidoo.co/post/email-settings-scam/
[2]: /thoughts/
2025-11-27 Notes | Nic Payne
yesterday: [[2025-11-26-notes]] Big Changes Got my workspaces script in working order It's not quite configurable yet This will allow an easy way to setup
pype.dev [1]
Nic is also building out a similar workspaces script. This feels like such a great thing to have ai work on fully customized tools for your personal workflow. Also Nice shout out!
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/2025-11-27-notes/
[2]: /thoughts/
Check out dawarich [1] by Freika [2]. It’s a well-crafted project with great potential.
Your favorite self-hostable alternative to Google Timeline (Google Location History)
References:
[1]: https://github.com/Freika/dawarich
[2]: https://github.com/Freika
K8s Diagram Builder - Visual Kubernetes YAML Generator
Free Kubernetes diagram builder with drag-and-drop design. Auto-generate production-ready YAML for Ingress, Services, Deployments, ConfigMaps, Secrets & more. No signup required.
K8s Diagram Builder · k8sdiagram.fun [1]
This looks like great prototyping tool for k8s. I too often ask ai to get me going with the things I need. I’ve used k8s long enough that I can generally remember all the things I need, roughly where they go, would probably forget a few things and need to iterate, but I cannot remember exactly what goes where and need examples at a minimum. I need to give this a go from desktop and see if it will work for me. Right now looking through mobile looks promising.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: http://k8sdiagram.fun/
[2]: /thoughts/
chr15m [1] has done a fantastic job with runprompt [2]. Highly recommend taking a look.
Run LLM prompts from your shell
References:
[1]: https://github.com/chr15m
[2]: https://github.com/chr15m/runprompt
setting COLUMNS env var to a number greater than 0 will make the terminal resize to that number of columns.
COLUMNS=80 uvx --from rich-cli rich myscript.py
Note
Not all programs respct the COLUMNS env var, but rich does, and a lot of
stuff I’m building uses rich.
I discovered this when I was trying to make a low effort readme generated from
the code, but did not depend on the size of terminal it was ran on.
# justfile
readme:
echo "# Workspaces" > README.md
echo "" >> README.md
echo '``` bash' >> README.md
COLUMNS=80 ./workspaces.py --help >> README.md
echo '```' >> README.md
I’m really excited about alloy-scenarios [1], an amazing project by grafana [2]. It’s worth exploring!
A collection of working Alloy scenarios
References:
[1]: https://github.com/grafana/alloy-scenarios
[2]: https://github.com/grafana
The tea command for gitea (used by forgejo) has a flag for login. With gitea
you can have multiple accounts logged in. When you try to run a command such
as repo create it will prompt you which login to use, but I learned that you
can bake it in to all of them with --login <login-name>
❯ tea repo create --name deleteme --description 'for example'
┃ NOTE: no gitea login detected, whether falling back to login 'git.waylonwalker.com'?
[1]
tea repo create --name deleteme --description 'for example' --login git.wayl.one
References:
[1]: https://dropper.waylonwalker.com/file/11dc820d-1680-414c-9624-cd970b057a74.webp