Archive

All published posts

2518 posts latest post 2026-07-10 simple view
Publishing rhythm
Jun 2026 | 26 posts
Spring 2025: Self-Hosted Update The one where things plod along. dbushell.com · dbushell.com [1] Davids blogs always have so many links that send me down new rabbit holes. Interesting that his experience with smart home is turning away, I’ve been somewhat interested for awhile, but never fully pulled the trigger on buying things. I really hope tailscale enshitification does not take off, but really for me, I barely use it even as a homelabber. Idk why, but every other homelabber praises it so much and I just dont find myself using it. References: [1]: https://dbushell.com/2025/04/13/self-hosted-update-spring-2025/
Characters Xe Iaso xeiaso.net [1] xeiaso, has the coolest characters on her blog. Definitely something I’d like to replicate. I really appreciate how each one has its own sprite sheet, and they have conversations with each other. [2] References: [1]: https://xeiaso.net/characters/ [2]: https://dropper.waylonwalker.com/api/file/77dd4cb5-4fdb-4d09-8b9b-d9cdd72b2490.webp

backup distrobox image

Today I’m upgrading my distrobox, but don’t want to end up in a situation where I can’t get anything done becauase I work out of my distrobox. distrobox ls distrobox stop devtainer distrobox create --clone devtainer --name devtainer-20250409 distrobox enter devtainer
GitHub - adrianlopezroche/fdupes: FDUPES is a program for identifying or deleting duplicate files residing within specified directories. FDUPES is a program for identifying or deleting duplicate files residing within specified directories. - adrianlopezroche/fdupes GitHub · github.com [1] keeping this in my back pocket for now. I just moved a few TB’s of data in the homelab [2] and I am expecting a lot of duplication to show up. References: [1]: https://github.com/adrianlopezroche/fdupes [2]: /homelab/
I’m really excited about fdupes [1], an amazing project by adrianlopezroche [2]. It’s worth exploring! FDUPES is a program for identifying or deleting duplicate files residing within specified directories. References: [1]: https://github.com/adrianlopezroche/fdupes [2]: https://github.com/adrianlopezroche
Diun Receive notifications when a Docker image is updated on a Docker registry crazymax.dev [1] Diun, looks like a very interesting tool to monitor for image updates, it does not make any change, it only makes notifications. This feels like an easy start to getting image updates started with low effort, keep git [2] ops, but requires manual updates. I see this as a tool that would be a great start and pair well with automated image updaters to ensure they are working as expected. References: [1]: https://crazymax.dev/diun/ [2]: /glossary/git/
Keel Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates keel.sh [1] Keel looks interesting, I might give it a try as a simple image updater. I’m unsure if it fits my gitops patterns though. I like to keep everything defined in git [2], I don’t like drift outside of that so Keel might not be the thing I want. References: [1]: https://keel.sh/ [2]: /glossary/git/

Changing k8s Storage Class - Migration Job

I’m setting up longhorn in my homelab [1], and I ran into an issue where I initially setup some pvcs under longhorn, and later realized that to get longhorn to snapshot and backup I needed to hand edit volumes after the fact or change storage class. I’m all in on gitops so option 1 was not an option. So changing storageclass it is. Now the issue is that you CANNOT mutate storageclass on a provisioned pvc, it is an immutable attribute. Migration Job # [2] This migration job will create a new pvc with the new storageclass and move the data from the old pvc to the new pvc. Existing Pods This migration job will not work if you have a pod using the old pvc. You will need to shutdown the pod and delete it. # old pvc with longhorn storageclass apiVersion: v1 kind: PersistentVolumeClaim metadata: name: site-pvc-longhorn namespace: waylonwalker-com spec: storageClassName: longhorn-backup accessModes: - ReadWriteOnce resources: requests: storage: 5Gi # new pvc with longhorn-ba...

New Phone Day Apr 2 2025

backdated This represents the first sign in to this new pixel 6. This will be my 3rd pixel 6 since 2021, One shattered screen and one blown battery. My first one was brand new, the first new phone i’ve had in years. That phone only proved to me that new flagship models make no difference to me, I had been running pixel 3 refurbished for many years before. No social media on this device # [1] Social media sucks become a bunch of people yelling “fake news” at each other and propping up their political candidate as the savior of everything. Elon bought twitter and fractured it. The communities are no longer here, and I have to dig through so much political posts to see post on tech and engineering its not worth it anymore. update from a year later and It’s been great, I check socials like once a week hoping to find better things, but it all seems like the same BS. The Crypto bros have moved on to AI so hard that I just cant stand watching most of them yap about something that they...
YouTube Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube. youtube.com [1] Damn he makes this easy. I did not know about hx-select. yes there is waste in requesting the entire thing every 5s, but damn that was easy to get life reload. I’ve only done very specific backend endpoints, built pages up from partials, made endpoints for partials. keeping this one in my back pocket. I’m just kind of amazed that he could do this all in html [2] without touching the backend or js, typically things like this require one or the other. Yes js is running, but no other js library I’m aware of lets you do this. References: [1]: https://www.youtube.com/watch [2]: /html/

homelab drive ids

ls -l /dev/disk/by-id/ Drive Bay 1 ata-ST4000VN008-2DR166_ZDHBZSWZ +————————————————————————-+ | [ Power] [ Reset ] | +————————————————————————-+ | [ BAY 5 ] 3TB WD30EFRX WMC4N0D3J9R7 ext4 /mnt/sdf4 | +————————————————————————-+ | [ BAY 4 ] 14TB EXOS ZTM09R9N zfs main pool mirror /mnt/main | +————————————————————————-+ | [ BAY 3 ] 14TB EXOS ZTM0AALS zfs main pool mirror /mnt/main | +——————————————-+ | [ BAY 2 ] 4TB IRONWOLF ZDHBZV3N zfs tank pool mirror /mnt/tank | +————————————————————————-+ | [ BAY 1 ] 4TB IRONWOLF ZDHBZSWZ zfs tank pool mirror /mnt/tank | +————————————————————————-+
I recently discovered kubectl.nvim [1] by Ramilito [2], and it’s truly impressive. ⎈ Streamline your Kubernetes management within Neovim—control and monitor your cluster seamlessly, all without leaving your coding environment. References: [1]: https://github.com/Ramilito/kubectl.nvim [2]: https://github.com/Ramilito
Redis configuration Overview of redis.conf, the Redis configuration file Docs · redis.io [1] redis has all of their default self documented configs hosted here. You can pull the default redis.conf for any of the major releases. References: [1]: https://redis.io/docs/latest/operate/oss_and_stack/management/config/
If you’re into interesting projects, don’t miss out on xpipe-webtop [1], created by xpipe-io [2]. A containerized web-based desktop environment for XPipe References: [1]: https://github.com/xpipe-io/xpipe-webtop [2]: https://github.com/xpipe-io
xpipe [1] by xpipe-io [2] is a game-changer in its space. Excited to see how it evolves. Access your entire server infrastructure from your local desktop References: [1]: https://github.com/xpipe-io/xpipe [2]: https://github.com/xpipe-io

Using pbpaste for command substitution keeps sensitive or long URLs out of your shell history. Instead of typing git clone https://github.com/user/repo-with-long-name.git, copy the URL to clipboard and run git clone "$(pbpaste)". This prevents the URL from appearing in ~/.bash_history or ~/.zsh_history.

To get pbpaste working on both Xorg and Wayland, add this to your shell config:

if [[ $(command -v wl-copy) ]]; then
    alias pbcopy='wl-copy'
    pbpaste() { wl-paste; }
elif [[ $(command -v xclip) ]]; then
    alias pbcopy='xclip -selection clipboard'
    pbpaste() { xclip -selection clipboard -o; }
fi

The function approach (instead of alias) enables command substitution, while the quotes around $(pbpaste) handle spaces and special characters safely.

Now you can use it.

git clone "$(pbpaste)"

More importantly secrets can stay out of your history.

export GITHUB_TOKEN="$(pbpaste)"
export AWS_ACCESS_KEY_ID="$(pbpaste)"
export AWS_SECRET_ACCESS_KEY="$(pbpaste)"
export DATABASE_URL="$(pbpaste)"
hotel_bookings.csv Discover what actually works in AI. Join millions of builders, researchers, and labs evaluating agents, models, and frontier technology through crowdsourced benchmarks, competitions, and hackathons. kaggle.com [1] nice dataset to use for example / test projects. I’m using it to play with duckdb currently. References: [1]: https://www.kaggle.com/datasets/ahmedsafwatgb20/hotel-bookingscsv?resource=download

THPS 1 Downtown Gaps

[1] [2] Previously THPS 1 Skate Park Gaps [3] Big Ass # [4] THPS1-5-BigAss.mp4 [5] Billboard Grind # [6] THPS1-5-BillboardGrind.mp4 [7] BS Gap # [8] THPS1-5-BSGap.mp4 [9] BS Grind # [10] THPS1-5-BSGrind.mp4 [11] Burly Deck Gap # [12] THPS1-5-BurlyDeckGap.mp4 [13] Car Ollie # [14] THPS1-5-CarOllie.mp4 [15] THPS1-5-CarPlant.mp4 [16] Cheesy Deck Gap # [17] THPS1-5-CheesyDeckGap.mp4 [18] Death Grind # [19] THPS1-5-DeathGrind.mp4 [20] Deck Gap # [21] THPS1-5-DeckGap.mp4 [22] Dirty Rail # [23] THPS1-5-DirtyRail.mp4 [24] Glass Gap # [25] THPS1-5-GlassGap.mp4 [26] Kicker Gap # [27] THPS1-5-KickerGap.mp4 [28] Kicker 2 Edge # [29] THPS1-5-Kicker2Edge.mp4 [30] Kicker 2 Street # [31] THPS1-5-Kicker2Street.mp4 [32] Rail 2 Rail # [33] THPS1-5-Rail2Rail.mp4 [34] Roof 2 Roof # [35] THPS1-5-Roof2Roof.mp4 [36] Secret Tunnel Entrance # [37] THPS1-5-SecretTunnelEntrance.mp4 [38] Sucky Room Gap # [39] THPS1-5-SuckyRoomGap.mp4 [40] T 2 T Gap # [41] THPS1-5-T2TGap....
The State of Secrets Sprawl 2025 GitGuardian's 2025 report reveals 70% of leaked secrets remain active two years later. Discover the alarming state of secrets sprawl & protect your organization. GitGuardian Blog - Take Control of Your Secrets Security · blog.gitguardian.com [1] Good report, make notes later References: [1]: https://blog.gitguardian.com/the-state-of-secrets-sprawl-2025/
Mill-Max Hotswap Sockets Mill-Max sockets for adding hotswap support to regular PCBs. Sold in packs of 60 (good for 30 switches). Info about the different types 7305-0: Gold-plated sockets (7305-0-15-15-47-27-10-0) Shorter... Keebio · keeb.io [1] looking into trying these Mill-Max pins on a handwired 3d printed build to see if I can get away from specialty hot swap sockets. Damn they aren’t exactly cheap, I really want the nice short ones but they start at $20 per 60ct and you need two per key, that adds up quick. References: [1]: https://keeb.io/products/mill-max-hotswap-sockets?variant=32377167511646
External Link r.jina.ai [1] jina reader is a pretty sweet tool to convert a site to ai compatible text. There are other web to markdown types of tools, but the convenience of just adding r.jina.ai to the front of any page makes it so easy to grab for one page of docs. References: [1]: https://r.jina.ai/
- the racked up 4 framework mainboards sound wild. connected with usb4 and 5gig ethernet. they said they can run big models quantized down from 600Gb to within the 512GB limit they have. This seems wild to bring this level of capability to such a low price point. It will be really cool to start to see demos come out.
Just starred monolith [1] by Y2Z [2]. It’s an exciting project with a lot to offer. ⬛️ CLI tool and library for saving complete web pages as a single HTML [3] file References: [1]: https://github.com/Y2Z/monolith [2]: https://github.com/Y2Z [3]: /html/

THPS 1 Skate Park Gaps

[1] Previously THPS 1 Mall Gaps [2] Next THPS 1 Downtown Gaps [3] Acid Drop # [4] THPS1-4-AcidDrop.mp4 [5] Across The Park # [6] THPS1-4-AcrossThePark.mp4 [7] Around The Bend # [8] THPS1-4-AroundTheBend.mp4 [9] HP Transfer # [10] THPS1-4-HPTransfer.mp4 [11] Light Grind # [12] THPS1-4-LightGrind.mp4 [13] Over The Box # [14] THPS1-4-OverTheBox.mp4 [15] Over The Pipe # [16] THPS1-4-OverThePipe.mp4 [17] Over the Rafters # [18] THPS1-4-OverTheRafters.mp4 [19] Pool 2 Walkway # [20] THPS1-4-Pool2Walkway.mp4 [21] Pool Hip # [22] THPS1-4-PoolHip.mp4 [23] Pool Rail Trans # [24] THPS1-4-PoolRailTrans.mp4 [25] Rafter Rail # [26] THPS1-4-RafterRail.mp4 [27] Transfer # [28] THPS1-4-Transfer.mp4 [29] Walkway Rail Trans # [30] THPS1-4-WalkwayRailTrans.mp4 [31] Wall Gap # [32] THPS1-4-WallGap.mp4 [33] Wall Gap Jr # [34] THPS1-4-WallGapJr.mp4 [35] Whoop Gap # [36] THPS1-4-WhoopGap.mp4 [37] References: [1]: https://dropper.waylonwalker.com/api/file/75b658de-1c88-414...

Trailmakers Pioneers

Trailmakers 2.0 Pioneers was released today as an update to trailmakers. It’s a brand new campaign mode that requires you to mine resources to get materials to craft your vehicles rather than salvage parts like you so in the Stranded Campaign. There also seems to be a more linear play through of the story with the frogitts, unlike stranded where it let you do anything completely open world, as long as you had the equipment to go there. Four Frogitts # [1] Out of the gate Wyatt came in with four frogitts to rescue, I don’t know how he found them all, I’ve only been able to find the first one that the master gives you to bring home as a tutorial. four-frogitts.mp4 [2] First Boss # [3] After Wyatt left for bed I played a little more and beat the first of what felt like a boss level enemy, he had much different attacks. I did not think I would make it as I got hit hard from his first explosion attack before I realized what it did. first-boss.mp4 [4] Here is where he was on the ma...
If you’re into interesting projects, don’t miss out on homelab-compose [1], created by Doomlab7 [2]. A repository for the applications I run via docker-compose in my homelab [3] References: [1]: https://github.com/Doomlab7/homelab-compose [2]: https://github.com/Doomlab7 [3]: /homelab/
I recently discovered smallpond [1] by deepseek-ai [2], and it’s truly impressive. A lightweight data processing framework built on DuckDB and 3FS. References: [1]: https://github.com/deepseek-ai/smallpond [2]: https://github.com/deepseek-ai
PyApp ofek.dev [1] I think I’m getting really close to having a good workflow setup for using pyapp. Such an amazing project to allow developers to create applications in python without passing on the hassle of python and managing installs to the user. References: [1]: https://ofek.dev/pyapp/latest/
The work on kopf [1] by nolar [2]. A Python framework to write Kubernetes operators in just a few lines of code References: [1]: https://github.com/nolar/kopf [2]: https://github.com/nolar

THPS 1 School Gaps

On the road to Gap Master achievement I got all School Gaps in THPS1. This is a super fun level, I’ll have to admit that I had to look up at least a quarter of them, and could not find them myself, mostly due to the naming, all of the rail tricks were actually ledges and I was looking for big rails. None of the warehouse gaps were manuals so I had no idea that the downhill and accross the gym would be manual tricks. Previously THPS 1 Warehouse Gaps [1] next THPS 1 Mall Gaps [2] [3] [4] Ditchin Class # [5] THPS1-2-DitchinClass.mp4 [6] Dumpster Rail Gap # [7] THPS1-2-DumpsterRailGap.mp4 [8] Funbox Table Transfer # [9] THPS1-2-FunBoxToTableTransfer.mp4 [10] Garbage Ollie # [11] THPS1-2-GarbageOllie.mp4 [12] Gimme Gap # [13] THPS1-2-GimmeGap.mp4 [14] Hall Pass gap # [15] THPS1-2-HallPassGap.mp4 [16] All-Access Gap # [17] THPS1-2-AllAccessGap.mp4 [18] Huge Rail # [19] THPS1-2-HugeRail.mp4 [20] Kicker Gap # [21] THPS1-2-KickerGap.mp4 [22] Long Ass Rail # [23] THPS1...

THPS 1 Mall Gaps

This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren’t as many gaps in it as I thought there would be, there are definitely a lot that you can make up on your own. Anyways here’s my playthrough of all the mall gaps in THPS1 on my way to gap master. Previously THPS 1 School Gaps [1] Next THPS 1 Skate Park Gaps [2] [3] Huge Stair Set Off A Mezzanine # [4] THPS1-3-HugeStairSetOffAMezzanine.mp4 [5] Coffee Grind # [6] THPS1-3-CoffeeGrind.mp4 [7] The Flying Leap # [8] THPS1-3-TheFlyingLeap.mp4 [9] For the Whole Atrium # [10] THPS1-3-ForTheWholeAtrium.mp4 [11] Fountain Gap # [12] THPS1-3-FountainGap.mp4 [13] Exit Stage Right # [14] THPS1-3-ExitStageRight.mp4 [15] Exit Stage Left # [16] THPS1-3-ExitStageLeft.mp4 [17] Over A Stair Set # [18] THPS1-3-OverAStairSet.mp4 [19] Over A Huge Stair Set # [20] THPS1-3-OverAHugeStairSet.mp4 [21] Planter Gap # [22] THPS1-3-PlanterGap.mp4 [23] Rail Combo # [24] THP...
Check out PrefectHQ [1] and their project marvin [2]. ✨ AI agents that spark joy References: [1]: https://github.com/PrefectHQ [2]: https://github.com/PrefectHQ/marvin
Ergonomic Laptop — Evan and Katelyn Back pain ends here. Evan and Katelyn · evanandkatelyn.com [1] This is such a cool idea, I tend to not use laptops at all because they are so uncomfortable I just wait till I’m back at my desk. This solves two main issues I have with laptops, the posture to use them is shit, the keyboards that come on them is not what I want to use. I’ve solved the latter with my own custom keyboard. References: [1]: https://www.evanandkatelyn.com/blog/ergotop
Just starred system-upgrade-controller [1] by rancher [2]. It’s an exciting project with a lot to offer. In your Kubernetes, upgrading your nodes References: [1]: https://github.com/rancher/system-upgrade-controller [2]: https://github.com/rancher
Just starred arcade [1] by pythonarcade [2]. It’s an exciting project with a lot to offer. Easy to use Python library for creating 2D arcade games. References: [1]: https://github.com/pythonarcade/arcade [2]: https://github.com/pythonarcade
OpenTools | The API for LLM tool use One API to use any LLM with every MCP tool OpenTools · opentools.com [1] OpenTools is an index for mcp servers to work with new agentic workflows like roo code and windsurf. References: [1]: https://opentools.com/

THPS 1 Warehouse Gaps

On the road to Gap Master achievement I got all Warehouse Gaps in THPS1. This is this classic warehouse level that everyone thinks of when THPS is mentioned. Such a good level, compact, easy to play, with some fun gaps that might take a few tries to hit. Next up THPS 1 School Gaps [1] [2] Big Rail # [3] THPS1-1-BigRail.mp4 [4] Channel Gap # [5] THPS1-1-ChannelGap.mp4 [6] Deck 2 Rail # [7] THPS1-1-Deck2Rail.mp4 [8] Face Plant # [9] THPS1-1-FacePlant.mp4 [10] High Rail # [11] THPS1-1-HighRail.mp4 [12] Holy Shi # [13] THPS1-1-HolyShi.mp4 [14] Kicker 2 Ledge # [15] THPS1-1-Kicker2Ledge.mp4 [16] Kicker Gap # [17] THPS1-1-KickerGap.mp4 [18] Monster Grind # [19] THPS1-1-MonsterGrind.mp4 [20] Over The Pipe # [21] THPS1-1-OverThePipe.mp4 [22] Secret Room # [23] THPS1-1-SecretRoom.mp4 [24] Taxi 2 Ledge # [25] THPS1-1-Taxi2Ledge.mp4 [26] Taxi Gap # [27] THPS1-1-TaxiGap.mp4 [28] Transfer # [29] THPS1-1-Transfer.mp4 [30] Transition Grind # [31] THPS1-1-Transition...
XCMKB: ZMK/Bluetooth Boards XCMKB: Key Remap Dear beginner, there is no real time key remap like Vial, but thanks to nickcoutsos for his work on Keymap Editor, a browser app allows you to load ZMK keymap code and manage it wi... XCMKB · xcmkb.com [1] Nice overview to getting started in zmk References: [1]: https://xcmkb.com/pages/zmk-bluetooth-boards
Check out tailscale [1] and their project github-action [2]. A GitHub Action to connect your workflow to your Tailscale network. References: [1]: https://github.com/tailscale [2]: https://github.com/tailscale/github-action
I recently discovered kubevpn [1] by kubenetworks [2], and it’s truly impressive. KubeVPN offers a Cloud Native Dev Environment that connects to kubernetes cluster network. References: [1]: https://github.com/kubenetworks/kubevpn [2]: https://github.com/kubenetworks

I run tailwind for my personal blog, whenever I update it, pre-commit goes in and fixes end of file. I’m sick of these things fighting each other, since it is a generated app it is going to et ignored from pre-commit from now on.

exclude: ^static/app.*\.css$
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v2.4.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-added-large-files
Mantis Clamp by zuberio | Download free STL model | Printables.com Very happy with this creation, it's a 35:1 PRINT-IN-PLACE!! dual stage planetary gear system (sun 1 : ring 2). | Download free 3D printable STL models Printables.com · printables.com [1] Zuberios Mantic clamp, would ya look at it. This thing looks like a handy tool for soldering. Excited to give it a try. [2] References: [1]: https://www.printables.com/model/48505-mantis-clamp/files [2]: https://dropper.waylonwalker.com/api/file/101b97c0-99c6-40f5-bc2c-9d0bef3babb0.webp
There are many Style Guides but this is Mine—zachleat.com A post by Zach Leatherman (zachleat) Zach Leatherman · zachleat.com [1] Zach’s site looks sick colors are all on point, the fonts are so good. I really like the idea of a style-guide. I think I might be renaming my Sample [2] post to style-guide now. References: [1]: https://www.zachleat.com/web/style-guide/ [2]: /sample/
[1] Astral uses just in CI, kinda cool to stumble into this setup in the wild. run: just release-run ${{ secrets.GITHUB_TOKEN }} ${{ github.event.inputs.sha }} ${{ github.event.inputs.tag }} And her is the accompanying justfile. you can see how it accepts arguments, and starts calling out to other just recipes. release-run token commit tag: #!/bin/bash set -eo pipefail rm -rf dist just release-download-distributions {{token}} {{commit}} datetime=$(ls dist/cpython-3.10.*-x86_64-unknown-linux-gnu-install_only-*.tar.gz | awk -F- '{print $8}' | awk -F. '{print $1}') just release-upload-distributions {{token}} ${datetime} {{tag}} just release-set-latest-release {{tag}} References: [1]: /static/https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml
fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da GitHub · github.com [1] fixing more ahrefs issues on the road to fixing all major issues within my control I found a ton of urls pointed to an url with a double slash, turns out I wasn’t properly referencing slug with post.slug. [2] References: [1]: https://github.com/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9 [2]: https://dropper.waylonwalker.com/api/file/d821eb80-aeaa-4f96-becd-7609b798663c.webp