diff options
Diffstat (limited to 'gemfeed')
21 files changed, 47 insertions, 47 deletions
diff --git a/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.md b/gemfeed/2010-05-07-lazy-evaluation-with-standard-ml.md index f2a97085..f2a97085 100644 --- a/gemfeed/2010-05-07-lazy-evaluation-with-standarn-ml.md +++ b/gemfeed/2010-05-07-lazy-evaluation-with-standard-ml.md diff --git a/gemfeed/2022-05-27-perl-is-still-a-great-choice.md b/gemfeed/2022-05-27-perl-is-still-a-great-choice.md index e18e1709..b881eb78 100644 --- a/gemfeed/2022-05-27-perl-is-still-a-great-choice.md +++ b/gemfeed/2022-05-27-perl-is-still-a-great-choice.md @@ -112,7 +112,7 @@ About the first point, using Perl for better "shell" scripts was actually the or Here are some reasons why not to chose Perl and look for "better" alternatives: -* If performance is your main objectives, then Perl might not be the language to use. Perl is a dynamic interpreted language, and it will generally never be as fast as statically typed languages compiled to native binaries (e.g. C/C++/Rust/Haskell) or statically typed languages run in a VM with JIT (e.g. Java) or languages like Golang (statically typed, compiled to a binary but still with a runtime in the binary). Perl might be still faster than the other language listed here in certain circumstances (e.g. faster startup time than Java or faster regular expressions engine), but usually it's not. It's not a problem of Perl, it's a problem of all dynamic scripting languages including Python, Ruby, .... +* If performance is your main objective, then Perl might not be the language to use. Perl is a dynamic interpreted language, and it will generally never be as fast as statically typed languages compiled to native binaries (e.g. C/C++/Rust/Haskell) or statically typed languages run in a VM with JIT (e.g. Java) or languages like Golang (statically typed, compiled to a binary but still with a runtime in the binary). Perl might be still faster than the other language listed here in certain circumstances (e.g. faster startup time than Java or faster regular expressions engine), but usually it's not. It's not a problem of Perl, it's a problem of all dynamic scripting languages including Python, Ruby, .... * Don't use Perl (just yet) if you want to code object-oriented. Perl supports OOP, but it feels clunky and odd to use (blessed references to any data types are objects) and doesn't support real encapsulation out of the box. There are many (many) extensions available on CPAN to make OOP better, but that's totally fragmented. The most popular extension, Moose, comes with a huge dependency tree. But wait for Perl 7. It will maybe come with a new object system (an object system inspired by Raku). * It's possible to write large programs in Perl (make difficult things possible), but it might not be the best choice here. This also leads back to the clunky object system Perl has. You could write your projects in a procedural or functional style (Perl perfectly fits here), but OOP seems to be the gold standard for large projects nowadays. Functional programming requires a different mindset, and pure procedural programming lacks abstractions. * Apply common sense. What is the skill set your team has? What's already widely used and supported at work? Which languages comes with the best modules for the things you want to work on? Maybe Python is the answer (better machine learning modules). Maybe Perl is the better choice (better Bioinformatic modules). Perhaps Ruby is already the de-facto standard at work and everyone knows at least a little Ruby (as it happened to be at my workplace) and Ruby is "good enough" for all the tasks already. But that's not a hindrance to throw in a Perl one-liner once in a while :P. diff --git a/gemfeed/2022-09-30-after-a-bad-nights-sleep.md b/gemfeed/2022-09-30-after-a-bad-nights-sleep.md index 100c55b8..634d1748 100644 --- a/gemfeed/2022-09-30-after-a-bad-nights-sleep.md +++ b/gemfeed/2022-09-30-after-a-bad-nights-sleep.md @@ -47,7 +47,7 @@ Probably I am already awake early and am unable to fall asleep again. My strateg ## 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: @@ -100,7 +100,7 @@ It's much more challenging to keep the mind "under control" in this state. Every ## 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.md b/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.md index c537f026..4d764095 100644 --- a/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.md +++ b/gemfeed/2023-03-16-the-pragmatic-programmer-book-notes.md @@ -87,7 +87,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes (You are currently reading this)](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.md b/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.md index 37183a8b..d4cbd1cd 100644 --- a/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.md +++ b/gemfeed/2023-03-25-gemtexter-2.0.0-lets-gemtext-again-2.md @@ -92,7 +92,7 @@ Blablabla... See more entries about DTail and Golang: [2022-10-30 Installing DTail on OpenBSD](./2022-10-30-installing-dtail-on-openbsd.md) -[2022-04-22 The Golang Programming language](./2022-04-22-programming-golang.md) +[2024-03-03 A fine Fyne Android app programmed in Go](./2024-03-03-a-fine-fyne-android-app-for-quickly-logging-ideas-programmed-in-golang.md) [2022-03-06 The release of DTail 4.0.0](./2022-03-06-the-release-of-dtail-4.0.0.md) [2021-04-22 DTail - The distributed log tail program (You are currently reading this)](./2021-04-22-dtail-the-distributed-log-tail-program.md) diff --git a/gemfeed/2023-04-01-never-split-the-difference-book-notes.md b/gemfeed/2023-04-01-never-split-the-difference-book-notes.md index 742c10b1..cefb5c92 100644 --- a/gemfeed/2023-04-01-never-split-the-difference-book-notes.md +++ b/gemfeed/2023-04-01-never-split-the-difference-book-notes.md @@ -146,7 +146,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes (You are currently reading this)](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.md b/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.md index 32899c08..7d369f26 100644 --- a/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.md +++ b/gemfeed/2023-05-06-the-obstacle-is-the-way-book-notes.md @@ -107,7 +107,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes (You are currently reading this)](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.md b/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.md index ceb9c902..840a680c 100644 --- a/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.md +++ b/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.md @@ -1,4 +1,4 @@ -# "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 @@ -18,7 +18,7 @@ These notes are of two books by "John Sommez" I found helpful. I also added some ## Table of Contents -* [⇢ "Software Developmers Career Guide and Soft Skills" book notes](#software-developmers-career-guide-and-soft-skills-book-notes) +* [⇢ "Software Developers Career Guide and Soft Skills" book notes](#software-developers-career-guide-and-soft-skills-book-notes) * [⇢ ⇢ Improve](#improve) * [⇢ ⇢ ⇢ Always learn new things](#always-learn-new-things) * [⇢ ⇢ ⇢ Set goals](#set-goals) @@ -80,29 +80,29 @@ That's a trap: If you have to rate yourself, that's a trap. That never works in ### 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. * Raise or promotion, what's better? Promotion is better as money will follow anyway then. * Take projects no-one wants and make them shine. A promotion will follow. * A promotion is not going to come to you because you deserve it. You have to hunt and ask for it. * Track all kudos (e.g. ask for emails from your colleagues). -* Big corporations HRs don't expect a figjit. That's why it's so important to keep track of your accomplishments and kudos'. +* Big corporations HRs don't expect a fig. That's why it's so important to keep track of your accomplishments and kudos. * If you want a raise be specific how much and know to back your demands. Don't make a thread and no ultimatums. * Best way for a promotion is to switch jobs. You can even switch back with a better salary. ### 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. * Learn to finish things without motivation. Things will pay off when you stick to stuff and eventually motivation can also come back. -* You will fail if you don't plan realistically. Set also a schedule and follow to it as of life depends on it. -* Advances come only of you give more than asked. Consistency, commitment and knowing what you need to do is more key than hard work. +* You will fail if you don't plan realistically. Set also a schedule and follow it as if life depends on it. +* Advances come only if you give more than asked. Consistency, commitment and knowing what you need to do is more key than hard work. * Any action is better than no action. If you get stuck you have gained nothing. * You need to know the unknowns. Identify as many unknown not known things as possible. 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 @@ -182,18 +182,18 @@ Intermittent fasting is an effective method to maintain weight and health. But i ## 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. * During an argument, take the opponent's position and see how your opinion changes. -* If you they to convince someone else it's an argument. Of you try to find the best solution it is a good resolution. +* If you try to convince someone else it's an argument. If you try to find the best solution it is a good resolution. * If someone is hurting the team let the manager know but phrase it nicely. * How to get rid of a never ending talking person? Set up focus hours officially where you don't want to be interrupted. Present as if it is your defect that you get interrupted easily. * TOXIC PEOPLE: AVOID THEM. RUN. * Boss likes if you get shit done without getting asked all the time about things and also without drama. -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 @@ -315,7 +315,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes (You are currently reading this)](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes (You are currently reading this)](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2023-11-11-mind-management-book-notes.md b/gemfeed/2023-11-11-mind-management-book-notes.md index eaaf4d00..c0dbf97f 100644 --- a/gemfeed/2023-11-11-mind-management-book-notes.md +++ b/gemfeed/2023-11-11-mind-management-book-notes.md @@ -117,7 +117,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes (You are currently reading this)](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2024-05-01-slow-productivity-book-notes.md b/gemfeed/2024-05-01-slow-productivity-book-notes.md index 8a161c31..57fcf8f5 100644 --- a/gemfeed/2024-05-01-slow-productivity-book-notes.md +++ b/gemfeed/2024-05-01-slow-productivity-book-notes.md @@ -145,7 +145,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes (You are currently reading this)](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.md b/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.md index 21681824..31bf01e3 100644 --- a/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.md +++ b/gemfeed/2024-06-23-terminal-multiplexing-with-tmux.md @@ -1,6 +1,6 @@ # 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: @@ -81,7 +81,7 @@ alias ts=tmux::search 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. @@ -90,7 +90,7 @@ The first two are pretty straightforward. `tm` is simply a shorthand for `tmux`, The `tn` alias is referencing this function: ```bash -# 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 @@ -375,7 +375,7 @@ The first one is that any new window starts in the current directory. The second 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): -[](./terminal-multiplexing-with-tmux/tmux-tree-view.png) +[](./terminal-multiplexing-with-tmux/tmux-tree-view.png) The last remaining lines in my configuration file are: diff --git a/gemfeed/2024-07-07-the-stoic-challenge-book-notes.md b/gemfeed/2024-07-07-the-stoic-challenge-book-notes.md index 33910a5c..104649ce 100644 --- a/gemfeed/2024-07-07-the-stoic-challenge-book-notes.md +++ b/gemfeed/2024-07-07-the-stoic-challenge-book-notes.md @@ -64,7 +64,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes (You are currently reading this)](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2024-10-24-staff-engineer-book-notes.md b/gemfeed/2024-10-24-staff-engineer-book-notes.md index 685dfc5d..cee9f284 100644 --- a/gemfeed/2024-10-24-staff-engineer-book-notes.md +++ b/gemfeed/2024-10-24-staff-engineer-book-notes.md @@ -128,7 +128,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.md b/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.md index dbb805e2..cbfe78f1 100644 --- a/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.md +++ b/gemfeed/2025-04-05-f3s-kubernetes-with-freebsd-part-4.md @@ -1,6 +1,6 @@ # 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. @@ -94,7 +94,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: ```sh paul@f0:~ % zfs list | grep bhyve @@ -205,7 +205,7 @@ paul@f0:/bhyve/rocky % doas vm install rocky Rocky-9.5-x86_64-minimal.iso ### Connect to VNC -For the installation, I opened the VNC client on my Fedora laptop (GNOME comes with a simple VNC client) and manually ran through the base installation for each of the VMs. Again, I am sure this could have been automated a bit more, but there were just three VMs, and it wasn't worth the effort. The three VNC addresses of the VMs were `vnc://f0:5900`, `vnc://f1:5900`, and `vnc://f0:5900`. +For the installation, I opened the VNC client on my Fedora laptop (GNOME comes with a simple VNC client) and manually ran through the base installation for each of the VMs. Again, I am sure this could have been automated a bit more, but there were just three VMs, and it wasn't worth the effort. The three VNC addresses of the VMs were `vnc://f0:5900`, `vnc://f1:5900`, and `vnc://f2:5900`. [](./f3s-kubernetes-with-freebsd-part-4/1.png) @@ -263,12 +263,12 @@ END And we configure the IPs accordingly on the VMs themselves by opening a root shell via SSH to the VMs and entering the following commands on each of the VMs: ```sh -[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.md b/gemfeed/2025-04-19-when-book-notes.md index b8e99174..96c0396e 100644 --- a/gemfeed/2025-04-19-when-book-notes.md +++ b/gemfeed/2025-04-19-when-book-notes.md @@ -106,7 +106,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.md b/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.md index b372eb8c..c9254851 100644 --- a/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.md +++ b/gemfeed/2025-06-07-a-monks-guide-to-happiness-book-notes.md @@ -86,7 +86,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.md b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.md index 63505c9e..68c2991f 100644 --- a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.md +++ b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.md @@ -1,6 +1,6 @@ # 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. @@ -72,7 +72,7 @@ This is the sixth blog post about the f3s series for self-hosting demands in a h ## 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 * Pod mobility: If a pod moves to another node, it loses access to its data @@ -438,12 +438,12 @@ 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) diff --git a/gemfeed/2025-11-02-the-courage-to-be-disliked-book-notes.md b/gemfeed/2025-11-02-the-courage-to-be-disliked-book-notes.md index 9ace9312..2ef2e41f 100644 --- a/gemfeed/2025-11-02-the-courage-to-be-disliked-book-notes.md +++ b/gemfeed/2025-11-02-the-courage-to-be-disliked-book-notes.md @@ -116,7 +116,7 @@ Other book notes of mine are: [2024-07-07 "The Stoic Challenge" book notes](./2024-07-07-the-stoic-challenge-book-notes.md) [2024-05-01 "Slow Productivity" book notes](./2024-05-01-slow-productivity-book-notes.md) [2023-11-11 "Mind Management" book notes](./2023-11-11-mind-management-book-notes.md) -[2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 "Software Developers Career Guide and Soft Skills" book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-05-06 "The Obstacle is the Way" book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-04-01 "Never split the difference" book notes](./2023-04-01-never-split-the-difference-book-notes.md) [2023-03-16 "The Pragmatic Programmer" book notes](./2023-03-16-the-pragmatic-programmer-book-notes.md) diff --git a/gemfeed/2026-02-02-tmux-popup-editor-for-cursor-agent-prompts.md b/gemfeed/2026-02-02-tmux-popup-editor-for-cursor-agent-prompts.md index 5ec73317..5bf5ac7b 100644 --- a/gemfeed/2026-02-02-tmux-popup-editor-for-cursor-agent-prompts.md +++ b/gemfeed/2026-02-02-tmux-popup-editor-for-cursor-agent-prompts.md @@ -77,7 +77,7 @@ And this is how it looks like after sending back the text to the Cursor Agent's [](./tmux-popup-editor-for-cursor-agent-prompts/demo2.png) -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. diff --git a/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-8b.md b/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-8b.md index 99db0e9d..587ec37f 100644 --- a/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-8b.md +++ b/gemfeed/DRAFT-f3s-kubernetes-with-freebsd-part-8b.md @@ -4,7 +4,7 @@ This post covers enabling etcd metrics monitoring for the k3s cluster. The etcd dashboard in Grafana initially showed no data because k3s uses an embedded etcd that doesn't expose metrics by default. -[Part 8: Observability](./2025-12-07-f3s-kubernetes-with-freebsd-part-8.html) +[Part 8: Observability](./2025-12-07-f3s-kubernetes-with-freebsd-part-8.md) ## Important Note: GitOps Migration diff --git a/gemfeed/index.md b/gemfeed/index.md index 52998273..ab2ff088 100644 --- a/gemfeed/index.md +++ b/gemfeed/index.md @@ -53,7 +53,7 @@ [2023-09-25 - DTail usage examples](./2023-09-25-dtail-usage-examples.md) [2023-08-18 - Site Reliability Engineering - Part 1: SRE and Organizational Culture](./2023-08-18-site-reliability-engineering-part-1.md) [2023-07-21 - Gemtexter 2.1.0 - Let's Gemtext again³](./2023-07-21-gemtexter-2.1.0-lets-gemtext-again-3.md) -[2023-07-17 - 'Software Developmers Career Guide and Soft Skills' book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) +[2023-07-17 - 'Software Developers Career Guide and Soft Skills' book notes](./2023-07-17-career-guide-and-soft-skills-book-notes.md) [2023-06-01 - KISS server monitoring with Gogios](./2023-06-01-kiss-server-monitoring-with-gogios.md) [2023-05-06 - 'The Obstacle is the Way' book notes](./2023-05-06-the-obstacle-is-the-way-book-notes.md) [2023-05-01 - Unveiling `guprecords.raku`: Global Uptime Records with Raku](./2023-05-01-unveiling-guprecords:-uptime-records-with-raku.md) @@ -95,7 +95,7 @@ [2014-03-24 - The fibonacci.pl.raku.c Polyglot](./2014-03-24-the-fibonacci.pl.c-polyglot.md) [2011-05-07 - Perl Daemon (Service Framework)](./2011-05-07-perl-daemon-service-framework.md) [2010-05-09 - The Fype Programming Language](./2010-05-09-the-fype-programming-language.md) -[2010-05-07 - Lazy Evaluation with Standard ML](./2010-05-07-lazy-evaluation-with-standarn-ml.md) +[2010-05-07 - Lazy Evaluation with Standard ML](./2010-05-07-lazy-evaluation-with-standard-ml.md) [2010-04-09 - Standard ML and Haskell](./2010-04-09-standard-ml-and-haskell.md) [2009-02-13 - SGI Onyx 3200](./2009-02-13-sgi-onyx-3200.md) [2008-12-29 - Using my Nokia N95 for fixing my MTA](./2008-12-29-using-my-nokia-n95-for-fixing-my-mta.md) |
