Archive

All published posts

2620 posts latest post 2026-09-24 simple view
Publishing rhythm
Sep 2026 | 29 posts
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.
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.
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.
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.
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.
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.
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.

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.

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 understa…
External Link 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.

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

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

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

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 #

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 mistak…
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
I recently discovered smallpond by deepseek-ai, and it’s truly impressive. A lightweight data processing framework built on DuckDB and 3FS.
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 work on kopf by nolar. A Python framework to write Kubernetes operators in just a few lines of code

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 #

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

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 #
I recently discovered kubevpn by kubenetworks, and it’s truly impressive. KubeVPN offers a Cloud Native Dev Environment that connects to kubernetes cluster network.

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