Published

All published posts

2540 posts latest post 2026-06-16 simple view
Publishing rhythm
May 2026 | 58 posts
WebTUI Modular CSS Library that brings the beauty of Terminal UIs to the browser webtui.ironclad.sh [1] webtui, looks like a pretty sick design aesthetic. I like the keyboard driven nature of it, the look and feel is on point to a terminal interface, sadly it looks like it is not a 2 way street, you don’t automatically get a tui our of your website, just one that looks the part in the browser. References: [1]: https://webtui.ironclad.sh/
- I’ve never heard of niri, or a scrolling window manager, it looks quite interesting. I think tiling window manager misses out on named sessions and hotkey straight to tmux sessions, Brodi mentions not using tmux right before this segment. Niri looks quite interesting, but looks like it suffers specificity. maybe there are other tools that allow me to jump straight to something like brave, or steam, but I don’t see how I could jump to a specific terminal.
I recently discovered niri [1] by niri-wm [2], and it’s truly impressive. A scrollable-tiling Wayland compositor. References: [1]: https://github.com/niri-wm/niri [2]: https://github.com/niri-wm
I’m impressed by niri [1] from YaLTeR [2]. A scrollable-tiling Wayland compositor. References: [1]: https://github.com/YaLTeR/niri [2]: https://github.com/YaLTeR
Backups interrupted by full disk usage | Nic Payne I just got a message from HCIO that my primary backup script is late... This happens every now and then but I decided to check on it... Quickly `ssh` in and I n pype.dev [1] I’m way behind on my notification game and need to pick it up. maybe I’ll look into hcio as well. maybe I’ll look into something that goes straight to signal or just get things working on ntfy. An 80GB log file is massive and the kind of thing id like to see notifications more. References: [1]: https://pype.dev/backups-interrupted-by-full-disk-usage/
Queso Notes | Nic Payne It occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee pype.dev [1] Taking this as inspiration to do more non-tech on my blog, I’ve branched out into Posts tagged: gaming [2], but need take it to the next step. excited to watch pype.dev evolve as well. References: [1]: https://pype.dev/queso-notes/ [2]: /tags/gaming/
zk [1] by zk-org [2] is a game-changer in its space. Excited to see how it evolves. A plain text note-taking assistant References: [1]: https://github.com/zk-org/zk [2]: https://github.com/zk-org
If you’re into interesting projects, don’t miss out on alex [1], created by get-alex [2]. Catch insensitive, inconsiderate writing References: [1]: https://github.com/get-alex/alex [2]: https://github.com/get-alex
The work on cbfmt [1] by lukas-reineke [2]. A tool to format codeblocks inside markdown and org documents. References: [1]: https://github.com/lukas-reineke/cbfmt [2]: https://github.com/lukas-reineke
Check out Feel-ix-343 [1] and their project markdown-oxide [2]. PKM Markdown Language Server References: [1]: https://github.com/Feel-ix-343 [2]: https://github.com/Feel-ix-343/markdown-oxide
I like hougesen’s [1] project mdsf [2]. Format markdown code blocks using your favorite tools References: [1]: https://github.com/hougesen [2]: https://github.com/hougesen/mdsf
The work on treefmt [1] by numtide [2]. one CLI to format your repo [maintainers=@zimbatm,@brianmcgee] References: [1]: https://github.com/numtide/treefmt [2]: https://github.com/numtide

The rich console is themeable, I’ve been a long time user of rich and had no Idea. You can define your own theme keywords and use them just like you use normal rich keywords in square brackets like'[bold red]'.

from rich.console import Console
from rich.theme import Theme
custom_theme = Theme({
    "info": "dim cyan",
    "warning": "magenta",
    "danger": "bold red"
})
console = Console(theme=custom_theme)
console.print("This is information", style="info")
console.print("[warning]The pod bay doors are locked[/warning]")
console.print("Something terrible happened!", style="danger")
The ethics of README ads I’ve been considering accepting sponsorship again for my projects. Will McGugan · willmcgugan.github.io [1] I’ve long avoided running ads on my blog for the same reason. For a few months I ran an ad above the fold. It was a “Your Ad Here” kind of thing, and in the messaging I was looking for content relevant to my content, not google driven ads. This resulted in nothing, no hits, not a one. I’m kinda with Will on this one beer money is not worth degrading the project for. I seriously thought some of the big projects with a moderate level of success got a good cut for these sponsorships. Some of the companies are big companies, like how do they even go through meetings and decide who gets beer money without spending more than that in decision making resources. Maybe they have a guy with more autonomy than I would expect. References: [1]: https://willmcgugan.github.io/the-ethics-of-readme-ads/
minio/minio - Docker Image hub.docker.com [1] Browsing for the minio tag that I have running right now I discovered that you can do minio --version and you get the same version that matches the docker tag, this is super convenient and helpful. I also notice that they use timestamped version numbers. I kinda dont mind this. It feels easy to understand how far behind it is. I really appreciate that the version in the container matches the version inside the container. It’s not as pretty or flexible as semver, it does not communicate trees of majors and minors, but how often do we continue supporting/patching older majors and minors, in my experience only really big teams or teams with sufficient motivation are doing this. food for thought. References: [1]: https://hub.docker.com/r/minio/minio/tags?name=RELEASE.2025-04-08

You can unset multiple environment variables at once. I did not know this was a thing, its something that ended up happening organically on a call and asking someone to run unset. They had never done it before and did not know how it works, but did exactly as I said instead of what I meant. I like this handy shortcut doing it in one line rather than each one individually, I will be using this in the future. You might need this for something like running aws cli commands with localstack.

unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION
- I am going to start trying to employ this rhythm to my writing. I’m not very sure how I feel about it, there is something almost too assertive about it. It’s giving me a (i’m great and you should too) kind of vibe. I want to become more assertive in my writing. I’m giving this a shot and see what I learn, you might notice in my tils.

i3lock is a fantastic lockscreen for tiling window managers.

If you are using a tiling window manager within a public space you need to add a lockscreen. I have one machine that I take with me to a public space. Its secure enough that I can leave it, but not secure enough that I want to leave it unlocked. So when I need to leave it behind for the restroom I need to lock it up.

arch wiki

paru -S i3lock
# or
apt install i3lock

Now that you have i3lock installed lets lock that screen.

# lock it with a pure white flashbang
i3lock

# lock it with a black background
i3lock -c 000000

# lock it with a custom color
i3lock -c 2e1330

# lock it with a wallpaper
i3lock -c 000000 ~/Pictures/Wallpapers/mywallpaper.png

You can use your window manager or something more generic like xbindkeys to set a hotkey. This way you don’t have to open a terminal and type out the command every time you leave your desk. You can just press something like SUPER+L like you would on other OS’s.

Fancy #

If you like it a bit fancier, you can use i3lock-fancy, it can blur, pixelate, and greyscale your current screen. I did not really like this because you can still tell what is going on the screen. It’s probably secure enough and looks better, but I went with regular i3lock.

paru -S i3lock-fancy-git
# or
apt install i3lock-fancy

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
- This talk about live store really made me think about database transactions in a new way. They are talking about live-store, and the complexity of distributed applications like a notes app with the ability to go offline and continue working. The complexity of resyncing each instance is not simple, conflict resolution accross all the possible installs that may or may not even be online is a really hard problem. They go deep on discussing an event driven paradigm that is driven off of a log of events and how this changes how we deal with databases. Using the event log as the source of truth we can do things like forget about database migrations, we can replay all of the events onto a new database. Its very interesting to rethink in terms of a log system that speaks in terms of understandable events (not table operations) as the source of truth for an application.