Archive

All published posts

2524 posts latest post 2026-07-21 simple view
Publishing rhythm
Jun 2026 | 26 posts

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.
- 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.
- 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. References: [1]: /techbrophobic/

gpus are awesome 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
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. References: [1]: https://www.zachleat.com/web/snow-fall/
Forebrothers Fight
Forebrothers Full
Forebrothers
Here is a video clip of my Bambu A1 poop flinger fixed and not jamming during operation after my fix.
Bambu Poop Flinger Jammed
My bambu A1 poop flinger has been getting jammed up for awhile now, here is an image of it in the jammed position.

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/4a7971fc-8d22-49b9-ae77-5551f5c8d914.webp) 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. ![My homelab as June 2025](https://dropper.waylonwalker.com/file/49b356bc-f32c-4332-85ea-0eb2b7860091.webp) 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: agent-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: DoesNotExist
  prepare:
    args:
    - prepare
    - server-plan
    image: rancher/k3s-upgrade
  serviceAccountName: system-upgrade
  upgrade:
    image: rancher/k3s-upgrade
  channel: https://update.k3s.io/v1-release/channels/v1.33

I’d love to see a better way if you have a way to upgrade through minors, or manually control the minor of your cluster let me know.

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. References: [1]: https://dbushell.com/2025/12/04/deleting-code-for-performance/ [2]: /markata/

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! ![](https://dropper.waylonwalker.com/file/a06bbf8b-abea-472e-8d96-4255d522444d.webp) > 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] References: [1]: /self-host/ [2]: https://dropper.waylonwalker.com/file/95ae2a95-308b-4d1d-bff8-8ce6194db132.webp
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
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. References: [1]: https://simonwillison.net/2025/Nov/29/chatgpt-netflix
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 References: [1]: https://cassidoo.co/post/email-settings-scam/
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! References: [1]: https://pype.dev/2025-11-27-notes/
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. References: [1]: http://k8sdiagram.fun/
Apple Boxes Complete
A complete stack of apple boxes for the local theater.
Design For Bosch Colt Dust Collection V1
Isometric view of the Bosch Colt dust collection design.
Dust Collection For Bosch Colt V0
Dust Collection for Bosch Colt router v0 made of 3/4" plywood.
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'?
image showing message NOTE: no gitea login detected, whether falling back to login ‘git.waylonwalker.com’?
tea repo create --name deleteme --description 'for example' --login git.wayl.one
Looking for inspiration? wyattbubbylee.com [1] by WaylonWalker [2]. No description available. References: [1]: https://github.com/WaylonWalker/wyattbubbylee.com [2]: https://github.com/WaylonWalker
If you’re into interesting projects, don’t miss out on qmk_firmware [1], created by WaylonWalker [2]. Open-source keyboard firmware for Atmel AVR and Arm USB families References: [1]: https://github.com/WaylonWalker/qmk_firmware [2]: https://github.com/WaylonWalker

2025-11-21 Notes

Learned about nginx_auth today. Feels good to unlock a new skill that I did not quite understand before. I don't think I grasped that there is a backend...

1 min
Check out octelium [1] by octelium [2]. It’s a well-crafted project with great potential. A next-gen FOSS self-hosted [3] unified zero trust secure access platform that can operate as a remote access VPN, a ZTNA platform, API/AI/MCP gateway, a PaaS, an ngrok-alternative and a homelab [4] infrastructure. References: [1]: https://github.com/octelium/octelium [2]: https://github.com/octelium [3]: /self-host/ [4]: /homelab/

Another Big Cloud Outage Nov 2025

Today I woke up to finding out that cloudflare hade a widespread outage. My Reader [1] uses tailwind cdn for styles and it was down. Otherwise it was not so impactful to me and felt kike they were quick to have it up. I’m not really researching here, just jotting thoughts down from a parking lot waiting for pickup. It feels like we are seeing a lot of these lately. They feel much more frequent. It feels like a whole industry was sold on 9’s and reliability of big cloud that we just aren’t getting. There’s a huge push to go back to self hosting, racking and stacking. I think this is great. I love it. I’m a big proponent for ownership and self hosting. It’s not the right move for everything and everyone, and is certainly not something to make a knee jerk reaction about in the moment of frustration. There’s a lot of things that are just impossible to do yourself, cdn caching, edge compute, ddos protection. These companies are not magic they are vulnerable to changes just like you ...
2 min read
- 👏👏👏preach it prime! M$ continues to prove that they are not making products for you something else is affoot and shit you don’t want is shoved down your throat and forced on you. Prime points out that the agentic is prompt injected itself😂. Rather than making a better os experience it’s assuming you are stupid and need everything done for you. But what I don’t get here in the text scaling example. Why the F does it not just fix it for me. When I ask the machine to make text bigger it puts a flashy circle where to click. This is a one time setup for someone who gives no fucks to remember how to do it. Why is the machine doing this weird hand holding watching us do it’s work rather than just doing it? I like the pattern when you change display setting it gives you a counter that reverts everything if for some reason shit is so bad you can’t even see it. Do that, not this help me click bs. Now in parallel we have steam making Linux desktop better and better. Allowing you to just access the hardware you own to do what you want to do with it. Providing a fantastic hands off out of the box experience for the price of the hardware. No ongoing fees, no upgrade cycle, soft lock, ari...
- Absolutely banger of a video, what a wild idea to send gippity a bit off course and just see how far off the rails it will go. Dude did a banger of an edit on it. I’ll admit that I listened to the whole thing, but did not watch much, saving here as I might go back when I have time to really watch it. It was really weird how easy it was for chat to say something that could be true, but nearly no chance of it actually happening over and over and just keep it going down this dark spiral of conspiracies. It was ready to electrocute him and separate him from anyone who had a chance of being a non believer. At any moment was ready to say that those closest to him might be his problem. gipity is not your friend, or your therapist.

I found an interesting side effect of manually running my script to generate [[ stars ]] posts is that you get notified when one gets renamed. Today I noticed that Ned Batchelder created a coveragepy org.

screenshot-2025-11-12T03-33-12-967Z.png

Today I learned how to use AliasChoices with pydantic settings to setup common aliases for the same field. I’m bad about remembering these things, and hate looking up the docs. I like things to be intuitive and just do the thing I want it to do. Especially when they get configured through something like yaml and do not have a direct lsp look up right from my editor. I figured out how to support what might be common aliases for a storage directory. These can be set up as environment variables and used by config.

from pathlib import Path

from pydantic import Field
from pydantic import AliasChoices
from pydantic_settings import BaseSettings

class Settings(BaseSettings):
    storage_dir: Path | None = Field(
        default=None,
        validation_alias=AliasChoices(
            "STORAGE_DIR", "STORAGE_DIRECTORY", "STORAGE_PATH", "STORAGE_PATHNAME",
            "DROPPER_STORAGE_DIR", "DROPPER_STORAGE_DIRECTORY", "DROPPER_STORAGE_PATH", "DROPPER_STORAGE_PATHNAME",
        ),
        description="Directory for stored files",
    )

3d-Printed Corner Clamp

Getting ready to batch out 18 apple boxes for the local theater. Need to step up my woodworking tool game here quick on a low budget. Whipped this up up and built the prototype box , went really well. We have 4 in the arsenal now, might do 4 more if we need more assembly capacity. Pretty proud of the first 3d printed thread project here. The design for good 3d prints can be quite different with its anisotropic strength and hollow sections being nearly weightless when compared to traditional manufacturing methods. Its so fun to be able to do it for almost no cost right in my home office. [1] 3d-printed corner clamp printed in black pla. [2] Isometric view of my corner clamp v1 that supports up to 3/4" sheets and includes slots for dowell points on 3/4" and 1/2" material. References: [1]: https://dropper.waylonwalker.com/api/file/2701fb29-5a35-4249-a66d-8a84a774fb0c.jpg [2]: https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png
Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka. No fancy orchestration. No distributed event streams. No cloud-native… | Anton Martyniuk | 270 comments Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka. No fancy orchestration. No distributed event streams. No cloud-native anyth… LinkedIn · linkedin.com [1] Lean on your skills and your goals. If your goals are to have fun, use whatever you want. If you are looking for a job, Lean on tech that bridges the gap between your resume and the job you want. If you want to build a good product use the tech you are best at. No one in their right mind would throw away 20 years of tech progression because Zuck built facebook ftping php to a server. The sentiment in this post is fine at best the picture feels triggering and oversimplies way too much. If you like kubernetes just fucking use kubernetes [2]. This topic deserves a full on post, maybe later. References: [1]: https://www.linkedin.com/posts/anton-martyniuk_mark-zuckerberg-scaled-facebook-in-2005-activity-7393550498584371201-iqDA/?utm_sour...