Archive

All published posts

2501 posts latest post 2026-06-21 simple view
Publishing rhythm
May 2026 | 56 posts

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
Vectorizing Your Databases with Steve Pousty What exactly is an LLM doing and why do you need to learn so many new terms? Steve Pousty is here to explain that most of those new terms are things you already kno… Fork Around And Find Out Β· fafo.fm [1] Steve is such a great listen, the neurospicy 🌢️ rambles this episode goes on is so relatable. I feel like I really missed out on some great takes on intellij vs neovim, but got some really great knowledge about vector db’s, embedding, text compression, similarities to vector algegra like infinite craft. Just popped open infinitecraft and I’ve definitely played this with my kids before, super fun, just could not remember the name of this one. I do remember an android one as well that is alchemist or something like that, which we have also played a lot. References: [1]: https://www.fafo.fm/vectorizing-your-databases-with-steve-pousty/
External Link fafo.fm [1] This episode really got me thinking about the difference between HA and DR and my approach to each one. They talk about it from the perspective of a cach cow kind of app rather than a homelab [2] or internal tooling, but think of HA as 9’s how many 9s are we willing to pay for, tink of DR as dollars how many dollars will we loose during the period of recovery. So much more in the episode, a lot of talk around cloud vendors and what they give you vs a purpose build platform with HA and DR in mind. References: [1]: https://www.fafo.fm/recovering-from-disaster-with-seth-eliot/ [2]: /homelab/
Just starred kubero [1] by kubero-dev [2]. It’s an exciting project with a lot to offer. A free and self-hosted [3] PaaS alternative to Heroku / Netlify / Coolify / Vercel / Dokku / Portainer running on Kubernetes References: [1]: https://github.com/kubero-dev/kubero [2]: https://github.com/kubero-dev [3]: /self-host/

I’ve been using ruff to lint my python code for quite awhile now, I was pretty early to jump on it after release. Some of my projects have had a nice force-single-line setting and some have not. I dug into the docs and it was not clear what I needed to make it work.

[tool.ruff]
select = ['I'] # you probably want others as well

[tool.ruff.isort]
force-single-line = true

Turns out I was missing Isort in the select list.

- Astral is doing great things in the python industry. They are disrupting entire categories of tools with extremely fast, easy to use, and feature rich alternatives that make it really hard to keep using the incumbent. So far I am seeing no signs of evil, sometimes with such a disrupter there is some sort of downside that make it hard to want to do the switch. In the interview they even mention things like leaning on lsp so that it works across all editors rather than building out vscode integrations that work for most developers. As a neovim user I greatly apreciate this.
Playground | ty An in-browser playground for ty, an extremely fast Python type-checker written in Rust. types.ruff.rs [1] ty, has a playground running at types.ruff.rs. You can edit code in there and see what the type checker results would be in browser. This looks good, excited to see it running in my lsp. Here is an example where a Optional may not be defined. [2] Checking for existance before using it resolves the issue. [3] References: [1]: https://types.ruff.rs/ [2]: https://dropper.waylonwalker.com/api/file/783e4d9e-8b23-4304-8921-2ae05aebcc8a.webp [3]: https://dropper.waylonwalker.com/api/file/cc28335c-4130-4bf4-829d-0ff39f2aa32d.webp

I was looking back at my analytics page today and wondered what were my posts about back at the beginning. My blog is managed by markata so I looked at a few ways you could pull those posts up. Turns out it’s pretty simple to do, use the markata map with a filter.

from markata import Markata

m.map('title, slug, date', filter='date.year==2016', sort='date')

Note

the filter is python eval that should evaluate to a boolean, all of the

attributes of the post are available to filter on.

Result #

[
    ('⭐ jupyterlab jupyterlab', 'jupyterlab-jupyterlab', datetime.date(2016, 12, 13)),
    ('⭐ nickhould tidy-data-python', 'nickhould-tidy-data-python', datetime.date(2016, 12, 9)),
    (
        '⭐ mikeckennedy write-pythonic-code-demos',
        'mikeckennedy-write-pythonic-code-demos',
        datetime.date(2016, 11, 22)
    ),
    (
        '⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast',
        'mikeckennedy-write-pythonic-code-for-better-data-science-webcast',
        datetime.date(2016, 11, 22)
    ),
    ('⭐ rajshah4 dlgroup', 'rajshah4-dlgroup', datetime.date(2016, 11, 18)),
    ('⭐ pandas-dev pandas', 'pandas-dev-pandas', datetime.date(2016, 10, 5))
]

You could use the list command as well right within your shell and the same map and filters work.

⬒ [devtainer-0.1.3] ❯ markata list --map title --filter='date.year==2016'
[22:35:06] 2088/2145 posts skipped                                                                       skip.py:36
           57/2145 posts not skipped                                                                     skip.py:37

⭐ pandas-dev pandas
⭐ rajshah4 dlgroup
⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast
⭐ mikeckennedy write-pythonic-code-demos
⭐ nickhould tidy-data-python
⭐ jupyterlab jupyterlab

You could also do it with jin right inside of a markdown post using the jinja_md plugin.

{% raw %}
{% for title, slug, date in markata.map('title, slug, date', filter='date.year==2016', sort='date') %}
* [{{title}}]({{slug}}) - {{date}}
{% endfor %}
{% endraw %}

Note

You do have to `jinja: true` in the frontmatter of the post.

Result #

{% for title, slug, date in markata.map(’title, slug, date’, filter=β€˜date.year==2016’, sort=β€˜date’) %}

ty An extremely fast Python type checker, written in Rust. PyPI Β· pypi.org [1] Astral is working on some great things around python, they have created a high standard for python tooling built on rust that works really well, runs fast and covers everything in the space it resides in. ty appears to be their linter coming soon. References: [1]: https://pypi.org/project/ty/
3D Printable Power Brick Bracket Designer Generate custom 3D printable power brick brackets for your devices. Design and export your own mounting solutions. Bracket Engineer Β· bracket.engineer [1] This is madness that Wes Bos made this with manifold.js and no openscad! Yes, I have these stupid brackets everywhere, yes, I hand model my own brackets. No I don’t do it enough. I don’t like that these model generators like openscad cannot make fillets and chamfers, but I appreciate the heck out of the speed and automation you can make iterations of things. Link to the promo video. https://bsky.app/profile/wesbos.com/post/3lo4h7unk6s2i References: [1]: https://bracket.engineer/?width=113.5&height=63&depth=98&bracketThickness=3&ribbingCount=9&ribbingThickness=2.5&holeDiameter=5&holeCount=1&earWidth=17&keyHole=on&color=%2344ff00
bracket.engineer [1] by wesbos [2] is a game-changer in its space. Excited to see how it evolves. Generate 3D printable power brick brackets. References: [1]: https://github.com/wesbos/bracket.engineer [2]: https://github.com/wesbos
661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac… ShopTalk Β· shoptalkshow.com [1] Chris hit me where it feels about 10 minutes in. He said he has not been writing on his site as much lately and how hard it is to get back in. He mentions having a baby idea of a post, but then having the thought do you really want to come back from a long break with this! Momentum is a b**** when you got it you cant stop, and when you don’t you can’t stop. References: [1]: https://shoptalkshow.com/661/
- How is usability and it doing the thing I paid for it to do a selling point?? Any time I’ve touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse.
- How is usability and it doing the thing I paid for it to do a selling point?? Any time I’ve touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse.
A quote from Mark Zuckerberg You also mentioned the whole Chatbot Arena thing, which I think is interesting and points to the challenge around how you do benchmarking. How do you know what models are … Simon Willison’s Weblog Β· simonwillison.net [1] Interesting how confidently he says we can easily go to the top. really makes you wonder what we the normies are leaving on the table by using these general purpose models and what could be achieved with really tuned in models. Could I make an automatic blog tagger more accurately, maybe smaller, maybe tuned so well it runs fine on cpu? References: [1]: https://simonwillison.net/2025/May/1/mark-zuckerberg/#atom-everything
P. Martin Ortiz: Web apps can easily adapt to whatever device you’re on. A single responsive website can run on your desktop, phone, tablet, or even a VR headset. What’s even more, they can be ... Chris Coyier Β· chriscoyier.net [1] The web is everywhere, its the one true write once and run anywhere platform. Millions sunk into browser performance and things like the v8 engine allow us to run our shitty websites anywhere and it still runs good…. most of the time References: [1]: https://chriscoyier.net/2025/04/30/12292/
Helm - Postiz Documentation Install Postiz using Kubernetes and Helm Postiz Documentation Β· docs.postiz.com [1] I didn’t realize that postiz had a helm chart, I just hand rolled mine based on the compose file they provide. I went from running the compose stack locally to running in my homelab [2] with kubernetes. I am using cnpg rather than a postgres container which I really like the workflow of as far as backup and restore. The one hiccup I ran into was changing the domain from localhost to my homelab domain killed all of my integrations and they needed the redirect url updated. References: [1]: https://docs.postiz.com/installation/kubernetes-helm [2]: /homelab/

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
Check out goose [1] by block [2]. It’s a well-crafted project with great potential. an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM References: [1]: https://github.com/block/goose [2]: https://github.com/block
Check out kubernetes-mcp-server [1] by manusa [2]. It’s a well-crafted project with great potential. Model Context Protocol (MCP) server for Kubernetes and OpenShift References: [1]: https://github.com/manusa/kubernetes-mcp-server [2]: https://github.com/manusa
Looking for inspiration? kubernetes-mcp-server [1] by containers [2]. Model Context Protocol (MCP) server for Kubernetes and OpenShift References: [1]: https://github.com/containers/kubernetes-mcp-server [2]: https://github.com/containers
Check out punkpeye [1] and their project awesome-mcp-servers [2]. A collection of MCP servers. References: [1]: https://github.com/punkpeye [2]: https://github.com/punkpeye/awesome-mcp-servers
I’m really excited about any-agent [1], an amazing project by mozilla-ai [2]. It’s worth exploring! A single interface to build and evaluate different agent frameworks References: [1]: https://github.com/mozilla-ai/any-agent [2]: https://github.com/mozilla-ai
Check out dtnewman [1] and their project zev [2]. A simple CLI tool to help you remember terminal commands References: [1]: https://github.com/dtnewman [2]: https://github.com/dtnewman/zev
Looking for inspiration? Reloader [1] by stakater [2]. A Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig – [✩Star] if you’re using it! References: [1]: https://github.com/stakater/Reloader [2]: https://github.com/stakater
I’m impressed by bazzite-arch [1] from ublue-os [2]. A ready-to-game Arch Linux based OCI designed for use exclusively in distrobox. References: [1]: https://github.com/ublue-os/bazzite-arch [2]: https://github.com/ublue-os
ublue-os [1] has done a fantastic job with arch-distrobox [2]. Highly recommend taking a look. An Arch Linux OCI meant for use exclusively in Distrobox References: [1]: https://github.com/ublue-os [2]: https://github.com/ublue-os/arch-distrobox
Check out ReznoRMichael [1] and their project hollow-knight-completion-check [2]. App for reading and analyzing a Hollow Knight save file. Shows what remains to do for full 112% Game Completion, Achievements, Hunter’s Journal, Collectibles, True Completion %. Includes a self-designed Hint system. References: [1]: https://github.com/ReznoRMichael [2]: https://github.com/ReznoRMichael/hollow-knight-completion-check
- This is a wild concept for a slicer, essentially he didn’t even make a slicer just a crazy pre-process and post prossess to cura slicer, deforming the part until it doesn’t have any overhangs, creating a normal planar slice, then undeforming the output from cura. He also mentions that the rapid moved needed modified as well. I’m assuming this is because they are generally long distances and not short, without breaking these long lines up we would still end up wtih a straight line after deform.
Marp: Markdown Presentation Ecosystem Marp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document. marp.app [1] Intersting markdown presentation tool, Looks very simple. I really like split on --- much better than by h1 or h2. Their theme looks really nice in the screenshots. References: [1]: https://marp.app/#get-started
- How to make an entire clickable without presenting the entire content of the card as the link title. These videos are great, I’ve ran into these types of problems so many times, and definitely did not know about things like isolate to keep the z-index scoped to one element. - isolate - scope z-index inside this element so that it does not leak out. - [.relative [.absolute, inset-0, z-10]] - the inset zero is a modern shorthand for zeroing all sides, top-0, right-0, bottom-0, left-0.
- This is an absolute banger of a review by prime and Dylan Beetle. I love the similar takes with different perspectives, would really like to see them podcast together, but this one way style interview does really well to cover a lot of issues in open source, rug pulls, version pinning, thankless maintainers, what its like to open source from a large company.
Perils of Self-Hosting We speak to Kevin and Patricia from Traefik, discuss Alex's recent ZFS snafu and we wonder if the new Chromecasts can match up to the Nvidia Shield. Self-Hosted Β· selfhosted.show [1] Interesting takes on Diun here. I agree that I like to be in control of updates and pinning not to latest. both seemed like they weren’t going to run it because they can look up the latest version. Maybe I need to be less aggressive on keeping things up to date and its a me problem. I just got diun setup and hooked into ntfy, and I kinda like the automated checklist of new images that I can review and update. To be a bit more clear, having control over changes coming in from others, even if I dont care to see the changelog, it is nice to roll out an update, have it in your git [2] history, watch it deploy and work like before, if not roll back and read the changelog. For internal applications I’m down for automated releases like argo image updater give you, this thing has already gone through review, launch the damn thing at least to a dev space. References: [1]: https://selfhosted.show/29?t=637 [2]: /glossary/git/
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...
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