Archive

All published posts

2600 posts latest post 2026-10-16
Publishing rhythm
Sep 2026 | 28 posts

The week ofApr 14 – Apr 20, 2025

Featured this weekLink

Check out ReznoRMichael and their project hollow-knight-completion-check. 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.

Note

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.

Note

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

Note

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.

Note

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.

Note

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

The week ofApr 7 – Apr 13, 2025

Featured this weekWriting

Link

I’m really excited about fdupes, an amazing project by adrianlopezroche. It’s worth exploring! FDUPES is a program for identifying or deleting duplicate files residing within specified directories.

Note

Spring 2025: Self-Hosted Update The one where things plod along. dbushell.com · dbushell.com 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.

Note

Characters Xe Iaso xeiaso.net 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.

Note

Note

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 keeping this in my back pocket for now. I just moved a few TB’s of data in the homelab and I am expecting a lot of duplication to show up.

Note

Diun Receive notifications when a Docker image is updated on a Docker registry crazymax.dev 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 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.

Note

Keel Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates keel.sh 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, I don’t like drift outside of that so Keel might not be the thing I want.

The week ofMar 31 – Apr 6, 2025

Featured this weekWriting

Changing k8s Storage Class - Migration Job

I’m setting up longhorn in my homelab, 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 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. Apply the manifests and wait for the job to complete. Cleanup I had chatgpt create me a script to help me find what is using the pvc so that it can be deleted. I had still had cronjob pods completed, so I had to delete them first.

Writing

New Phone Day Apr 2 2025

backdated This represents the first sign in to this device. 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 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 have no understand…

The week ofMar 24 – Mar 30, 2025

Featured this weekWriting

homelab drive ids

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 | +————————————————————————-+

Link

I recently discovered kubectl.nvim by Ramilito, and it’s truly impressive. ⎈ Streamline your Kubernetes management within Neovim—control and monitor your cluster seamlessly, all without leaving your coding environment.

Note

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 Damn he makes this easy. I did not know about. 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 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.

Note

The week ofMar 17 – Mar 23, 2025

Featured this weekWriting

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)"

Link

If you’re into interesting projects, don’t miss out on xpipe-webtop, created by xpipe-io. A containerized web-based desktop environment for XPipe

Link

xpipe by xpipe-io is a game-changer in its space. Excited to see how it evolves. Access your entire server infrastructure from your local desktop

Note

Redis configuration Overview of redis.conf, the Redis configuration file Docs · redis.io redis has all of their default self documented configs hosted here. You can pull the default redis.conf for any of the major releases.

The week ofMar 10 – Mar 16, 2025

Featured this weekWriting

THPS 1 Downtown Gaps

Previously THPS 1 Skate Park Gaps Big Ass Billboard Grind BS Gap BS Grind Burly Deck Gap Car Ollie Cheesy Deck Gap Death Grind Deck Gap Dirty Rail Glass Gap Kicker Gap Kicker 2 Edge Kicker 2 Street Rail 2 Rail Roof 2 Roof Secret Tunnel Entrance Sucky Room Gap T 2 T Gap Transfer Truck Gap Tunnel Gap Wimpy Gap Mechanic Gap Box Office Gap Skyway Gap Super Skyway Gap

Link

Just starred monolith by Y2Z. It’s an exciting project with a lot to offer. ⬛️ CLI tool and library for saving complete web pages as a single HTML file

Note

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 nice dataset to use for example / test projects. I’m using it to play with duckdb currently.

Note

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 Good report, make notes later

Note

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

Note

External Link r.jina.ai 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.

Note

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.

The week ofMar 3 – Mar 9, 2025

Featured this weekWriting

THPS 1 Skate Park Gaps

Previously THPS 1 Mall Gaps Next THPS 1 Downtown Gaps Acid Drop Across The Park Around The Bend HP Transfer Light Grind Over The Box Over The Pipe Over the Rafters Pool 2 Walkway Pool Hip Pool Rail Trans Rafter Rail Transfer Walkway Rail Trans Wall Gap Wall Gap Jr Whoop Gap

Writing

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 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. First Boss 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. Here is where he was on the map. First Mega Drill So this first mega drill was a mistake we w…

Link

If you’re into interesting projects, don’t miss out on homelab-compose, created by Doomlab7. A repository for the applications I run via docker-compose in my homelab

Link

I recently discovered smallpond by deepseek-ai, and it’s truly impressive. A lightweight data processing framework built on DuckDB and 3FS.

Note

PyApp ofek.dev 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.

The week ofFeb 24 – Mar 2, 2025

Featured this weekWriting

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 next THPS 1 Mall Gaps Ditchin Class Dumpster Rail Gap Funbox Table Transfer Garbage Ollie Gimme Gap Hall Pass gap All-Access Gap Huge Rail Kicker Gap Long Ass Rail Mini Gap Over a Footbridge Over the Air Condidtioner Park Gap Planter Gap Playground Rail Rail to Rail Transfer Roof To Awning Gap Roof To Roof Gap Funbox To Rail Transfer Downhill Manual Accross the Gym Roof Hop Down the Awning Perfectly Balanced Gigantic Rail Ridiculous Rail Got the badge

Writing

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 Next THPS 1 Skate Park Gaps Huge Stair Set Off A Mezzanine Coffee Grind The Flying Leap For the Whole Atrium Fountain Gap Exit Stage Right Exit Stage Left Over A Stair Set Over A Huge Stair Set Planter Gap Rail Combo Skater Excalator Gap Accross The Light Beam The Long Rail The Short Rail

Link

The work on kopf by nolar. A Python framework to write Kubernetes operators in just a few lines of code

Link

Link

Link

Just starred arcade by pythonarcade. It’s an exciting project with a lot to offer. Easy to use Python library for creating 2D arcade games.

Note

Note

Ergonomic Laptop — Evan and Katelyn Back pain ends here. Evan and Katelyn · evanandkatelyn.com 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.

Note

Note

The week ofFeb 17 – Feb 23, 2025

Featured this weekWriting

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 Big Rail Channel Gap Deck 2 Rail Face Plant High Rail Holy Shi Kicker 2 Ledge Kicker Gap Monster Grind Over The Pipe Secret Room Taxi 2 Ledge Taxi Gap Transfer Transition Grind

Writing

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

Link

Link

I recently discovered kubevpn by kubenetworks, and it’s truly impressive. KubeVPN offers a Cloud Native Dev Environment that connects to kubernetes cluster network.

Link

If you’re into interesting projects, don’t miss out on valkey-py, created by valkey-io. Valkey Python client based on a fork of redis-py

Link

I’m really excited about valkey, an amazing project by valkey-io. It’s worth exploring! A flexible distributed key-value datastore that is optimized for caching and other realtime workloads.

Photo journal · Feb 17 – Feb 23, 2025

In pictures 1 photographs

After that embarrasing death I made my way over to a touchstone I found and Woodie is back from the dead, but without his beloved Lucy, to get her we will need to go

Note

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 Nice overview to getting started in zmk

Note

Note

Note

Note

Note

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

Note

fix json schema · WaylonWalker/waylonwalker.com@deebd40 Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40 GitHub · github.com I found that I had Structured data has schema.org validation error on essentially every single page on my blog, turns out I had made some changes and have never tried to validate it. Damn json and its hatred towards trailing commas.

Note

Weblogging: Part 1 The one where I blog about blogging (part 1) dbushell.com · dbushell.com Long live RSS! Rss is not dead David, you are right there. I really agree with David that learning a topic well enough to form thoughts and write about it really help learning. You don’t need to be an expert, but forming your own thoughts, putting ideas in words takes a lot more than surface level knowledge. When you try to write or speak about something you quickly realize where your holes in understanding are. Blogging helps me learn. When I commit knowledge to writing it reinforces what I know and shines a spotlight on what I don’t. Most topics require additional research. Even then, I occasionally get things wrong, or miss different ways of thinking, and I welcome corrections. I’ll often update and enrich my posts based on feedback. Without my blog I’d miss other points of view. As they say, the best way to get an answer on the internet is not to pose a question, but to assert the wrong solution! Most feedback I get is constructive. Sometimes it’s blunt but I try not to read into unspoken sentiment. Some people are more direct. If the end result is positive learning, I can take a hit or…

Note

fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b GitHub · github.com In fixing a bunch of meta tags, I introduced Open Graph URL not matching canonical on every page by having trailing / on canonical and not on the. This commit will fix the error.

Note

Cotton Coder The one where I launch a new blog dbushell.com · dbushell.com I like Davids idea for cotton coder here, reminds me a lot of Thoughts, which turns out to be mroe commonly called a linkblog. I can relate to David heavily on gathering too many side projects and soem collecting more digital dust than you would really like them to. I use thoughts for quick publishing, very similar to David’s notes. I have tags and titles, but the titles are a reflection of the post I’m taking a note on. They are short and sweet, I put just enough thought into them without overthinking them. They live as a separate server hosted website, but the data gets pulled into my blog at build time, so they end up in the same place eventually.

Note

GitHub - valkey-io/valkey: A flexible distributed key-value database that is optimized for caching and other realtime workloads. A flexible distributed key-value database that is optimized for caching and other realtime workloads. - valkey-io/valkey GitHub · github.com valkey appears to be the largest open source fork of redis that was forked just before their transition to the new source available licenses. One notable thing missing from the readme is how to run with docker, which I saw in the valkey-py docs. You can install the python library with

Note

valkey Python client for Valkey forked from redis-py PyPI · pypi.org python bindings for valkey, forked from redis. one notable difference I see from redis is that you can install with libvalkey to autmatically get faster parsing support. For faster performance, install valkey with libvalkey support, this provides a compiled response parser, and for most cases requires zero code changes. By default, if libvalkey >= 2.3.2 is available, valkey-py will attempt to use it for response parsing.