summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-02-22 21:05:40 +0200
committerPaul Buetow <paul@buetow.org>2025-02-22 21:05:40 +0200
commit41b75ad185e20ebb6d9b7eee63af03b061517e3b (patch)
tree962f79d4e2c948c16e71e6e2040550a12c7f2bed
parent1ac2164d8013c91d0e667bf205b125b225e7b742 (diff)
parent30b9c0e750f8682d2cec1955bedd38739c664de1 (diff)
Merge branch 'content-gemtext' of codeberg.org:snonux/foo.zone into content-gemtext
-rw-r--r--about/resources.gmi180
-rw-r--r--gemfeed/atom.xml130
-rw-r--r--index.gmi2
-rw-r--r--notes/97-things-every-sre-should-know.gmi311
-rw-r--r--notes/97-things-every-sre-should-know.gmi.tpl289
-rw-r--r--notes/fluent-forever.gmi80
-rw-r--r--notes/implementing-service-level-objectives.gmi83
-rw-r--r--notes/implementing-service-level-objectives.gmi.tpl74
-rw-r--r--notes/index.gmi6
-rw-r--r--notes/love-people-use-things.gmi108
-rw-r--r--notes/site-reliability-engineering.gmi90
-rw-r--r--notes/site-reliability-engineering.gmi.tpl74
-rw-r--r--notes/the-science-of-living.gmi51
-rw-r--r--notes/when.gmi3
-rw-r--r--uptime-stats.gmi295
15 files changed, 1326 insertions, 450 deletions
diff --git a/about/resources.gmi b/about/resources.gmi
index a70b80d3..030e3b0f 100644
--- a/about/resources.gmi
+++ b/about/resources.gmi
@@ -35,101 +35,101 @@ You won't find any links on this site because, over time, the links will break.
In random order:
+* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
+* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
+* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
+* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
* Java ist auch eine Insel; Christian Ullenboom;
-* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
-* Modern Perl; Chromatic ; Onyx Neon Press
-* Systemprogrammierung in Go; Frank Müller; dpunkt
-* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
+* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
+* The Pragmatic Programmer; David Thomas; Addison-Wesley
* Effective Java; Joshua Bloch; Addison-Wesley Professional
-* Concurrency in Go; Katherine Cox-Buday; O'Reilly
-* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
-* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
-* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
-* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
-* Ultimate Go Notebook; Bill Kennedy
-* Higher Order Perl; Mark Dominus; Morgan Kaufmann
-* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
-* Data Science at the Command Line; Jeroen Janssens; O'Reilly
* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
-* Effective awk programming; Arnold Robbins; O'Reilly
-* The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress
-* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
+* Ultimate Go Notebook; Bill Kennedy
+* Systemprogrammierung in Go; Frank Müller; dpunkt
* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
-* The Docker Book; James Turnbull; Kindle
-* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
* Polished Ruby Programming; Jeremy Evans; Packt Publishing
-* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
* Perl New Features; Joshua McAdams, brian d foy; Perl School
-* Raku Fundamentals; Moritz Lenz; Apress
-* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
-* Developing Games in Java; David Brackeen and others...; New Riders
-* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
-* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
-* C++ Programming Language; Bjarne Stroustrup;
+* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
+* Modern Perl; Chromatic ; Onyx Neon Press
* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
* Terraform Cookbook; Mikael Krief; Packt Publishing
-* DNS and BIND; Cricket Liu; O'Reilly
-* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
+* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
+* Raku Recipes; J.J. Merelo; Apress
+* C++ Programming Language; Bjarne Stroustrup;
* Funktionale Programmierung; Peter Pepper; Springer
-* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* Raku Fundamentals; Moritz Lenz; Apress
+* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+* Higher Order Perl; Mark Dominus; Morgan Kaufmann
+* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
+* The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress
* Site Reliability Engineering; How Google runs production systems; O'Reilly
-* Raku Recipes; J.J. Merelo; Apress
-* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-* The Pragmatic Programmer; David Thomas; Addison-Wesley
* Leanring eBPF; Liz Rice; O'Reilly
-* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
-* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
+* Effective awk programming; Arnold Robbins; O'Reilly
+* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
+* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
+* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
+* The Docker Book; James Turnbull; Kindle
+* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
+* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
+* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
+* Concurrency in Go; Katherine Cox-Buday; O'Reilly
+* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
+* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
+* DNS and BIND; Cricket Liu; O'Reilly
+* Data Science at the Command Line; Jeroen Janssens; O'Reilly
+* Developing Games in Java; David Brackeen and others...; New Riders
## Technical references
I didn't read them from the beginning to the end, but I am using them to look up things. The books are in random order:
-* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
+* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
-* Relayd and Httpd Mastery; Michael W Lucas
* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
-* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
-* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
* The Linux Programming Interface; Michael Kerrisk; No Starch Press
+* Relayd and Httpd Mastery; Michael W Lucas
+* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
+* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
## Self-development and soft-skills books
In random order:
-* Solve for Happy; Mo Gawdat
-* Deep Work; Cal Newport; Piatkus
-* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
-* The Bullet Journal Method; Ryder Carroll; Fourth Estate
-* Digital Minimalism; Cal Newport; Portofolio Penguin
-* 101 Essays that change the way you think; Brianna Wiest; Audible
+* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
+* Ultralearning; Anna Laurent; Self-published via Amazon
* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
-* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
+* So Good They Can't Ignore You; Cal Newport; Business Plus
* Atomic Habits; James Clear; Random House Business
+* Ultralearning; Scott Young; Thorsons
* Staff Engineer: Leadership beyond the management track; Will Larson; Audible
-* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
-* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
-* The Power of Now; Eckhard Tolle; Yellow Kite
-* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
+* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
* The Off Switch; Mark Cropley; Virgin Books
-* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
-* Ultralearning; Anna Laurent; Self-published via Amazon
-* Stop starting, start finishing; Arne Roock; Lean-Kanban University
-* The Good Enough Job; Simone Stolzoff; Ebury Edge
-* So Good They Can't Ignore You; Cal Newport; Business Plus
+* The Power of Now; Eckhard Tolle; Yellow Kite
* The Joy of Missing Out; Christina Crook; New Society Publishers
-* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
-* Soft Skills; John Sommez; Manning Publications
+* The Bullet Journal Method; Ryder Carroll; Fourth Estate
* Influence without Authority; A. Cohen, D. Bradford; Wiley
+* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
+* The Good Enough Job; Simone Stolzoff; Ebury Edge
* Eat That Frog!; Brian Tracy; Hodder Paperbacks
-* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
+* Soft Skills; John Sommez; Manning Publications
+* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
+* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
* Getting Things Done; David Allen
-* Slow Productivity; Cal Newport; Penguin Random House
-* Ultralearning; Scott Young; Thorsons
+* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
-* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
+* 101 Essays that change the way you think; Brianna Wiest; Audible
+* Digital Minimalism; Cal Newport; Portofolio Penguin
+* Solve for Happy; Mo Gawdat
* Eat That Frog; Brian Tracy
-* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
+* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+* Stop starting, start finishing; Arne Roock; Lean-Kanban University
+* Deep Work; Cal Newport; Piatkus
+* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
+* Slow Productivity; Cal Newport; Penguin Random House
=> ../notes/index.gmi Here are notes of mine for some of the books
@@ -137,30 +137,30 @@ In random order:
Some of these were in-person with exams; others were online learning lectures only. In random order:
-* Functional programming lecture; Remote University of Hagen
-* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
-* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
-* AWS Immersion Day; Amazon; 1-day interactive online training
* Apache Tomcat Best Practises; 3-day on-site training
-* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
-* Scripting Vim; Damian Conway; O'Reilly Online
-* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
-* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
+* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
* Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
+* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
+* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
* MySQL Deep Dive Workshop; 2-day on-site training
-* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
-* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
-* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
+* Functional programming lecture; Remote University of Hagen
* Protocol buffers; O'Reilly Online
+* Scripting Vim; Damian Conway; O'Reilly Online
+* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
+* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
+* AWS Immersion Day; Amazon; 1-day interactive online training
+* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
+* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
+* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
## Technical guides
These are not whole books, but guides (smaller or larger) which I found very useful. in random order:
* Raku Guide at https://raku.guide
-* Advanced Bash-Scripting Guide
* How CPUs work at https://cpu.land
+* Advanced Bash-Scripting Guide
## Podcasts
@@ -168,46 +168,46 @@ These are not whole books, but guides (smaller or larger) which I found very use
In random order:
-* Maintainable
+* The Pragmatic Engineer Podcast
+* BSD Now
+* Hidden Brain
* Fork Around And Find Out
* Deep Questions with Cal Newport
-* Backend Banter
+* Fallthrough [Golang]
* Dev Interrupted
-* Hidden Brain
-* The Changelog Podcast(s)
-* The Pragmatic Engineer Podcast
* The ProdCast (Google SRE Podcast)
-* BSD Now
+* Maintainable
+* Backend Banter
+* The Changelog Podcast(s)
* Cup o' Go [Golang]
-* Fallthrough [Golang]
### Podcasts I liked
I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.
+* Go Time (predecessor of fallthrough)
* CRE: Chaosradio Express [german]
-* Java Pub House
* Modern Mentor
-* FLOSS weekly
* Ship It (predecessor of Fork Around And Find Out)
-* Go Time (predecessor of fallthrough)
+* Java Pub House
+* FLOSS weekly
## Newsletters I like
This is a mix of tech and non-tech newsletters I am subscribed to. In random order:
-* VK Newsletter
+* Applied Go Weekly Newsletter
+* Monospace Mentor
* The Pragmatic Engineer
-* Andreas Brandhorst Newsletter (Sci-Fi author)
-* The Imperfectionist
* byteSizeGo
-* Golang Weekly
-* Monospace Mentor
-* Changelog News
-* Applied Go Weekly Newsletter
* Register Spill
+* Golang Weekly
+* VK Newsletter
* Ruby Weekly
* The Valuable Dev
+* Andreas Brandhorst Newsletter (Sci-Fi author)
+* Changelog News
+* The Imperfectionist
# Formal education
diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml
index 7f86085a..69b4940b 100644
--- a/gemfeed/atom.xml
+++ b/gemfeed/atom.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
- <updated>2025-02-13T10:21:17+02:00</updated>
+ <updated>2025-02-21T11:07:08+02:00</updated>
<title>foo.zone feed</title>
<subtitle>To be in the .zone!</subtitle>
<link href="gemini://foo.zone/gemfeed/atom.xml" rel="self" />
@@ -1289,33 +1289,33 @@ Jan 26 17:36:32 f2 apcupsd[2159]: apcupsd shutdown succeeded
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">hx</font>
-<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">VISUAL</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font>
-<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GIT_EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font>
-<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">HELIX_CONFIG_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$HOME</font><font color="#F3E651">/.</font><font color="#ff0000">config/helix</font>
-
-<font color="#ff0000">editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#7bc710">random_theme ()</font><font color="#ff0000"> {</font>
-<font color="#ff0000"> </font><i><font color="#ababab"># May add more theme search paths based on OS. This one is</font></i>
-<font color="#ff0000"> </font><i><font color="#ababab"># for Fedora Linux, but there is also MacOS, etc.</font></i>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">theme_dir</font><font color="#F3E651">=</font><font color="#ff0000">/usr/share/helix/runtime/themes</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> </font><font color="#F3E651">!</font><font color="#ff0000"> -d </font><font color="#ff0000">$theme_dir</font><font color="#ff0000"> </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> echo </font><font color="#bb00ff">"Helix theme dir $theme_dir doesnt exist"</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">return</font></b><font color="#ff0000"> </font><font color="#bb00ff">1</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b>
-
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">config_file</font><font color="#F3E651">=</font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">random_theme</font><font color="#F3E651">=</font><font color="#bb00ff">"$(basename "</font><font color="#ff0000">$(</font><font color="#ff0000">ls </font><font color="#ff0000">$theme_dir</font><font color="#ff0000"> </font><font color="#F3E651">\</font>
-<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep -v random</font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">|</font><font color="#ff0000"> grep </font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">|</font><font color="#ff0000"> sort -R </font><font color="#F3E651">\</font>
-<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#F3E651">)</font><font color="#bb00ff">" | cut -d. -f1)"</font>
-
-<font color="#ff0000"> sed </font><font color="#bb00ff">"/^theme =/ { s/.*/theme = </font><font color="#ffffff">\"</font><font color="#bb00ff">$random_theme</font><font color="#ffffff">\"</font><font color="#bb00ff">/; }"</font><font color="#ff0000"> </font><font color="#F3E651">\</font>
-<font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#ff0000"> </font><font color="#F3E651">&gt;</font><font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#F3E651">&amp;&amp;</font><font color="#ff0000"> </font>
-<font color="#ff0000"> mv </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$config_file</font>
-<font color="#ff0000">}</font>
-
-<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font>
-<b><font color="#ffffff">fi</font></b>
+<pre><b><u><font color="#000000">export</font></u></b> EDITOR=hx
+<b><u><font color="#000000">export</font></u></b> VISUAL=$EDITOR
+<b><u><font color="#000000">export</font></u></b> GIT_EDITOR=$EDITOR
+<b><u><font color="#000000">export</font></u></b> HELIX_CONFIG_DIR=$HOME/.config/helix
+
+editor::helix::random_theme () {
+ <i><font color="silver"># May add more theme search paths based on OS. This one is</font></i>
+ <i><font color="silver"># for Fedora Linux, but there is also MacOS, etc.</font></i>
+ <b><u><font color="#000000">local</font></u></b> -r theme_dir=/usr/share/helix/runtime/themes
+ <b><u><font color="#000000">if</font></u></b> [ ! -d $theme_dir ]; <b><u><font color="#000000">then</font></u></b>
+ echo <font color="#808080">"Helix theme dir $theme_dir doesnt exist"</font>
+ <b><u><font color="#000000">return</font></u></b> <font color="#000000">1</font>
+ <b><u><font color="#000000">fi</font></u></b>
+
+ <b><u><font color="#000000">local</font></u></b> -r config_file=$HELIX_CONFIG_DIR/config.toml
+ <b><u><font color="#000000">local</font></u></b> -r random_theme=<font color="#808080">"$(basename "</font>$(ls $theme_dir \
+ | grep -v random.toml | grep .toml | sort -R \
+ | head -n <font color="#000000">1</font>)<font color="#808080">" | cut -d. -f1)"</font>
+
+ sed <font color="#808080">"/^theme =/ { s/.*/theme = </font>\"<font color="#808080">$random_theme</font>\"<font color="#808080">/; }"</font> \
+ $config_file &gt; $config_file.tmp &amp;&amp;
+ mv $config_file.tmp $config_file
+}
+
+<b><u><font color="#000000">if</font></u></b> [ -f $HELIX_CONFIG_DIR/config.toml ]; <b><u><font color="#000000">then</font></u></b>
+ editor::helix::random_theme
+<b><u><font color="#000000">fi</font></u></b>
</pre>
<br />
<span>So every time I open a new terminal or shell, <span class='inlinecode'>editor::helix::random_theme</span> gets called, which randomly selects a theme from all installed ones and updates the helix config accordingly.</span><br />
@@ -1324,16 +1324,16 @@ http://www.gnu.org/software/src-highlite -->
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font>
-<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">~/.</font><font color="#ff0000">config/helix/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font>
-<font color="#ff0000">theme </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"jellybeans"</font>
-<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font>
-<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">~/.</font><font color="#ff0000">config/helix/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font>
-<font color="#ff0000">theme </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"rose_pine"</font>
-<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">random_theme</font>
-<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">~/.</font><font color="#ff0000">config/helix/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font>
-<font color="#ff0000">theme </font><font color="#F3E651">=</font><font color="#ff0000"> </font><font color="#bb00ff">"noctis"</font>
-<font color="#F3E651">[</font><font color="#ff0000">paul@earth</font><font color="#F3E651">]</font><font color="#ff0000"> </font><font color="#F3E651">~</font><font color="#ff0000"> </font><font color="#F3E651">%</font>
+<pre>[paul@earth] ~ % editor::helix::random_theme
+[paul@earth] ~ % head -n <font color="#000000">1</font> ~/.config/helix/config.toml
+theme = <font color="#808080">"jellybeans"</font>
+[paul@earth] ~ % editor::helix::random_theme
+[paul@earth] ~ % head -n <font color="#000000">1</font> ~/.config/helix/config.toml
+theme = <font color="#808080">"rose_pine"</font>
+[paul@earth] ~ % editor::helix::random_theme
+[paul@earth] ~ % head -n <font color="#000000">1</font> ~/.config/helix/config.toml
+theme = <font color="#808080">"noctis"</font>
+[paul@earth] ~ %
</pre>
<br />
<h2 style='display: inline' id='a-better-version'>A better version</h2><br />
@@ -1344,33 +1344,33 @@ http://www.gnu.org/software/src-highlite -->
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">hx</font>
-<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">VISUAL</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font>
-<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">GIT_EDITOR</font><font color="#F3E651">=</font><font color="#ff0000">$EDITOR</font>
-<b><font color="#ffffff">export</font></b><font color="#ff0000"> </font><font color="#ff0000">HELIX_CONFIG_DIR</font><font color="#F3E651">=</font><font color="#ff0000">$HOME</font><font color="#F3E651">/.</font><font color="#ff0000">config/helix</font>
-
-<font color="#ff0000">editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">theme</font><font color="#F3E651">::</font><font color="#7bc710">get_random ()</font><font color="#ff0000"> {</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">for</font></b><font color="#ff0000"> dir </font><b><font color="#ffffff">in</font></b><font color="#ff0000"> </font><font color="#ff0000">$(</font><font color="#ff0000">hx --health </font><font color="#F3E651">\</font>
-<font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> awk </font><font color="#bb00ff">'/^Runtime directories/ { print $3 }'</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> tr </font><font color="#bb00ff">';'</font><font color="#ff0000"> </font><font color="#bb00ff">' '</font><font color="#F3E651">);</font><font color="#ff0000"> </font><b><font color="#ffffff">do</font></b>
-<font color="#ff0000"> </font><b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -d </font><font color="#ff0000">$dir</font><font color="#ff0000">/themes </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> ls </font><font color="#ff0000">$dir</font><font color="#ff0000">/themes</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">fi</font></b>
-<font color="#ff0000"> </font><b><font color="#ffffff">done</font></b><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> grep -F </font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">|</font><font color="#ff0000"> sort -R </font><font color="#F3E651">|</font><font color="#ff0000"> head -n </font><font color="#bb00ff">1</font><font color="#ff0000"> </font><font color="#F3E651">|</font><font color="#ff0000"> cut -d</font><font color="#F3E651">.</font><font color="#ff0000"> -f</font><font color="#bb00ff">1</font>
-<font color="#ff0000">}</font>
-
-<font color="#ff0000">editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">theme</font><font color="#F3E651">::</font><font color="#7bc710">set ()</font><font color="#ff0000"> {</font>
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">theme</font><font color="#F3E651">=</font><font color="#bb00ff">"$1"</font><font color="#F3E651">;</font><font color="#ff0000"> </font><b><font color="#ffffff">shift</font></b>
-
-<font color="#ff0000"> </font><b><font color="#ffffff">local</font></b><font color="#ff0000"> -r </font><font color="#ff0000">config_file</font><font color="#F3E651">=</font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml</font>
-
-<font color="#ff0000"> sed </font><font color="#bb00ff">"/^theme =/ { s/.*/theme = </font><font color="#ffffff">\"</font><font color="#bb00ff">$theme</font><font color="#ffffff">\"</font><font color="#bb00ff">/; }"</font><font color="#ff0000"> </font><font color="#F3E651">\</font>
-<font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#ff0000"> </font><font color="#F3E651">&gt;</font><font color="#ff0000"> </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#F3E651">&amp;&amp;</font><font color="#ff0000"> </font>
-<font color="#ff0000"> mv </font><font color="#ff0000">$config_file</font><font color="#F3E651">.</font><font color="#ff0000">tmp </font><font color="#ff0000">$config_file</font>
-<font color="#ff0000">}</font>
-
-<b><font color="#ffffff">if</font></b><font color="#ff0000"> </font><font color="#F3E651">[</font><font color="#ff0000"> -f </font><font color="#ff0000">$HELIX_CONFIG_DIR</font><font color="#ff0000">/config</font><font color="#F3E651">.</font><font color="#ff0000">toml </font><font color="#F3E651">];</font><font color="#ff0000"> </font><b><font color="#ffffff">then</font></b>
-<font color="#ff0000"> editor</font><font color="#F3E651">::</font><font color="#ff0000">helix</font><font color="#F3E651">::</font><font color="#ff0000">theme</font><font color="#F3E651">::</font><b><font color="#ffffff">set</font></b><font color="#ff0000"> </font><font color="#ff0000">$(editor::helix::theme::get_random)</font>
-<b><font color="#ffffff">fi</font></b>
+<pre><b><u><font color="#000000">export</font></u></b> EDITOR=hx
+<b><u><font color="#000000">export</font></u></b> VISUAL=$EDITOR
+<b><u><font color="#000000">export</font></u></b> GIT_EDITOR=$EDITOR
+<b><u><font color="#000000">export</font></u></b> HELIX_CONFIG_DIR=$HOME/.config/helix
+
+editor::helix::theme::get_random () {
+ <b><u><font color="#000000">for</font></u></b> dir <b><u><font color="#000000">in</font></u></b> $(hx --health \
+ | awk <font color="#808080">'/^Runtime directories/ { print $3 }'</font> | tr <font color="#808080">';'</font> <font color="#808080">' '</font>); <b><u><font color="#000000">do</font></u></b>
+ <b><u><font color="#000000">if</font></u></b> [ -d $dir/themes ]; <b><u><font color="#000000">then</font></u></b>
+ ls $dir/themes
+ <b><u><font color="#000000">fi</font></u></b>
+ <b><u><font color="#000000">done</font></u></b> | grep -F .toml | sort -R | head -n <font color="#000000">1</font> | cut -d. -f<font color="#000000">1</font>
+}
+
+editor::helix::theme::set () {
+ <b><u><font color="#000000">local</font></u></b> -r theme=<font color="#808080">"$1"</font>; <b><u><font color="#000000">shift</font></u></b>
+
+ <b><u><font color="#000000">local</font></u></b> -r config_file=$HELIX_CONFIG_DIR/config.toml
+
+ sed <font color="#808080">"/^theme =/ { s/.*/theme = </font>\"<font color="#808080">$theme</font>\"<font color="#808080">/; }"</font> \
+ $config_file &gt; $config_file.tmp &amp;&amp;
+ mv $config_file.tmp $config_file
+}
+
+<b><u><font color="#000000">if</font></u></b> [ -f $HELIX_CONFIG_DIR/config.toml ]; <b><u><font color="#000000">then</font></u></b>
+ editor::helix::theme::<b><u><font color="#000000">set</font></u></b> $(editor::helix::theme::get_random)
+<b><u><font color="#000000">fi</font></u></b>
</pre>
<br />
<span>I hope you had some fun. E-Mail your comments to <span class='inlinecode'>paul@nospam.buetow.org</span> :-)</span><br />
diff --git a/index.gmi b/index.gmi
index 3de12a6b..c4ce2b13 100644
--- a/index.gmi
+++ b/index.gmi
@@ -1,6 +1,6 @@
# foo.zone
-> This site was generated at 2025-02-16T11:18:30+02:00 by `Gemtexter`
+> This site was generated at 2025-02-21T17:05:13+02:00 by `Gemtexter`
Welcome to the foo.zone. Everything you read on this site is my personal opinion and experience. You can call me a Linux/*BSD enthusiast and hobbyist. I mainly write about tech, IT, programming and sometimes also about self-improvement here. And I also like coding.
diff --git a/notes/97-things-every-sre-should-know.gmi b/notes/97-things-every-sre-should-know.gmi
new file mode 100644
index 00000000..ff511964
--- /dev/null
+++ b/notes/97-things-every-sre-should-know.gmi
@@ -0,0 +1,311 @@
+# "97 Things Every SRE Should Know" book notes
+
+These are my personal book notes of Emil Stolarsky's and Jaime Woo's "97 Things Every SRE Should Know". They are for myself, but I hope they might be useful to you too.
+
+## Table of Contents
+
+* ⇢ "97 Things Every SRE Should Know" book notes
+* ⇢ ⇢ Introduction
+* ⇢ ⇢ Observability
+* ⇢ ⇢ The ancient art of writing things down
+* ⇢ ⇢ The teams health
+* ⇢ ⇢ Sharing responsibilities
+* ⇢ ⇢ The roles and the solo SRE
+* ⇢ ⇢ Being customer-focused
+* ⇢ ⇢ Don't have all the answers
+* ⇢ ⇢ Runbooks
+* ⇢ ⇢ Alerts per shift
+* ⇢ ⇢ Balancing velocity
+* â‡