Blog

Full Blog Posts

341 posts latest post 2026-05-11
Publishing rhythm
Feb 2026 | 6 posts

trying forgejo

WIP networks: forgejo: external: false services: server: image: codeberg.org/forgejo/forgejo:11 container_name: forgejo environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - forgejo volumes: - ./forgejo:/data ports: - '3000:3000' - '2222:22' docker-in-docker: image: docker:dind container_name: docker_dind privileged: true command: ["dockerd", "-H", "tcp://0.0.0.0:2375", "--tls=false"] restart: unless-stopped networks: [forgejo] runner: image: data.forgejo.org/forgejo/runner:4.0.0 container_name: forgejo-runner user: "1001:1001" depends_on: - docker-in-docker environment: DOCKER_HOST: tcp://docker-in-docker:2375 volumes: - ./runner-data:/data:Z,U # will hold .runner + cache command: /bin/sh -c "while :; do sleep 1; done" restart: unless-stopped networks: [forgejo]

blender donut tutorial 2025

First Launch # [1] [2] my setup # [3] [4] Add # [5] shift A bump resolution scale # [6] edit -> preferences -> interface -> resolution scale 1.25 [7] orbit without middle mouse button # [8] [9] viewport shading rendered # [10] [11] References: [1]: #first-launch [2]: https://dropper.waylonwalker.com/api/file/ecd7349a-b04c-4496-8b34-3f2c82bdd790.png [3]: #my-setup [4]: https://dropper.waylonwalker.com/api/file/0baedcf5-9b6a-4ee3-b18f-76e695e00a8c.png [5]: #add [6]: #bump-resolution-scale [7]: https://dropper.waylonwalker.com/api/file/d2c9fc7c-c689-4f6f-b2db-96bd8bb59ab3.png [8]: #orbit-without-middle-mouse-button [9]: https://dropper.waylonwalker.com/api/file/239a709b-7242-4a75-b100-f3a8cc533364.png [10]: #viewport-shading-rendered [11]: https://dropper.waylonwalker.com/api/file/cea5c464-53b2-4926-ab02-31107d84d23f.png
1 min read

command palettes are overrated

Command palettes are slow, and overrated, you should treat yourself better. You probably installed VSC*** out of the box and your co-workers see you using the mouse and reprimanded you as they should. Mouse usage is not OK if you are a software dev, you should have the cheap ass free mouse that came with your cousins dell machine five years ago and only use if for emergencies. If you want to be fast you cannot do that by moving cursors to imprecise locations and clicking with your hand. You are not a caveman, put down the stones and get with the damn times. You need to be moving with precision. Stage One, the command palette # [1] So you are taking your first few baby steps away from that Logitech MX Master and you need to get shit done, during these infant months the command palette is your friend. Use it you will be 10x faster than Razer Naga Ron from accounting. If you are in an IDE like VSC*** or a JEttedBrains editor they come with a command palette for running commands and f...
4 min read

just fucking use kubernetes

You want to run containers? JUST FUCKING USE KUBERNETES. Obvious satire If you don't like harsh language this is not the post for you. Obviously ripping off motherfuckingwebsite [1]. ThIs is AI SLoP [2] If you don't like if you can fuck off to the next post, I'm having fun here, but satire is not my strong suit and needed some help. Seealso - Should I kubernetes My Homelab [3] - The Wrong Reasons To Run Kubernetes In Your Homelab [4] - The Right Reasons To Run Kubernetes In Your Homelab [5] - I got the kubernetes in my basement autism [6] --- “But it’s complicated!” # [7] Shut up. Close twitter and fucking do something. Life is complicated. You know what else is complicated? Email. DNS. Life. Kubernetes is the least painful way to orchestrate containers at scale. Docker Compose is for your laptop. - Swarm is dead. - Nomad is just sad. - Systemd units? Get out of here. --- “But my app is small!” # [8] SO IS YOUR AMBITION. You could write a bunch of bash scripts a...

markata parallel render

_._ __/__ __ __ _/_ Recorded: 07:53:56 Samples: 71681 /_//_/// /_\ / //_// / //_'/ // Duration: 92.741 CPU time: 91.748 /_/ v4.5.1 Program: /home/waylon/git/waylonwalker.com/.venv/bin/markata build --pdb 92.740 Markata.run markata/__init__.py:443 `- 92.714 HookCaller.__call__ pluggy/_hooks.py:479 [2 frames hidden] pluggy 92.714 PluginManager._hookexec pluggy/_manager.py:106 |- 38.207 wrapper_register markata/hookspec.py:265 | |- 26.105 render plugins/link_collector.py:59 | | |- 10.012 BeautifulSoup.__init__ bs4/__init__.py:122 | | | [14 frames hidden] bs4, html | | |- 5.599 <listcomp> plugins/link_collector.py:181 | | |- 4.050 <listcomp> plugins/link_collector.py:173 | | |- 3.466 Markata.map markata/__init__.py:565 | | |`- 2.092 markata/__init__.py | | `- 0.942 BeautifulSoup.find_all bs4/element.py:2008 | | [2 frames hidden] bs4 | |- 9.107 render markata/plugins/render_markdown.py:260 | |`- 8.902 result_iterator concurrent/futures/_base.py:612 | | [5 frames hidden]...

principal-engineer-at-meta

Jake Bolam principal engineer at Meta, has some of the best career advice for those looking to become principal or just be better at their craft. This video [1] was such a banger I had to bring it in as a full post, and not just a thought. It was a random YouTube auto play, something that I probably wouldn’t have clicked on given title an thumbnail, but turned out to be very impactful. Jake is such a smart guy with a lot of great insights, and I can tell he thinks really quick on his feet, he just pulled all of these things out of his head on the fly. YT Algorithm Gold I don't know what it is about this title and thumbnail, but it gives me "ex google, ex facebook, ex microsoft, $100M engineer" vibes in a cringy and not satire kind of way. I would have never clicked on it, it autoplayed after a podcast and it hit, immediately I’m like who are these guys? subd and started this post it was so good. Long On Boarding # [2] Jake had a super long period of on boarding at meta, he came...

csv

name,age,city Alice,30,New York Bob,25,San Francisco Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago name,age,city Alice,30,New York Bob,25,San Francisco Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago Charlie,35,Chicago graph TD A-->B A-->C A-->D D-->E document.addEventListener('DOMContentLoaded', function() { (function() { const ctx = document.getElementById('chartjs-1'); new Chart(ctx, { "type": "bar", "data": { "labels": ["Red", "Blue"], "datasets": [{ "label": "Votes", "data": [12, 19] }] }, "options": { "responsive": true } }); })(); (function() { const ctx = document.getElementById('chartjs-2'); new Chart(ctx, { "type": "line", "data": { "labels": [ 65, 59, 80, 81, 56, 55, 40 ], "datasets": [ { "label": "My First Dataset", "data": [ 65, 59, 80, 81, 56, 55, 40 ], "fill": false, "bord...

perfect

Perfect is a made up word that humans use to describe something that is above average, or works really well for them. The idea of perfection is fleeting, as you think more deeply about something, you can continue to chase the idea of perfection to unimaginable senses. Sometimes perfect simply means good enough. Could there be something better, Always, but at what cost. If I spent 10 more minutes on this post would it be better, maybe, but I might fuck it up. If I spent my lifetime studying how humans read and think, sole focused on how it pertains to this post, ya it would get better. When I use this word perfect it’s not meant in the most literal sense of the word, but perfect to me, maybe good enough given the constraints I have, its the best thing I’ve got.

just

I just never quite understood why the word just can send people over the top. I get it when you don’t know someone, you don’t have history with them, and they come in saying you are doing something wrong. When you say “just,” you’re skipping over all the invisible complexity. You’re assuming the problem is simple, and that the person asking for help hasn’t already considered the obvious. You’re not seeing the constraints: Legacy code Business requirements Team conventions Time, budget, or technical debt Platform limitations ~https://www.neverjust.net/ If I’ve worked with someone for more than 6 months, we have established patterns for problems, libraries we use, and they are deep in the weeds of trying to fix something, I want to ask “Why don’t you just do the same thing we do everywhere else?” I don’t need a snarky ass response, I don’t need you to get bent out of shape about it. I am communicating that I do not know the damn constraints to this problem. I am communicating I ...

kraft

Kraft is the family gaming server that we started early 2025. Repopulating # [1] Villagers are really hard to get gong. We have this huge villager tower on the server, we nearly every bed filled, and one day we logged in and there were three. Not sure what happened until I witnessed one of them jump maybe 3 blocks down and off himself. I checked my last two villagers and they were each on one or two hearts left. We almost lost every single villager on the server. villager-tower-needs-repopulated.mp4 [2] To get villagers to breed and make baby villagers you need beds, which we already have, and food. I gave my guys some food and they started making baby villagers immediately, crisis averted as we start to get the first few fresh full health villagers on the server. repopulatingv4.mp4 [3] References: [1]: #repopulating [2]: https://dropper.waylonwalker.com/api/file/5c160226-1018-4b07-b3a2-a50588006c17.mp4 [3]: https://dropper.waylonwalker.com/api/file/9f618595-f998-4ba7-a925-92c...
1 min read

my nvim spellcheck setup

I’ve gone too long without a proper spellcheck setup in nvim. I know it’s there, I just don’t use it, I don’t have the right keybinds, like I do with vim date [1], to make it work, and its clunky. Default keybinds # [2] - z= show spell suggestions - zg add word to dictionary - zw remove word from dictionary - ]s jump to next misspelled word - [s jump to previous misspelled word I really struggle with bracketed keybinds, they don’t flow for me. I have to shift into it and hit two keys, you cant just pop through them with intent, it always feels clunky to me. Custom keybinds # [3] I barely use F-keys in my keymap so that was free game. On my keyboard I have F1-F9 in a numpad layout on my right hand, so F4-F6 are home row, these are super easy to pop through and update. I really refrain from using such high real estate keys like this unless it’s for something good, and I do a lot of writing in nvim, so fingers crossed I use the heck out of it. - jump to next misspelled word ...
2 min read

wants

Inspired by mara.town/wants [1] want but do not enjoy # [2] - New hardware that cannot be repaired - Disciplining Children - Nice landscaping which requires regular maintenance enjoy but do not want # [3] - breakfast - Fancy things - Manual Labor in moderation - Vacations to far away places References: [1]: https://maya.land/wants/ [2]: #want-but-do-not-enjoy [3]: #enjoy-but-do-not-want
1 min read

Linux Is About Choice

This Luke Smith video came across my feed Linux, Bitcoin: When Tech Projects Become “Too Popular…” Don’t forget the goal. [1]. It’s interesting to hear his perspective about Linux, FOSS, Free Software being the end goal, and that we are loosing sight of the goal. This sentiment really aligns with the early FOSS movement from Stallman, but was this ever the goal? Taken over by apathetic interests # [2] Luke talks about these projects getting taken over by people with no passion for the original goal of freedom and privacy. They want the projects to grow, get bigger, and become mainstream. This feels exactly the opposite of anything Luke would want, so my bias alarm goes off here. Honestly I do see some of the grossness of projects like this that were grassroots, for freedom and privacy get taken over for money grabs. I’m completely out on bitcoin so I cannot make any comment there, but I Truly believe that the Linux kernel is not a money grab as Luke makes the new face of bitcoin s...
6 min read

tinyapps

I’m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab [1]. The first three that I created are mostly chatgpt based, with a bit of hand edit after the fact, uploaded to minio and become an app on my k8s-pages [2] renamed The original title of this post was "Replacing Google Search Apps With Self Hosted Web Apps" I’m leaning on web wakelock [3] to keep the screen on while these apps are running, primarily clos, timer, and stopwatch. Clock # [4] A large displya clock. [5] Timer # [6] A simple timer that counts down from thet set time. [7] Stopwatch # [8] This is the one that inspired it all, I need to run a few stopwatches at work, and chose to just do it right in the google search with a few tabs running. [9] Dice # [10] A simple dice roller, this one is the one that I decided to start adding ? for help. [11] UUID # [12] It displays a uuid, thats it. ctrl + c to copy. [13] b64 # [1...

m9a devlog 1

It’s sad to see textualize.io close the doors, but textual is still alive and maintained as a n open source project. I tried to use it very early, and struggled, this was before docs and tutorials really existed, before a lot of the widgets and components existed. Then as we all do I got busy and moved on to other things in life and did not have the capacity to build TUIs. I like tuis # [1] I like tuis, I like staying in the terminal. I use lf [2] daily to move files around when I want something more than mv and cp. I use k9s [3] hourly to monitor and manage my kubernetes cluster. Are they worth the effort?? # [4] As awesome as tui’s are, they are more effort to build, and less automatable. I feel like the first stage into automation of a project really needs to be a good cli, and this is often good enough for the project and I move on. m9a (em - nine - ah) # [5] inspired by k9s Like I said I really like k9s and use it all the time, It really makes running kubectl commands a ...

hollow knight home row layout

I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT guidance, but mostly just figuring it out. I only just discovered the ⭐ ReznoRMichael hollow-knight-completion-check [1] which got me an extra 2% for a few items I must have got and not saved on, because I was sure I had them. Controller # [2] Hollow Knight is a game that can be played with keyboard or controller, You can use analog stick for movements, but they just translate to dpad, there really are no analog moves in the game. This makes it ripe for playing on pure keyboard. I really favor controller when there are more than one analog (throttle, brake, steering for example). On controller I’ve switched to only using d-pad as I feel like it gives me the most crisp of controls. It is really easy to miss a pogo on analog by hitting slightly left or right. My Keyboard # [3] My daily driver keyboard is a custom built 40% monoblo...

fix feed descriptions

Today I fixed a bug in markata that has been occurring for a few months where the description for posts come out as None if coming from cache, the issue was a pretty simple check and pull properly from cache. This fixes all the descriptions in feeds and metadata on the post. Better description # [1] While in there we went ahead and improved our get_description to more accurately return plain text without escaped characters, remove cutoff words, and add an elipsis if the description cuts off the text. More description # [2] While I was there I made longer form posts, til, blog-post use the super description of 500 characters instead of the regular 120 character description. Before # [3] [4] After # [5] [6] References: [1]: #better-description [2]: #more-description [3]: #before [4]: https://dropper.waylonwalker.com/api/file/8e9cf8e3-50ab-4e0a-be76-7241fbfe44c5.webp [5]: #after [6]: https://dropper.waylonwalker.com/api/file/29f96255-a89f-4ec6-b9e7-f61551366264.webp

portal-platformer-devlog-1

Here is the current state of my platformer yet to really be named, I want to make something in between hollow knight and portal. Starting # [1] I made one once in make code arcace on a pybadge. It was quick and dirty, but fun to work on. It had the basic of blocks that I could move, blocks i could put a portal onto, and a goal for each level. Some levels you can just walk through and some levels required you to really think about where to place the portal. History # [2] So this version of the game is a least 2 years in the making, I open it every few months give it a day or two and move on. Its mostly something that I work on with my son. He really likes to jump around on projects so its hard to make real progress on something, but we are hitting an age where he is able to come back to projects a little better. All of this is built in python, and mostly before vibe coding [3] was a thing, its mostly me trying to get out ideas as quick as my son is spitting out the the next idea...
2 min read

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

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...