Archive

All published posts

2518 posts latest post 2026-07-10 simple view
Publishing rhythm
Jun 2026 | 26 posts
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...

Techbrophobic

I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its OK to question if it needs to be in every goddamn thing we do, question its morality on training and the slop being pushed at us all the time. I’m not Technophobic I’m Techbrophobic I heard this and it kinda hit with a lot of things that I’ve resonated with lately. Tech bros of today have been compared to Steve Jobs in a lot of ways. Whether its style or the way he was so good at marketing, but this feels different. When Jobs launched the iPhone as this next great thing, He fucking made the thing. No broken promises of being sold something with hopes that it will do more tomorrow. No pushing around insane amounts of money with the hope to become profitable years down the line. No fear pushing that if you are not doing X today your business will be dead in 6 months. Giving us the promise that it was about to create an enti...
3 min read
- Are we cooked? Are we? Yes the consumers are cooked there are no more affordable cars with basic shit that you need to go point a to point b. Ford make us cars we can afford and you won’t be cooked by this dumb shit. If you can market it? Most people don’t care what sticker price is and only the monthly payment. This is why we are cooked. We stopped caring that these things cost way too much. I’m probably in a small minority that just want an affordable reliable vehicle and could care less about features past climate control. I don’t use them. My phone has maps and music I don’t need a screen in my vehicle for anything.

Mcat Anything

I’ve long looked for a way to cat anything in the terminal. I’m am terminally in the terminal. I manage all of my projects, code, website, notes, files, servers, infrastructure, almost everything from the terminal. I occasionally open a file manager, mostly at home, only so that I can browse images. Compounding my issue, I’m a tmux user. It works great for me, and I barely have to think about it at this point. The keybindings are second nature to me. I can go between server, terminal, nvim, and between projects instantly, no loader, no lag, no animation, it just works for everything that really matters to me for really getting things done. Mcat # [1] mcat is a new tool that seems like it can cat anything in the terminal, code, files, images, markdown, markdown with images, and even video, without leaving tmux! mcat static/8bitcc.png curl https://r.jina.ai/https://waylonwalker.com/store/ | mcat --theme dracula --md-image all curl https://r.jina.ai/https://waylonwalker.com/shots/ ...
2 min read

Missing Thoughts

No one is perfect, this is why we have things like checkpoints or gates in the form of pull requests, linting, type checking, and tests. What happens when you work on small side projects by yourself that try to be content focused? What happens when you end up building a lot of the tech under that site and build it on the bleeding edge of all the tech you make? They are likely missing these things and occasionally there are some periods of regression. This is one reason I really like the term digital garden to describe one’s small corner of the internet where they share their thoughts. There will be regressions The Signs # [1] There were signs, signs I did not notice Chat is your rss feed broken? I’m not seeing anything show up in my rss reader me Do I not put thoughts in my rss feed, I swore I did. Chat my fault, Turns out I must have already clicked it in my reader. me great, glat it’s working …But it wasn’t Later this week comes the next sign that I also choose to ig...
3 min read
mcat [1] by Skardyy [2] is a game-changer in its space. Excited to see how it evolves. Terminal image, video, directory, and Markdown viewer References: [1]: https://github.com/Skardyy/mcat [2]: https://github.com/Skardyy

2025-11-04 Notes

Today I gave mcat a try and it's so sick. It can anything right in the terminal, pdf, image, even video. It even works inside tmux unlike almost anything...

1 min