From 61e2bcc0a27874d179c77b7ad4d413bfae32f5b7 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 8 Feb 2026 22:39:34 +0200 Subject: Update content for gemtext --- gemfeed/atom.xml | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'gemfeed/atom.xml') diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml index 696ba9c8..31c9936a 100644 --- a/gemfeed/atom.xml +++ b/gemfeed/atom.xml @@ -1,6 +1,6 @@ - 2026-02-08T18:17:43+02:00 + 2026-02-08T22:37:47+02:00 foo.zone feed To be in the .zone! @@ -99,7 +99,7 @@ bind-key e run-shell -b "tmux display-message -p '#{pane_id}'
Prefilled prompt text

-And here is the full script. It is a bit ugly since it's shell (written with Cursor Agent with GPT-5.2-Codex), and I might (let) rewrite it in Go with propper unit tests, config-file, multi-agent support and release it once I have time. But it works well enough for now.
+And here is the full script. It is a bit ugly since it's shell (written with Cursor Agent with GPT-5.2-Codex), and I might (let) rewrite it in Go with proper unit tests, config-file, multi-agent support and release it once I have time. But it works well enough for now.

Update 2026-02-08: This functionality has been integrated into the hexai project (https://codeberg.org/snonux/hexai) with proper multi-agent support for Cursor Agent, Claude Code CLI, and Ampcode. The hexai version includes unit tests, configuration files, and better agent detection. While still experimental, it's more robust than this shell script. See the hexai-tmux-edit command for details.

@@ -3614,7 +3614,7 @@ spec: 2024-07-07 "The Stoic Challenge" book notes
2024-05-01 "Slow Productivity" book notes
2023-11-11 "Mind Management" book notes
-2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes
+2023-07-17 "Software Developers Career Guide and Soft Skills" book notes
2023-05-06 "The Obstacle is the Way" book notes
2023-04-01 "Never split the difference" book notes
2023-03-16 "The Pragmatic Programmer" book notes
@@ -7126,7 +7126,7 @@ content = "{CODE}" f3s: Kubernetes with FreeBSD - Part 6: Storage gemini://foo.zone/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi - 2025-07-13T16:44:29+03:00, last updated: 27.01.2026 + 2025-07-13T16:44:29+03:00, last updated Tue 27 Jan 10:09:08 EET 2026 Paul Buetow aka snonux paul@dev.buetow.org @@ -7136,7 +7136,7 @@ content = "{CODE}"

f3s: Kubernetes with FreeBSD - Part 6: Storage



-Published at 2025-07-13T16:44:29+03:00, last updated: 27.01.2026
+Published at 2025-07-13T16:44:29+03:00, last updated Tue 27 Jan 10:09:08 EET 2026

This is the sixth blog post about the f3s series for self-hosting demands in a home lab. f3s? The "f" stands for FreeBSD, and the "3s" stands for k3s, the Kubernetes distribution used on FreeBSD-based physical machines.

@@ -7209,7 +7209,7 @@ content = "{CODE}"

Introduction



-In the previous posts, we set up a WireGuard mesh network. In the future, we will also setting up a Kubernetes cluster. Kubernetes workloads often require persistent storage for databases, configuration files, and application data. Local storage on each node has significant limitations:
+In the previous posts, we set up a WireGuard mesh network. In the future, we will also set up a Kubernetes cluster. Kubernetes workloads often require persistent storage for databases, configuration files, and application data. Local storage on each node has significant limitations:

  • No data sharing: Pods (once we run Kubernetes) on different nodes can't access the same data
  • @@ -7623,13 +7623,13 @@ EOF
  • f0_to_f1_nfsdata: Replicates NFS data every minute for faster failover recovery
  • f0_to_f1_freebsd: Replicates FreeBSD VM every ten minutes (less critical)

-The FreeBSD VM is only used for development purposes, so it doesn't require as frequent replication as the NFS data. It's off-topic to this blog series, but it showcases, hows zrepl's flexibility in handling different datasets with varying replication needs.
+The FreeBSD VM is only used for development purposes, so it doesn't require as frequent replication as the NFS data. It's off-topic to this blog series, but it showcases how zrepl's flexibility in handling different datasets with varying replication needs.

Furthermore:

  • We're specifically replicating zdata/enc/nfsdata instead of the entire zdata/enc dataset. This dedicated dataset will contain all the data we later want to expose via NFS, keeping a clear separation between replicated NFS data and other local encrypted data.
  • -
  • The send: encrypted: false option turns off ZFS native encryption for the replication stream. Since we're using a WireGuard tunnel between f0 and f1, the data is already encrypted in transit. Disabling ZFS stream encryption reduces CPU overhead and improves replication performance.
  • +
  • We use send: encrypted: true to keep the replication stream encrypted. While WireGuard already encrypts in transit, this provides additional protection. For reduced CPU overhead, you could set encrypted: false since the tunnel is secure.

Configuring zrepl on f1 (sink)



@@ -10303,7 +10303,7 @@ http://www.gnu.org/software/src-highlite --> 2024-07-07 "The Stoic Challenge" book notes
2024-05-01 "Slow Productivity" book notes
2023-11-11 "Mind Management" book notes
-2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes
+2023-07-17 "Software Developers Career Guide and Soft Skills" book notes
2023-05-06 "The Obstacle is the Way" book notes
2023-04-01 "Never split the difference" book notes
2023-03-16 "The Pragmatic Programmer" book notes
@@ -12446,7 +12446,7 @@ __ejm\___/________dwb`---`______________________ 2024-07-07 "The Stoic Challenge" book notes
2024-05-01 "Slow Productivity" book notes
2023-11-11 "Mind Management" book notes
-2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes
+2023-07-17 "Software Developers Career Guide and Soft Skills" book notes
2023-05-06 "The Obstacle is the Way" book notes
2023-04-01 "Never split the difference" book notes
2023-03-16 "The Pragmatic Programmer" book notes
@@ -12459,7 +12459,7 @@ __ejm\___/________dwb`---`______________________ f3s: Kubernetes with FreeBSD - Part 4: Rocky Linux Bhyve VMs gemini://foo.zone/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.gmi - 2025-04-04T23:21:01+03:00, updated Fri 26 Dec 08:51:06 EET 2025 + 2025-04-04T23:21:01+03:00, last updated Fri 26 Dec 08:51:06 EET 2025 Paul Buetow aka snonux paul@dev.buetow.org @@ -12469,7 +12469,7 @@ __ejm\___/________dwb`---`______________________

f3s: Kubernetes with FreeBSD - Part 4: Rocky Linux Bhyve VMs



-Published at 2025-04-04T23:21:01+03:00, updated Fri 26 Dec 08:51:06 EET 2025
+Published at 2025-04-04T23:21:01+03:00, last updated Fri 26 Dec 08:51:06 EET 2025

This is the fourth blog post about the f3s series for self-hosting demands in a home lab. f3s? The "f" stands for FreeBSD, and the "3s" stands for k3s, the Kubernetes distribution used on FreeBSD-based physical machines.

@@ -12570,7 +12570,7 @@ paul@f0:~ % doas vm switch create public paul@f0:~ % doas vm switch add public re0
-Bhyve stores all it's data in the /bhyve of the zroot ZFS pool:
+Bhyve stores all its data in the /bhyve of the zroot ZFS pool:

-
[root@r0 ~] % dnmcli connection modify enp0s5 ipv4.address 192.168.1.120/24
-[root@r0 ~] % dnmcli connection modify enp0s5 ipv4.gateway 192.168.1.1
-[root@r0 ~] % dnmcli connection modify enp0s5 ipv4.DNS 192.168.1.1
-[root@r0 ~] % dnmcli connection modify enp0s5 ipv4.method manual
-[root@r0 ~] % dnmcli connection down enp0s5
-[root@r0 ~] % dnmcli connection up enp0s5
+
[root@r0 ~] % nmcli connection modify enp0s5 ipv4.address 192.168.1.120/24
+[root@r0 ~] % nmcli connection modify enp0s5 ipv4.gateway 192.168.1.1
+[root@r0 ~] % nmcli connection modify enp0s5 ipv4.DNS 192.168.1.1
+[root@r0 ~] % nmcli connection modify enp0s5 ipv4.method manual
+[root@r0 ~] % nmcli connection down enp0s5
+[root@r0 ~] % nmcli connection up enp0s5
 [root@r0 ~] % hostnamectl set-hostname r0.lan.buetow.org
 [root@r0 ~] % cat <<END >>/etc/hosts
 192.168.1.120 r0 r0.lan r0.lan.buetow.org
@@ -15805,7 +15805,7 @@ http://www.gnu.org/software/src-highlite -->
 2024-07-07 "The Stoic Challenge" book notes
2024-05-01 "Slow Productivity" book notes
2023-11-11 "Mind Management" book notes
-2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes
+2023-07-17 "Software Developers Career Guide and Soft Skills" book notes
2023-05-06 "The Obstacle is the Way" book notes
2023-04-01 "Never split the difference" book notes
2023-03-16 "The Pragmatic Programmer" book notes
@@ -16461,7 +16461,7 @@ jgs \\`_..---.Y.---.._`// 2024-07-07 "The Stoic Challenge" book notes (You are currently reading this)
2024-05-01 "Slow Productivity" book notes
2023-11-11 "Mind Management" book notes
-2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes
+2023-07-17 "Software Developers Career Guide and Soft Skills" book notes
2023-05-06 "The Obstacle is the Way" book notes
2023-04-01 "Never split the difference" book notes
2023-03-16 "The Pragmatic Programmer" book notes
@@ -16873,7 +16873,7 @@ r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\ Terminal multiplexing with `tmux` - Z-Shell edition gemini://foo.zone/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.gmi - 2024-06-23T22:41:59+03:00 + 2024-06-23T22:41:59+03:00, last updated Fri 02 May 00:10:49 EEST 2025 Paul Buetow aka snonux paul@dev.buetow.org @@ -16883,7 +16883,7 @@ r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\

Terminal multiplexing with tmux - Z-Shell edition



-Published at 2024-06-23T22:41:59+03:00; Last updated 2025-05-02
+Published at 2024-06-23T22:41:59+03:00, last updated Fri 02 May 00:10:49 EEST 2025

This is the Z-Shell version. There is also a Fish version:

@@ -16969,7 +16969,7 @@ http://www.gnu.org/software/src-highlite --> alias tssh=tmux::cluster_ssh

-Note all tmux::...; those are custom shell functions doing certain things, and they aren't part of the Tmux distribution. But let's run through every aliases one by one.
+Note all tmux::...; those are custom shell functions doing certain things, and they aren't part of the Tmux distribution. But let's run through every alias one by one.

The first two are pretty straightforward. tm is simply a shorthand for tmux, so I have to type less, and tl lists all Tmux sessions that are currently open. No magic here.

@@ -16981,7 +16981,7 @@ http://www.gnu.org/software/src-highlite --> by Lorenzo Bettini http://www.lorenzobettini.it http://www.gnu.org/software/src-highlite --> -
# Create new session and if alread exists attach to it
+
# Create new session and if already exists attach to it
 tmux::new () {
     readonly session=$1
     local date=date
@@ -17289,7 +17289,7 @@ bind-key T choose-tree
 
The third one, choose-tree, opens a tree view in Tmux listing all sessions and windows. This one is handy to get a better overview of what is currently running in any local Tmux session. It looks like this (it also allows me to press a hotkey to switch to a particular Tmux window):

-Tmux sessiont tree view
+Tmux session tree view


The last remaining lines in my configuration file are:
@@ -17811,7 +17811,7 @@ http://www.gnu.org/software/src-highlite --> 2024-07-07 "The Stoic Challenge" book notes
2024-05-01 "Slow Productivity" book notes (You are currently reading this)
2023-11-11 "Mind Management" book notes
-2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes
+2023-07-17 "Software Developers Career Guide and Soft Skills" book notes
2023-05-06 "The Obstacle is the Way" book notes
2023-04-01 "Never split the difference" book notes
2023-03-16 "The Pragmatic Programmer" book notes
-- cgit v1.2.3