From 36227f09dd96ee54e13f581f2286e6594d8c2136 Mon Sep 17 00:00:00 2001
From: Paul Buetow Lazy Evaluation with Standard ML
+
+Published at 2010-05-07T08:17:59+01:00
+
+
+ _____|~~\_____ _____________
+ _-~ \ | \
+ _- | ) \ |__/ \ \
+ _- ) | | | \ \
+ _- | ) / |--| | |
+ __-_______________ /__/_______| |_________
+( |---- | |
+ `---------------'--\\\\ .`--' -Glyde-
+ `||||
+
+
+In contrast to Haskell, Standard SML does not use lazy evaluation by default but an eager evaluation.
+
+https://en.wikipedia.org/wiki/Eager_evaluation
+https://en.wikipedia.org/wiki/Lazy_evaluation
+
+
+You can solve specific problems with lazy evaluation easier than with eager evaluation. For example, you might want to list the number Pi or another infinite list of something. With the help of lazy evaluation, each element of the list is calculated when it is accessed first, but not earlier.
+
+Emulating lazy evaluation in SML
+
+However, it is possible to emulate lazy evaluation in most eager evaluation languages. This is how it is done with Standard ML (with some play with an infinite list of natural number tuples filtering out 0 elements):
+
+
+type ’a lazy = unit -> ’a;
+
+fun force (f:’a lazy) = f ();
+fun delay x = (fn () => x) : ’a lazy;
+
+datatype ’a sequ = NIL | CONS of ’a * ’a sequ lazy;
+
+fun first 0 s = []
+ | first n NIL = []
+ | first n (CONS (i,r)) = i :: first (n-1) (force r);
+
+fun filters p NIL = NIL
+ | filters p (CONS (x,r)) =
+ if p x
+ then CONS (x, fn () => filters p (force r))
+ else
+ filters p (force r);
+
+fun nat_pairs () =
+ let
+ fun from_pair (x,0) =
+ CONS ((x,0), fn () => from_pair (0,x+1))
+ | from_pair (up,dn) =
+ CONS ((up,dn), fn () => from_pair (up+1,dn-1))
+ in from_pair (0,0)
+ end;
+
+(* Test
+val test = first 10 (nat_pairs ())
+*)
+
+fun nat_pairs_not_null () =
+ filters (fn (x,y) => x > 0 andalso y > 0) (nat_pairs ());
+
+(* Test
+val test = first 10 (nat_pairs_not_null ());
+*)
+
+
+http://smlnj.org/
+
+Real laziness with Haskell
+
+As Haskell already uses lazy evaluation by default, there is no need to construct a new data type. Lists in Haskell are lazy by default. You will notice that the code is also much shorter and easier to understand than the SML version.
+
+
+{- Just to make it look like the ML example -}
+first = take
+filters = filter
+
+{- Implementation -}
+nat_pairs = from_pair 0 0
+ where
+ from_pair x 0 = [x,0] : from_pair 0 (x+1)
+ from_pair up dn = [up,dn] : from_pair (up+1) (dn-1)
+
+{- Test:
+first 10 nat_pairs
+-}
+
+nat_pairs_not_null = filters (\[x,y] -> x > 0 && y > 0) nat_pairs
+
+{- Test:
+first 10 nat_pairs_not_null
+-}
+
+
+http://www.haskell.org/
+
+E-Mail your comments to paul@nospam.buetow.org :-)
+
+Back to the main site
+
+
+
diff --git a/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.html b/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.html
deleted file mode 100644
index c525ed7f..00000000
--- a/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.html
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-Lazy Evaluation with Standard ML
-
-Published at 2010-05-07T08:17:59+01:00
-
-
- _____|~~\_____ _____________
- _-~ \ | \
- _- | ) \ |__/ \ \
- _- ) | | | \ \
- _- | ) / |--| | |
- __-_______________ /__/_______| |_________
-( |---- | |
- `---------------'--\\\\ .`--' -Glyde-
- `||||
-
-
-In contrast to Haskell, Standard SML does not use lazy evaluation by default but an eager evaluation.
-
-https://en.wikipedia.org/wiki/Eager_evaluation
-https://en.wikipedia.org/wiki/Lazy_evaluation
-
-
-You can solve specific problems with lazy evaluation easier than with eager evaluation. For example, you might want to list the number Pi or another infinite list of something. With the help of lazy evaluation, each element of the list is calculated when it is accessed first, but not earlier.
-
-Emulating lazy evaluation in SML
-
-However, it is possible to emulate lazy evaluation in most eager evaluation languages. This is how it is done with Standard ML (with some play with an infinite list of natural number tuples filtering out 0 elements):
-
-
-type ’a lazy = unit -> ’a;
-
-fun force (f:’a lazy) = f ();
-fun delay x = (fn () => x) : ’a lazy;
-
-datatype ’a sequ = NIL | CONS of ’a * ’a sequ lazy;
-
-fun first 0 s = []
- | first n NIL = []
- | first n (CONS (i,r)) = i :: first (n-1) (force r);
-
-fun filters p NIL = NIL
- | filters p (CONS (x,r)) =
- if p x
- then CONS (x, fn () => filters p (force r))
- else
- filters p (force r);
-
-fun nat_pairs () =
- let
- fun from_pair (x,0) =
- CONS ((x,0), fn () => from_pair (0,x+1))
- | from_pair (up,dn) =
- CONS ((up,dn), fn () => from_pair (up+1,dn-1))
- in from_pair (0,0)
- end;
-
-(* Test
-val test = first 10 (nat_pairs ())
-*)
-
-fun nat_pairs_not_null () =
- filters (fn (x,y) => x > 0 andalso y > 0) (nat_pairs ());
-
-(* Test
-val test = first 10 (nat_pairs_not_null ());
-*)
-
-
-http://smlnj.org/
-
-Real laziness with Haskell
-
-As Haskell already uses lazy evaluation by default, there is no need to construct a new data type. Lists in Haskell are lazy by default. You will notice that the code is also much shorter and easier to understand than the SML version.
-
-
-{- Just to make it look like the ML example -}
-first = take
-filters = filter
-
-{- Implementation -}
-nat_pairs = from_pair 0 0
- where
- from_pair x 0 = [x,0] : from_pair 0 (x+1)
- from_pair up dn = [up,dn] : from_pair (up+1) (dn-1)
-
-{- Test:
-first 10 nat_pairs
--}
-
-nat_pairs_not_null = filters (\[x,y] -> x > 0 && y > 0) nat_pairs
-
-{- Test:
-first 10 nat_pairs_not_null
--}
-
-
-http://www.haskell.org/
-
-E-Mail your comments to paul@nospam.buetow.org :-)
-
-Back to the main site
-
-
-
diff --git a/gemfeed/2022-05-27-perl-is-still-a-great-choice.html b/gemfeed/2022-05-27-perl-is-still-a-great-choice.html
index 2172314b..cd17d661 100644
--- a/gemfeed/2022-05-27-perl-is-still-a-great-choice.html
+++ b/gemfeed/2022-05-27-perl-is-still-a-great-choice.html
@@ -130,7 +130,7 @@
Here are some reasons why not to chose Perl and look for "better" alternatives:
-
Sweat the small stuff
-There's never a shortage of small items to hook off my list. Most of these items don't require my full concentration power, and I will be happy to get them off my list so that the next day, after a good night's sleep, I can immerse myself again in focused, deep work with all concentration powers at hand.
+There's never a shortage of small items to knock off my list. Most of these items don't require my full concentration power, and I will be happy to get them off my list so that the next day, after a good night's sleep, I can immerse myself again in focused, deep work with all concentration powers at hand.
Examples of "small work items" are:
@@ -115,7 +115,7 @@ jgs (________\ \
Meditate
-To keep the good vibe, it helps to meditate for 10 minutes. Meditation must nothing be fancy. It can be just lying on the sofa and observing your thoughts as they come and go. Don't judge your thoughts, as that could put you in a negative mood. It's not necessary to sit in an uncomfortable Yoga pose, and it is not required to chant "Ohhmmmmm".
+To keep the good vibe, it helps to meditate for 10 minutes. Meditation need not be fancy. It can be just lying on the sofa and observing your thoughts as they come and go. Don't judge your thoughts, as that could put you in a negative mood. It's not necessary to sit in an uncomfortable Yoga pose, and it is not required to chant "Ohhmmmmm".
Write things down
diff --git a/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.html b/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.html
index 6a9f1323..3683799f 100644
--- a/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.html
+++ b/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.html
@@ -105,7 +105,7 @@
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 (You are currently reading this)
diff --git a/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html b/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html
index cf8875a9..eaa49b03 100644
--- a/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html
+++ b/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.html
@@ -106,7 +106,7 @@ Blablabla...
See more entries about DTail and Golang:
=> ./2022-10-30-installing-dtail-on-openbsd.gmi 2022-10-30 Installing DTail on OpenBSD
-=> ./2022-04-22-programming-golang.gmi 2022-04-22 The Golang Programming language
+=> ./2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang.gmi 2024-03-03 A fine Fyne Android app programmed in Go
=> ./2022-03-06-the-release-of-dtail-4.0.0.gmi 2022-03-06 The release of DTail 4.0.0
=> ./2021-04-22-dtail-the-distributed-log-tail-program.gmi 2021-04-22 DTail - The distributed log tail program (You are currently reading this)
diff --git a/gemfeed/2023-04-01-never-split-the-difference-book-notes.html b/gemfeed/2023-04-01-never-split-the-difference-book-notes.html
index 635c99be..8a7aaa0e 100644
--- a/gemfeed/2023-04-01-never-split-the-difference-book-notes.html
+++ b/gemfeed/2023-04-01-never-split-the-difference-book-notes.html
@@ -168,7 +168,7 @@
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 (You are currently reading this)
2023-03-16 "The Pragmatic Programmer" book notes
diff --git a/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.html b/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.html
index 44cee61e..472fc8f9 100644
--- a/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.html
+++ b/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.html
@@ -121,7 +121,7 @@
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 (You are currently reading this)
2023-04-01 "Never split the difference" book notes
2023-03-16 "The Pragmatic Programmer" book notes
diff --git a/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.html b/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.html
index bdf51be7..75d464df 100644
--- a/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.html
+++ b/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.html
@@ -2,7 +2,7 @@
-"Software Developmers Career Guide and Soft Skills" book notes
+"Software Developers Career Guide and Soft Skills" book notes
Published at 2023-07-17T04:56:20+03:00
@@ -32,7 +32,7 @@
Table of Contents
-
Promotions
-The most valuable employees are the ones who make themselves obsolete and automate all away. Keep a safety net of 3 to 6 months of finances. Safe at least 10 percent of your earnings. Also, if you make money it does not mean that you have to spent more money. Is a new car better than a used car which both can bring you from A to B? Liability vs assets.
+The most valuable employees are the ones who make themselves obsolete and automate it all away. Keep a safety net of 3 to 6 months of finances. Save at least 10 percent of your earnings. Also, if you make money it does not mean that you have to spend more money. Is a new car better than a used car which both can bring you from A to B? Liability vs assets.
Finish things
-Hard work is necessary for accomplish results. However, work smarter not harder. Furthermore, working smart is not a substitute for working hard. Work both, hard and smart.
+Hard work is necessary to accomplish results. However, work smarter not harder. Furthermore, working smart is not a substitute for working hard. Work both, hard and smart.
Hard vs fun: Both engage the brain (video games vs work). Some work is hard and other is easy. Hard work is boring. The harsh truth is you have to put in hard and boring work in order to accomplish and be successful. Work won't be always boring though, as joy will follow with mastery.
-Defeat is finally give up. Failure is the road to success, embrace it. Failure does not define you but how you respond to it. Events don't make your unhappy, but how you react to events do.
+Defeat is finally giving up. Failure is the road to success, embrace it. Failure does not define you but how you respond to it. Events don't make your unhappy, but how you react to events do.
Expand the empire
@@ -208,19 +208,19 @@
No drama
-Avoid drama at work. Where are humans there is drama. You can decide where to spent your energy in. But don't avoid conflict. Conflict is healthy in any kind of relationship. Be tactful and state your opinion. The goal is to find the best solution to the problem.
+Avoid drama at work. Where there are humans, there is drama. You can decide where to spend your energy in. But don't avoid conflict. Conflict is healthy in any kind of relationship. Be tactful and state your opinion. The goal is to find the best solution to the problem.
Don't worry about other people what they do and don't do. You only worry about you. Shut up and get your own things done. But you could help to inspire a not working colleague.
-You have to learn how to work in a team. Be honest but tactful. It's not too be the loudest but about selling your ideas. Don't argue otherwise you won't sell anything. Be persuasive by finding the common ground. Or lead the colleagues to your idea and don't sell it upfront. Communicate clearly.
+You have to learn how to work in a team. Be honest but tactful. It's not to be the loudest but about selling your ideas. Don't argue otherwise you won't sell anything. Be persuasive by finding the common ground. Or lead the colleagues to your idea and don't sell it upfront. Communicate clearly.
Personal brand
@@ -353,7 +353,7 @@
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 (You are currently reading this)
+2023-07-17 "Software Developers Career Guide and Soft Skills" book notes (You are currently reading this)
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
diff --git a/gemfeed/2023-11-11-mind-management-book-notes.html b/gemfeed/2023-11-11-mind-management-book-notes.html
index a61aa781..9899bd89 100644
--- a/gemfeed/2023-11-11-mind-management-book-notes.html
+++ b/gemfeed/2023-11-11-mind-management-book-notes.html
@@ -138,7 +138,7 @@
2024-07-07 "The Stoic Challenge" book notes
2024-05-01 "Slow Productivity" book notes
2023-11-11 "Mind Management" book notes (You are currently reading this)
-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
diff --git a/gemfeed/2024-05-01-slow-productivity-book-notes.html b/gemfeed/2024-05-01-slow-productivity-book-notes.html
index b424e683..82232886 100644
--- a/gemfeed/2024-05-01-slow-productivity-book-notes.html
+++ b/gemfeed/2024-05-01-slow-productivity-book-notes.html
@@ -164,7 +164,7 @@
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
diff --git a/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html b/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html
index f16d227f..f0e9c914 100644
--- a/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html
+++ b/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html
@@ -13,7 +13,7 @@
# 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 @@ -419,7 +419,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):
-
+
The last remaining lines in my configuration file are:
diff --git a/gemfeed/2024-07-07-the-stoic-challenge-book-notes.html b/gemfeed/2024-07-07-the-stoic-challenge-book-notes.html index 259bb2e4..32930329 100644 --- a/gemfeed/2024-07-07-the-stoic-challenge-book-notes.html +++ b/gemfeed/2024-07-07-the-stoic-challenge-book-notes.html @@ -80,7 +80,7 @@ 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
diff --git a/gemfeed/2024-10-24-staff-engineer-book-notes.html b/gemfeed/2024-10-24-staff-engineer-book-notes.html index 1ed708f1..18eaa522 100644 --- a/gemfeed/2024-10-24-staff-engineer-book-notes.html +++ b/gemfeed/2024-10-24-staff-engineer-book-notes.html @@ -145,7 +145,7 @@ 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
diff --git a/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html b/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html index b680efac..aad65382 100644 --- a/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html +++ b/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.html @@ -13,7 +13,7 @@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.
@@ -114,7 +114,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 diff --git a/gemfeed/2025-04-19-when-book-notes.html b/gemfeed/2025-04-19-when-book-notes.html index 1ec3118b..1aae7003 100644 --- a/gemfeed/2025-04-19-when-book-notes.html +++ b/gemfeed/2025-04-19-when-book-notes.html @@ -125,7 +125,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
diff --git a/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.html b/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.html index 0d7d4762..264c5135 100644 --- a/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.html +++ b/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.html @@ -107,7 +107,7 @@ 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
diff --git a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html index 9bb66851..b94b51cb 100644 --- a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html +++ b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html @@ -13,7 +13,7 @@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.
@@ -86,7 +86,7 @@
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:


[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 https://foo.zone/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.html -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):
-
+
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
diff --git a/gemfeed/index.html b/gemfeed/index.html index ab813f68..7d71eeda 100644 --- a/gemfeed/index.html +++ b/gemfeed/index.html @@ -66,7 +66,7 @@ 2023-09-25 - DTail usage examples
2023-08-18 - Site Reliability Engineering - Part 1: SRE and Organizational Culture
2023-07-21 - Gemtexter 2.1.0 - Let's Gemtext again³
-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-06-01 - KISS server monitoring with Gogios
2023-05-06 - 'The Obstacle is the Way' book notes
2023-05-01 - Unveiling guprecords.raku: Global Uptime Records with Raku
@@ -108,7 +108,7 @@ 2014-03-24 - The fibonacci.pl.raku.c Polyglot
2011-05-07 - Perl Daemon (Service Framework)
2010-05-09 - The Fype Programming Language
-2010-05-07 - Lazy Evaluation with Standard ML
+2010-05-07 - Lazy Evaluation with Standard ML
2010-04-09 - Standard ML and Haskell
2009-02-13 - SGI Onyx 3200
2008-12-29 - Using my Nokia N95 for fixing my MTA
-- cgit v1.2.3