Published

All published posts

2565 posts latest post 2026-07-13 simple view
Publishing rhythm
Jun 2026 | 27 posts
AI workloads on Talos Linux Companies are exploring how to run GPU accelerated workloads on Kubernetes. Sidero Labs · siderolabs.com [1] cool article for setting up talos linux with an nvidia gpu. What a wild world it we are living in where these devices that started out being only for hardcore gamers are becoming commonplace in servers and slowly entering the homelab [2] space. References: [1]: https://www.siderolabs.com/blog/ai-workloads-on-talos-linux/ [2]: /homelab/
- Damn prime makes an interesting point near then end of this video. He’s seen a bunch of people able to just throw down charts and shit at their company and end up being “the coding guy” cause they proompted something once. In a way I can relate, I got into software in a similar way, but at a time that it took a lot more hard work, understanding , and copy past from the right stack overflow. Based on some of the people around me at the time I can only imagine how some people must feel like they got pushed into it without wanting it, and now are building something they don’t know anything about with no care about it or care to build any expertise. Is the future proompted charts from enterprise chatgpt or do we only continue growing more need for software from here. [1] References: [1]: https://dropper.waylonwalker.com/api/file/d43265cd-7fe1-4cb4-a22e-d82a37a2e368.webp
I like duckdb’s [1] project pg_duckdb [2]. DuckDB-powered Postgres for high performance apps & analytics. References: [1]: https://github.com/duckdb [2]: https://github.com/duckdb/pg_duckdb
Just starred xan [1] by medialab [2]. It’s an exciting project with a lot to offer. The CSV magician References: [1]: https://github.com/medialab/xan [2]: https://github.com/medialab
I’m impressed by upvote-rss [1] from johnwarne [2]. Generate rich RSS feeds from Reddit, Hacker News, and Lemmy References: [1]: https://github.com/johnwarne/upvote-rss [2]: https://github.com/johnwarne
I had the grass for a hat, so I figured why not. I'm not sure if it really helps this time of year, but I thought it looked good on Woodie.
Looking for inspiration? rugpulls.dev [1] by caniszczyk [2]. No description available. References: [1]: https://github.com/caniszczyk/rugpulls.dev [2]: https://github.com/caniszczyk
I’m really excited about pangolin [1], an amazing project by fosrl [2]. It’s worth exploring! Tunneled Mesh Reverse Proxy Server with Identity and Access Control and Dashboard UI References: [1]: https://github.com/fosrl/pangolin [2]: https://github.com/fosrl
Looking for inspiration? Flexbox-Labs [1] by prazzon [2]. A web app for creating flexible layouts with the power of CSS Flexbox. References: [1]: https://github.com/prazzon/Flexbox-Labs [2]: https://github.com/prazzon
Check out llm-sort [1] by vagos [2]. It’s a well-crafted project with great potential. Sort input lines semantically with llm References: [1]: https://github.com/vagos/llm-sort [2]: https://github.com/vagos
On day two I had enough materials gathered to make the garden digamajig to prep the soil for gardening. I planted the few seeds that I stole from the birds right away.

fixed long standing nvim startup error

Here’s the diff, this is it. local M = {} M.setup = require("waylonwalker.setup") M.settings = require("waylonwalker.settings") + M.lazy = require("waylonwalker.lazy") M.options = require("waylonwalker.options") M.globals = require("waylonwalker.globals") M.keymap = require("waylonwalker.keymap") - M.lazy = require("waylonwalker.lazy") M.autocmds = require("waylonwalker.autocmds") M.util = require("waylonwalker.util") M.plugins = require("waylonwalker.plugins") M.snippets = require("waylonwalker.snippets") return M The error # [1] On first install of my dotfiles I’m presenting with this flashbang of an error filling the screen with red background. Its kinda hard to read, I’m not deep into lua and reading their tracebacks. It pops up in this pager that if I scroll too far it quits and the error is gone before I know what it is or how it got there. [2] For the longest time it just felt like it randomly showed up without much warning. I sent ai at the issue # [3] I...

Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I’ve been using NVIM_APPNAME to run a test nvim in a sandbox that wont bork my main install. This usually runs for me in under a minute, can be down under 15s if I remove some of the TreeSitter installs at the end. This beats a full docker build of my full devtainer to test out nvim packaging woes.

rm ~/.cache/wwtest -rf
rm ~/.local/share/wwtest -rf
rm ~/.config/wwtest -rf
cp -r nvim/.config/nvim/ ~/.config/wwtest
NVIM_APPNAME=wwtest nvim --headless "+Lazy sync" +qa
NVIM_APPNAME=wwtest nvim --headless "+TSUpdateSync" "+sleep 5000m" +qa
NVIM_APPNAME=wwtest nvim --headless "+MasonUpdate" +qa
NVIM_APPNAME=wwtest nvim --headless "+TSInstallSync! c cpp go lua python rust tsx javascript typescript vimdoc vim bash yaml toml vue just" +qa
NVIM_APPNAME=wwtest nvim --headless "+MasonInstall lua-language-server rustywind ruff ruff-lsp html-lsp typescript-language-server beautysh fixjson isort markdownlint stylua yamlfmt python-lsp-server" +qa
NVIM_APPNAME=wwtest nvim

I’ve started to use this as a just recipe to run before deploying a new version of my dotfiles. So far its pairing nicely with nvim-manager

Setting up 4G Backup with Google Fi and Netgear LM1200

I connected my home network to have 4G bakcup with Google Fi and Netgear LM1200. Goodle Fi offers free data-only sim cards that you can order from their service. It takes a couple of days, and a new sim arrives in the mail free of charge. It does pull data from your account, so if you are not on an unlimited plan be careful of how much you let go through the sim. I’ve owned this for a few years now, but it’s been disconnected for a good six months or so. I’m not s[e what happened, but it stopped recognizing the old sim card. no need to point out the coffee stains at the end, its definitely not related Follow the provided instuctions # [1] Activating the sim asked for a confirmation code shipped with the sim card, then brought me to this page. [2] Clicking Have a Different Device? brought up instructions to set up the APN in the LM1200. [3] Restart # [4] First thing for me was that the sim was not recognized, restarting the LM1200 did the trick to recognize it as a Google F...

ahrefs-cleanup-2024

This post is a big work in progress, expect it to keep getting better. Initial Score # [1] [2] 404 Not Found, generate a page for each tag # [3] [4] Title too long # [5] [6] 404 Not Found, comma separated tags # [7] Another hit on 404’s caused by tags, was tag parsing from thoughts into posts, this cause links to the full comma separated list of tags rather than one per tag. [8] You can see on the website the whole dang set of tags was being treated as a single tag. [9] Broken images # [10] I’m not fully sure what happened to all of these gifs in my old host and why they didn’t show up, but I moved them all and they are solid now. [11] I burned all of my January Credits # [12] So I had an issue with my self hosted [13] shots not making them fast enough for ahrefs, and essentially ddosing myself on one of their runs. The long wait times for images burnt all of my credits. Here was the next successful run with a HUGE improvement in overall score. [14] The tre...

When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering !! from normal mode puts you in command mode with :.! filled out. This runs a shell command, i.e. date for this example.

It outputs the following

Fri Jan 31 08:46:11 PM CST 2025

You can also pass in a date such as tommorrow by pasdding in the -d date -d tomorrow.

It outputs the following

Sat Feb 1 08:53:20 PM CST 2025

codeium just taught me this one with autocomplete

:put =strftime('%Y-%m-%d')

This outputs the following

2025-01-31

What I like about the :put =strftime( method is that you can add a format, but that is a lot more for me to remember than !!date

A few weeks later #

I’m going through a bunch of blog posts and dont want my date formats to change to the Wed Feb format so I broke down and made these keybindings. I think I’m still going to be using .!date a lot, but these keybindings will be nice for editing blog post frontmatter.

set("n", "<leader>dd", "<cmd>put =strftime('%Y-%m-%d')<cr>", { noremap = true, silent = true })
set("n", "<leader>dt", "<cmd>put =strftime('%Y-%m-%d %H:%M:%S')<cr>", { noremap = true, silent = true })
  • dd 2025-02-12
  • dt 2025-02-12 12:53:47
  • :.!date Wed Feb 12 12:53:47 PM CST 2025
Just after the first night started I found my way back to the center of the map and made a stone campfire. I really like to use the stone campfires as they last forever, you just have to add wood. I was lucky enough to find stone by the Tall Bird to make this one on first day.
I like DigitalHarbor7’s [1] project engineering-status-pages [2]. Static sites for engineering project status updates References: [1]: https://github.com/DigitalHarbor7 [2]: https://github.com/DigitalHarbor7/engineering-status-pages

Today I ran into an interesting question, why am I being asked to configure tzdata while installing npm. Turns out that the aptitude cli has a why command that very handily nails down why you have something installed on a debian based system.

Install aptitude #

apt install aptitude

Why tzdata #

Now we can query why we need tzdata and see the full chain with the root package being npm.

root@47685221fb82:/# aptitude why tzdata
i   npm        Depends  node-gyp
i A node-gyp   Depends  gyp (>= 0.1+20200513gitcaa6002)
i A gyp        Depends  python3:any
i A python3    Provides python3:any
i A python3    Depends  python3.12 (>= 3.12.3-0~)
i A python3.12 Depends  tzdata
On the first day I made a look around my home biome, and ran into a Tall Bird