From 3a38607c328b02b4e7b64710cdbb5133c677357a Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 31 Dec 2024 18:11:00 +0200 Subject: Update content for gemtext --- about/resources.gmi | 176 +++---- ...5-01-01-posts-from-october-to-december-2024.gmi | 324 +++++++++++++ ...-01-posts-from-october-to-december-2024.gmi.tpl | 276 +++++++++++ ...0250101-posts-from-october-to-december-2024.gmi | 326 +++++++++++++ .../DRAFT-summary-for-202410-202411-202410.gmi.tpl | 263 ----------- gemfeed/atom.xml | 516 ++++++++++++++------- gemfeed/index.gmi | 1 + index.gmi | 3 +- uptime-stats.gmi | 2 +- 9 files changed, 1357 insertions(+), 530 deletions(-) create mode 100644 gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi create mode 100644 gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi.tpl create mode 100644 gemfeed/20250101-posts-from-october-to-december-2024.gmi delete mode 100644 gemfeed/DRAFT-summary-for-202410-202411-202410.gmi.tpl diff --git a/about/resources.gmi b/about/resources.gmi index b4113673..487b57eb 100644 --- a/about/resources.gmi +++ b/about/resources.gmi @@ -35,100 +35,100 @@ You won't find any links on this site because, over time, the links will break. In random order: -* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible -* Modern Perl; Chromatic ; Onyx Neon Press -* DNS and BIND; Cricket Liu; O'Reilly -* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible +* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional +* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly +* Funktionale Programmierung; Peter Pepper; Springer +* Effective awk programming; Arnold Robbins; O'Reilly +* Raku Recipes; J.J. Merelo; Apress +* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly * Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly -* Higher Order Perl; Mark Dominus; Morgan Kaufmann -* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton * Terraform Cookbook; Mikael Krief; Packt Publishing -* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly -* The Pragmatic Programmer; David Thomas; Addison-Wesley -* The Docker Book; James Turnbull; Kindle -* Developing Games in Java; David Brackeen and others...; New Riders -* Data Science at the Command Line; Jeroen Janssens; O'Reilly -* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications -* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly +* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly +* Site Reliability Engineering; How Google runs production systems; O'Reilly +* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson * Java ist auch eine Insel; Christian Ullenboom; -* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional -* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook -* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly -* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press * Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers -* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press -* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly * Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly -* Polished Ruby Programming; Jeremy Evans; Packt Publishing -* Systemprogrammierung in Go; Frank Müller; dpunkt -* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers * Effective Java; Joshua Bloch; Addison-Wesley Professional -* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications -* Ultimate Go Notebook; Bill Kennedy * Concurrency in Go; Katherine Cox-Buday; O'Reilly -* Effective awk programming; Arnold Robbins; O'Reilly +* Developing Games in Java; David Brackeen and others...; New Riders +* Systemprogrammierung in Go; Frank Müller; dpunkt +* Raku Fundamentals; Moritz Lenz; Apress +* Modern Perl; Chromatic ; Onyx Neon Press +* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press +* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications +* Leanring eBPF; Liz Rice; O'Reilly +* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press +* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton +* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt +* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly +* Polished Ruby Programming; Jeremy Evans; Packt Publishing +* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible +* Higher Order Perl; Mark Dominus; Morgan Kaufmann * Perl New Features; Joshua McAdams, brian d foy; Perl School +* Ultimate Go Notebook; Bill Kennedy * Pro Puppet; James Turnbull, Jeffrey McCune; Apress -* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt -* 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 -* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson -* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly -* Raku Fundamentals; Moritz Lenz; Apress -* Raku Recipes; J.J. Merelo; Apress +* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible +* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers +* The Pragmatic Programmer; David Thomas; Addison-Wesley +* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications +* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook * C++ Programming Language; Bjarne Stroustrup; -* Funktionale Programmierung; Peter Pepper; Springer -* Leanring eBPF; Liz Rice; O'Reilly +* The Docker Book; James Turnbull; Kindle +* DNS and BIND; Cricket Liu; O'Reilly +* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly * Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner +* 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 +* Data Science at the Command Line; Jeroen Janssens; O'Reilly ## 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: +* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly * Relayd and Httpd Mastery; Michael W Lucas -* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley -* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly * Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly * Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley -* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly * The Linux Programming Interface; Michael Kerrisk; No Starch Press +* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley +* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly ## Self-development and soft-skills books In random order: -* The Joy of Missing Out; Christina Crook; New Society Publishers -* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing -* Slow Productivity; Cal Newport; Penguin Random House -* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press * The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK -* Psycho-Cybernetics; Maxwell Maltz; Perigee Books -* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business -* Eat That Frog!; Brian Tracy; Hodder Paperbacks -* Ultralearning; Anna Laurent; Self-published via Amazon -* 101 Essays that change the way you think; Brianna Wiest; Audible -* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne -* Ultralearning; Scott Young; Thorsons -* The Good Enough Job; Simone Stolzoff; Ebury Edge -* Eat That Frog; Brian Tracy -* Soft Skills; John Sommez; Manning Publications -* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books +* Slow Productivity; Cal Newport; Penguin Random House * Stop starting, start finishing; Arne Roock; Lean-Kanban University +* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne +* 101 Essays that change the way you think; Brianna Wiest; Audible +* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly +* The Power of Now; Eckhard Tolle; Yellow Kite +* Solve for Happy; Mo Gawdat +* Psycho-Cybernetics; Maxwell Maltz; Perigee Books +* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd * Atomic Habits; James Clear; Random House Business -* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion -* The Bullet Journal Method; Ryder Carroll; Fourth Estate +* Staff Engineer: Leadership beyond the management track; Will Larson; Audible +* Soft Skills; John Sommez; Manning Publications +* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing +* Digital Minimalism; Cal Newport; Portofolio Penguin +* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select * The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook +* The Joy of Missing Out; Christina Crook; New Society Publishers +* Ultralearning; Anna Laurent; Self-published via Amazon * The Off Switch; Mark Cropley; Virgin Books -* The Power of Now; Eckhard Tolle; Yellow Kite -* 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 -* Staff Engineer: Leadership beyond the management track; Will Larson; Audible -* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd +* Ultralearning; Scott Young; Thorsons +* The Bullet Journal Method; Ryder Carroll; Fourth Estate +* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion +* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books +* Eat That Frog; Brian Tracy +* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press * Deep Work; Cal Newport; Piatkus -* Solve for Happy; Mo Gawdat -* Digital Minimalism; Cal Newport; Portofolio Penguin -* Influence without Authority; A. Cohen, D. Bradford; Wiley +* The Good Enough Job; Simone Stolzoff; Ebury Edge * So Good They Can't Ignore You; Cal Newport; Business Plus +* Eat That Frog!; Brian Tracy; Hodder Paperbacks +* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business +* Influence without Authority; A. Cohen, D. Bradford; Wiley => ../notes/index.gmi Here are notes of mine for some of the books @@ -136,30 +136,30 @@ In random order: Some of these were in-person with exams; others were online learning lectures only. In random order: -* Apache Tomcat Best Practises; 3-day on-site training -* Functional programming lecture; Remote University of Hagen -* Protocol buffers; O'Reilly Online * Scripting Vim; Damian Conway; O'Reilly Online +* Structure and Interpretation of Computer Programs; Harold Abelson and more...; +* F5 Loadbalancers Training; 2-day on-site training; F5, Inc. +* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online * The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online -* MySQL Deep Dive Workshop; 2-day on-site training -* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training +* Functional programming lecture; Remote University of Hagen * Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon -* Ultimate Go Programming; Bill Kennedy; O'Reilly Online -* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online +* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training +* 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) * Developing IaC with Terraform (with Live Lessons); O'Reilly Online -* Structure and Interpretation of Computer Programs; Harold Abelson and more...; +* MySQL Deep Dive Workshop; 2-day on-site training +* Ultimate Go Programming; Bill Kennedy; O'Reilly Online * The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online * AWS Immersion Day; Amazon; 1-day interactive online training -* F5 Loadbalancers Training; 2-day on-site training; F5, Inc. -* 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) +* Apache Tomcat Best Practises; 3-day on-site training +* Protocol buffers; O'Reilly Online ## Technical guides These are not whole books, but guides (smaller or larger) which I found very useful. in random order: +* Advanced Bash-Scripting Guide * How CPUs work at https://cpu.land * Raku Guide at https://raku.guide -* Advanced Bash-Scripting Guide ## Podcasts @@ -167,44 +167,44 @@ These are not whole books, but guides (smaller or larger) which I found very use In random order: -* Deep Questions with Cal Newport * Cup o' Go [Golang] +* Backend Banter +* Maintainable * Hidden Brain -* The Pragmatic Engineer Podcast * Fork Around And Find Out -* Backend Banter -* The Changelog Podcast(s) +* Fallthrough [Golang] * Dev Interrupted -* Maintainable +* Deep Questions with Cal Newport * The ProdCast (Google SRE Podcast) -* Fallthrough [Golang] +* The Pragmatic Engineer Podcast +* The Changelog Podcast(s) ### 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. -* Modern Mentor -* CRE: Chaosradio Express [german] +* Java Pub House * FLOSS weekly +* Modern Mentor * Ship It (predecessor of Fork Around And Find Out) -* Java Pub House +* CRE: Chaosradio Express [german] * Go Time (predecessor of fallthrough) ## Newsletters I like This is a mix of tech and non-tech newsletters I am subscribed to. In random order: -* The Valuable Dev +* Changelog News +* Ruby Weekly * VK Newsletter +* Andreas Brandhorst Newsletter (Sci-Fi author) +* byteSizeGo * The Prgagmatic Engineer * Monospace Mentor * Applied Go Weekly Newsletter -* Register Spill -* Andreas Brandhorst Newsletter (Sci-Fi author) -* Ruby Weekly -* byteSizeGo * The Imperfectionist -* Changelog News +* Register Spill +* The Valuable Dev * Golang Weekly # Formal education diff --git a/gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi b/gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi new file mode 100644 index 00000000..a25d1eb8 --- /dev/null +++ b/gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi @@ -0,0 +1,324 @@ +# Posts from October to December 2024 + +> Published at 2024-12-31T18:09:58+02:00 + +Happy new year! + +These are my social media posts from the last three months. I keep them here to reflect on them and also to not lose them. Social media networks come and go and are not under my control, but my domain is here to stay. + +These are from Mastodon and LinkedIn. Have a look at my about page for my social media profiles. This list is generated with Gos, my social media platform sharing tool. + +=> ../about/index.gmi My about page +=> https://codeberg.org/snonux/gos + +## Table of Contents + +* ⇢ Posts from October to December 2024 +* ⇢ ⇢ October 2024 +* ⇢ ⇢ ⇢ First on-call experience in a startup. Doesn't ... +* ⇢ ⇢ ⇢ Reviewing your own PR or MR before asking ... +* ⇢ ⇢ ⇢ Fun with defer in `#golang`, I did't know, that ... +* ⇢ ⇢ ⇢ I have been in incidents. Understandably, ... +* ⇢ ⇢ ⇢ Little tips using strings in `#golang` and I ... +* ⇢ ⇢ ⇢ Reading this post about `#rust` (especially the ... +* ⇢ ⇢ ⇢ The opposite of `#ChaosMonkey` ... ... +* ⇢ ⇢ November 2024 +* ⇢ ⇢ ⇢ I just became a Silver Patreon for OSnews. What ... +* ⇢ ⇢ ⇢ Until now, I wasn't aware, that Go is under a ... +* ⇢ ⇢ ⇢ These are some book notes from "Staff Engineer" ... +* ⇢ ⇢ ⇢ Looking at `#Kubernetes`, it's pretty much ... +* ⇢ ⇢ ⇢ There has been an outage at the upstream ... +* ⇢ ⇢ ⇢ One of the more confusing parts in Go, nil ... +* ⇢ ⇢ ⇢ Agreeably, writing down with Diagrams helps you ... +* ⇢ ⇢ ⇢ I like the idea of types in Ruby. Raku is ... +* ⇢ ⇢ ⇢ So, `#Haskell` is better suited for general ... +* ⇢ ⇢ ⇢ At first, functional options add a bit of ... +* ⇢ ⇢ ⇢ Revamping my home lab a little bit. `#freebsd` ... +* ⇢ ⇢ ⇢ Wondering to which `#web` `#browser` I should ... +* ⇢ ⇢ ⇢ eks-node-viewer is a nifty tool, showing the ... +* ⇢ ⇢ ⇢ Have put more Photos on - On my static photo ... +* ⇢ ⇢ ⇢ In Go, passing pointers are not automatically ... +* ⇢ ⇢ ⇢ Myself being part of an on-call rotations over ... +* ⇢ ⇢ ⇢ Feels good to code in my old love `#Perl` again ... +* ⇢ ⇢ ⇢ This is an interactive summary of the Go ... +* ⇢ ⇢ December 2024 +* ⇢ ⇢ ⇢ Thats unexpected, you cant remove a NaN key ... +* ⇢ ⇢ ⇢ My second blog post about revamping my home lab ... +* ⇢ ⇢ ⇢ Very insightful article about tech hiring in ... +* ⇢ ⇢ ⇢ for `#bpf` `#ebpf` performance debugging, have ... +* ⇢ ⇢ ⇢ 89 things he/she knows about Git commits is a ... +* ⇢ ⇢ ⇢ I found that working on multiple side projects ... +* ⇢ ⇢ ⇢ Agreed? Agreed. Besides `#Ruby`, I would also ... +* ⇢ ⇢ ⇢ Plan9 assembly format in Go, but wait, it's not ... +* ⇢ ⇢ ⇢ This is a neat blog post about the Helix text ... +* ⇢ ⇢ ⇢ This blog post is basically a rant against ... +* ⇢ ⇢ ⇢ Quick trick to get Helix themes selected ... +* ⇢ ⇢ ⇢ Example where complexity attacks you from ... +* ⇢ ⇢ ⇢ LLMs for Ops? Summaries of logs, probabilities ... +* ⇢ ⇢ ⇢ Excellent article about your dream Product ... +* ⇢ ⇢ ⇢ I just finished reading all chapters of CPU ... +* ⇢ ⇢ ⇢ Indeed, useful to know this stuff! `#sre` ... +* ⇢ ⇢ ⇢ It's the small things, which make Unix like ... +* ⇢ ⇢ ⇢ My New Year's resolution is not to start any ... + +## October 2024 + +### First on-call experience in a startup. Doesn't ... + +First on-call experience in a startup. Doesn't sound a lot of fun! But the lessons were learned! `#sre` + +=> https://ntietz.com/blog/lessons-from-my-first-on-call/ + +### Reviewing your own PR or MR before asking ... + +Reviewing your own PR or MR before asking others to review it makes a lot of sense. Have seen so many silly mistakes which would have been avoided. Saving time for the real reviewer. + +=> https://www.jvt.me/posts/2019/01/12/self-code-review/ + +### Fun with defer in `#golang`, I did't know, that ... + +Fun with defer in `#golang`, I did't know, that a defer object can either be heap or stack allocated. And there are some rules for inlining, too. + +=> https://victoriametrics.com/blog/defer-in-go/ + +### I have been in incidents. Understandably, ... + +I have been in incidents. Understandably, everyone wants the issue to be resolved as quickly and others want to know how long TTR will be. IMHO, providing no estimates at all is no solution either. So maybe give a rough estimate but clearly communicate that the estimate is rough and that X, Y, and Z can interfere, meaning there is a chance it will take longer to resolve the incident. Just my thought. What's yours? + +=> https://firehydrant.com/blog/hot-take-dont-provide-incident-resolution-estimates/ https://firehydrant.com/blog/hot-...de-incident-resolution-estimates/ + +### Little tips using strings in `#golang` and I ... + +Little tips using strings in `#golang` and I personally think one must look more into the std lib (not just for strings, also for slices, maps,...), there are tons of useful helper functions. + +=> https://www.calhoun.io/6-tips-for-using-strings-in-go/ + +### Reading this post about `#rust` (especially the ... + +Reading this post about `#rust` (especially the first part), I think I made a good choice in deciding to dive into `#golang` instead. There was a point where I wanted to learn a new programming language, and Rust was on my list of choices. I think the Go project does a much better job of deciding what goes into the language and how. What are your thoughts? + +=> https://josephg.com/blog/rewriting-rust/ + +### The opposite of `#ChaosMonkey` ... ... + +The opposite of `#ChaosMonkey` ... automatically repairing and healing services helping to reduce manual toil work. Runbooks and scripts are only the first step, followed by a fully blown service written in Go. Could be useful, but IMHO why not rather address the root causes of the manual toil work? `#sre` + +=> https://blog.cloudflare.com/nl-nl/improving-platform-resilience-at-cloudflare/ https://blog.cloudflare.com/nl-nl...latform-resilience-at-cloudflare/ + +## November 2024 + +### I just became a Silver Patreon for OSnews. What ... + +I just became a Silver Patreon for OSnews. What is OSnews? It is an independent news site about IT. It is slightly independent and, at times, alternative. I have enjoyed it since my early student days. This one and other projects I financially support are listed here: + +=> https://foo.zone/gemfeed/2024-09-07-projects-i-support.html + +### Until now, I wasn't aware, that Go is under a ... + +Until now, I wasn't aware, that Go is under a BSD-style license (3-clause as it seems). Neat. I don't know why, but I always was under the impression it would be MIT. `#bsd` `#golang` + +=> https://go.dev/LICENSE + +### These are some book notes from "Staff Engineer" ... + +These are some book notes from "Staff Engineer" – there is some really good insight into what is expected from a Staff Engineer and beyond in the industry. I wish I had read the book earlier. + +=> https://foo.zone/gemfeed/2024-10-24-staff-engineer-book-notes.html + +### Looking at `#Kubernetes`, it's pretty much ... + +Looking at `#Kubernetes`, it's pretty much following the Unix way of doing things. It has many tools, but each tool has its own single purpose: DNS, scheduling, container runtime, various controllers, networking, observability, alerting, and more services in the control plane. Everything is managed by different services or plugins, mostly running in their dedicated pods. They don't communicate through pipes, but network sockets, though. `#k8s` + +### There has been an outage at the upstream ... + +There has been an outage at the upstream network provider for OpenBSD.Amsterdam (hoster, I am using). This was the first real-world test for my KISS HA setup, and it worked flawlessly! All my sites and services failed over automatically to my other `#OpenBSD` VM! + +=> https://foo.zone/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html https://foo.zone/gemfeed/2024-04-...gh-availability-with-OpenBSD.html +=> https://openbsd.amsterdam/ + +### One of the more confusing parts in Go, nil ... + +One of the more confusing parts in Go, nil values vs nil errors: `#golang` + +=> https://unexpected-go.com/nil-errors-that-are-non-nil-errors.html + +### Agreeably, writing down with Diagrams helps you ... + +Agreeably, writing down with Diagrams helps you to think things more through. And keeps others on the same page. Only worth for projects from a certain size, IMHO. + +=> https://ntietz.com/blog/reasons-to-write-design-docs/ + +### I like the idea of types in Ruby. Raku is ... + +I like the idea of types in Ruby. Raku is supports that already, but in Ruby, you must specify the types in a separate .rbs file, which is, in my opinion, cumbersome and is a reason not to use it extensively for now. I believe there are efforts to embed the type information in the standard .rb files, and that the .rbs is just an experiment to see how types could work out without introducing changes into the core Ruby language itself right now? `#Ruby` `#RakuLang` + +=> https://github.com/ruby/rbs + +### So, `#Haskell` is better suited for general ... + +So, `#Haskell` is better suited for general purpose than `#Rust`? I thought deploying something in Haskell means publishing an academic paper :-) Interesting rant about Rust, though: + +=> https://chrisdone.com/posts/rust/ + +### At first, functional options add a bit of ... + +At first, functional options add a bit of boilerplate, but they turn out to be quite neat, especially when you have very long parameter lists that need to be made neat and tidy. `#golang` + +=> https://www.calhoun.io/using-functional-options-instead-of-method-chaining-in-go/ https://www.calhoun.io/using-func...instead-of-method-chaining-in-go/ + +### Revamping my home lab a little bit. `#freebsd` ... + +Revamping my home lab a little bit. `#freebsd` `#bhyve` `#rocky` `#linux` `#vm` `#k3s` `#kuberbetes` `#wireguard` `#zfs` `#nfs` `#ha` `#relayd` `#k8s` `#selfhosting` `#self`-hosting `#homelab` `#home`-lab + +=> https://foo.zone/gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.html https://foo.zone/gemfeed/2024-11-...bernetes-with-freebsd-part-1.html + +### Wondering to which `#web` `#browser` I should ... + +Wondering to which `#web` `#browser` I should switch now personally ... + +=> https://www.osnews.com/story/141100/mozilla-foundation-lays-off-30-of-its-employees-ends-advocacy-for-open-web-privacy-and-more/ https://www.osnews.com/story/1411...cy-for-open-web-privacy-and-more/ + +### eks-node-viewer is a nifty tool, showing the ... + +eks-node-viewer is a nifty tool, showing the compute nodes currently in use in the `#EKS` cluster. especially useful when dynamically allocating nodes with `#karpenter` or auto scaling groups. + +=> https://github.com/awslabs/eks-node-viewer + +### Have put more Photos on - On my static photo ... + +Have put more Photos on - On my static photo sites - Generated with a `#bash` script + +=> https://irregular.ninja + +### In Go, passing pointers are not automatically ... + +In Go, passing pointers are not automatically faster than values. Pointers often force the memory to be allocated on the heap, adding GC overhad. With values, Go can determine whether to put the memory on the stack instead. But with large structs/objects (how you want to call them) or if you want to modify state, then pointers are the semantic to use. `#golang` + +=> https://blog.boot.dev/golang/pointers-faster-than-values/ + +### Myself being part of an on-call rotations over ... + +Myself being part of an on-call rotations over my whole professional life, just have learned this lesson "Tell people who are new to on-call: Just have fun" :-) This is a neat blog post to read: + +=> https://ntietz.com/blog/what-i-tell-people-new-to-oncall/ + +### Feels good to code in my old love `#Perl` again ... + +Feels good to code in my old love `#Perl` again after a while. I am implementing a log parser for generating site stats of my personal homepage! :-) @Perl + +### This is an interactive summary of the Go ... + +This is an interactive summary of the Go release, with a lot of examples utilising iterators in the slices and map packages. Love it! `#golang` + +=> https://antonz.org/go-1-23/ + +## December 2024 + +### Thats unexpected, you cant remove a NaN key ... + +Thats unexpected, you cant remove a NaN key from a map without clearing it! `#golang` + +=> https://unexpected-go.com/you-cant-remove-a-nan-key-from-a-map-without-clearing-it.html https://unexpected-go.com/you-can...om-a-map-without-clearing-it.html + +### My second blog post about revamping my home lab ... + +My second blog post about revamping my home lab a little bit just hit the net. `#FreeBSD` `#ZFS` `#n100` `#k8s` `#k3s` `#kubernetes` + +=> https://foo.zone/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html https://foo.zone/gemfeed/2024-12-...bernetes-with-freebsd-part-2.html + +### Very insightful article about tech hiring in ... + +Very insightful article about tech hiring in the age of LLMs. As an interviewer, I have experienced some of the scrnarios already first hand... + +=> https://newsletter.pragmaticengineer.com/p/how-genai-changes-tech-hiring https://newsletter.pragmaticengin...m/p/how-genai-changes-tech-hiring + +### for `#bpf` `#ebpf` performance debugging, have ... + +for `#bpf` `#ebpf` performance debugging, have a look at bpftop from Netflix. A neat tool showing you the estimated CPU time and other performance statistics for all the BPF programs currently loaded into the `#linux` kernel. Highly recommend! + +=> https://github.com/Netflix/bpftop + +### 89 things he/she knows about Git commits is a ... + +89 things he/she knows about Git commits is a neat list of `#Git` wisdoms + +=> https://www.jvt.me/posts/2024/07/12/things-know-commits/ + +### I found that working on multiple side projects ... + +I found that working on multiple side projects concurrently is better than concentrating on just one. This seems inefficient at first, but whenever you tend to lose motivation, you can temporarily switch to another one with full élan. However, remember to stop starting and start finishing. This doesn't mean you should be working on 10+ (and a growing list of) side projects concurrently! Select your projects and commit to finishing them before starting the next thing. For example, my current limit of concurrent side projects is around five. + +### Agreed? Agreed. Besides `#Ruby`, I would also ... + +Agreed? Agreed. Besides `#Ruby`, I would also add `#RakuLang` and `#Perl` @Perl to the list of languages that are great for shell scripts - "Making Easy Things Easy and Hard Things Possible" + +=> https://lucasoshiro.github.io/posts-en/2024-06-17-ruby-shellscript/ + +### Plan9 assembly format in Go, but wait, it's not ... + +Plan9 assembly format in Go, but wait, it's not the Operating System Plan9! `#golang` `#rabbithole` + +=> https://www.osnews.com/story/140941/go-plan9-memo-speeding-up-calculations-450/ https://www.osnews.com/story/1409...emo-speeding-up-calculations-450/ + +### This is a neat blog post about the Helix text ... + +This is a neat blog post about the Helix text editor, to which I personally switched around a year ago (from NeoVim). I should blog about my experience as well. To summarize: I am using it together with the terminal multiplexer `#tmux`. It doesn't bother me that Helix is purely terminal-based and therefore everything has to be in the same font. `#HelixEditor` + +=> https://jonathan-frere.com/posts/helix/ + +### This blog post is basically a rant against ... + +This blog post is basically a rant against DataDog... Personally, I don't have much experience with DataDog (actually, I have never used it), but one reason to work with logs at my day job (with over 2,000 physical server machines) and to be cost-effective is by using dtail! `#dtail` `#logs` `#logmanagement` + +=> https://crys.site/blog/2024/reinventint-the-weel/ +=> https://dtail.dev + +### Quick trick to get Helix themes selected ... + +Quick trick to get Helix themes selected randomly `#HelixEditor` + +=> https://foo.zone/gemfeed/2024-12-15-random-helix-themes.html + +### Example where complexity attacks you from ... + +Example where complexity attacks you from behind `#k8s` `#kubernetes` `#OpenAI` + +=> https://surfingcomplexity.blog/2024/12/14/quick-takes-on-the-recent-openai-public-incident-write-up/ https://surfingcomplexity.blog/20...-openai-public-incident-write-up/ + +### LLMs for Ops? Summaries of logs, probabilities ... + +LLMs for Ops? Summaries of logs, probabilities about correctness, auto-generating Ansible, some uses cases are there. Wouldn't trust it fully, though. + +=> https://youtu.be/WodaffxVq-E?si=noY0egrfl5izCSQI + +### Excellent article about your dream Product ... + +Excellent article about your dream Product Manager: Why every software team needs a product manager to thrive via @wallabagapp + +=> https://testdouble.com/insights/why-product-managers-accelerate-improve-software-delivery https://testdouble.com/insights/w...elerate-improve-software-delivery + +### I just finished reading all chapters of CPU ... + +I just finished reading all chapters of CPU land: ... not claiming to remember every detail, but it is a great refresher how CPUs and operating systems actually work under the hood when you execute a program, which we tend to forget in our higher abstraction world. I liked the "story" and some of the jokes along the way! Size wise, it is pretty digestable (not talking about books, but only 7 web articles/chapters)! `#cpu` `#linux` `#unix` `#kernel` `#macOS` + +=> https://cpu.land/ + +### Indeed, useful to know this stuff! `#sre` ... + +Indeed, useful to know this stuff! `#sre` + +=> https://biriukov.dev/docs/resolver-dual-stack-application/0-sre-should-know-about-gnu-linux-resolvers-and-dual-stack-applications/ https://biriukov.dev/docs/resolve...vers-and-dual-stack-applications/ + +### It's the small things, which make Unix like ... + +It's the small things, which make Unix like systems, like GNU/Linux, interesting. Didn't know about this `#GNU` `#Tar` behaviour yet: + +=> https://xeiaso.net/notes/2024/pop-quiz-tar/ + +### My New Year's resolution is not to start any ... + +My plan for the New Year is not to start any new non-fiction books (or only a few) but to re-read and listen to my favorites, which I read to reflect on and see things from different perspectives. Every time you re-read a book, you gain new insights. + +E-Mail your comments to `paul@nospam.buetow.org` :-) + +=> ../ Back to the main site diff --git a/gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi.tpl b/gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi.tpl new file mode 100644 index 00000000..6074c257 --- /dev/null +++ b/gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi.tpl @@ -0,0 +1,276 @@ +# Posts from October to December 2024 + +> Published at 2024-12-31T18:09:58+02:00 + +Happy new year! + +These are my social media posts from the last three months. I keep them here to reflect on them and also to not lose them. Social media networks come and go and are not under my control, but my domain is here to stay. + +These are from Mastodon and LinkedIn. Have a look at my about page for my social media profiles. This list is generated with Gos, my social media platform sharing tool. + +=> ../about/index.gmi My about page +=> https://codeberg.org/snonux/gos + +<< template::inline::toc + +## October 2024 + +### First on-call experience in a startup. Doesn't ... + +First on-call experience in a startup. Doesn't sound a lot of fun! But the lessons were learned! `#sre` + +=> https://ntietz.com/blog/lessons-from-my-first-on-call/ + +### Reviewing your own PR or MR before asking ... + +Reviewing your own PR or MR before asking others to review it makes a lot of sense. Have seen so many silly mistakes which would have been avoided. Saving time for the real reviewer. + +=> https://www.jvt.me/posts/2019/01/12/self-code-review/ + +### Fun with defer in `#golang`, I did't know, that ... + +Fun with defer in `#golang`, I did't know, that a defer object can either be heap or stack allocated. And there are some rules for inlining, too. + +=> https://victoriametrics.com/blog/defer-in-go/ + +### I have been in incidents. Understandably, ... + +I have been in incidents. Understandably, everyone wants the issue to be resolved as quickly and others want to know how long TTR will be. IMHO, providing no estimates at all is no solution either. So maybe give a rough estimate but clearly communicate that the estimate is rough and that X, Y, and Z can interfere, meaning there is a chance it will take longer to resolve the incident. Just my thought. What's yours? + +=> https://firehydrant.com/blog/hot-take-dont-provide-incident-resolution-estimates/ https://firehydrant.com/blog/hot-...de-incident-resolution-estimates/ + +### Little tips using strings in `#golang` and I ... + +Little tips using strings in `#golang` and I personally think one must look more into the std lib (not just for strings, also for slices, maps,...), there are tons of useful helper functions. + +=> https://www.calhoun.io/6-tips-for-using-strings-in-go/ + +### Reading this post about `#rust` (especially the ... + +Reading this post about `#rust` (especially the first part), I think I made a good choice in deciding to dive into `#golang` instead. There was a point where I wanted to learn a new programming language, and Rust was on my list of choices. I think the Go project does a much better job of deciding what goes into the language and how. What are your thoughts? + +=> https://josephg.com/blog/rewriting-rust/ + +### The opposite of `#ChaosMonkey` ... ... + +The opposite of `#ChaosMonkey` ... automatically repairing and healing services helping to reduce manual toil work. Runbooks and scripts are only the first step, followed by a fully blown service written in Go. Could be useful, but IMHO why not rather address the root causes of the manual toil work? `#sre` + +=> https://blog.cloudflare.com/nl-nl/improving-platform-resilience-at-cloudflare/ https://blog.cloudflare.com/nl-nl...latform-resilience-at-cloudflare/ + +## November 2024 + +### I just became a Silver Patreon for OSnews. What ... + +I just became a Silver Patreon for OSnews. What is OSnews? It is an independent news site about IT. It is slightly independent and, at times, alternative. I have enjoyed it since my early student days. This one and other projects I financially support are listed here: + +=> https://foo.zone/gemfeed/2024-09-07-projects-i-support.html + +### Until now, I wasn't aware, that Go is under a ... + +Until now, I wasn't aware, that Go is under a BSD-style license (3-clause as it seems). Neat. I don't know why, but I always was under the impression it would be MIT. `#bsd` `#golang` + +=> https://go.dev/LICENSE + +### These are some book notes from "Staff Engineer" ... + +These are some book notes from "Staff Engineer" – there is some really good insight into what is expected from a Staff Engineer and beyond in the industry. I wish I had read the book earlier. + +=> https://foo.zone/gemfeed/2024-10-24-staff-engineer-book-notes.html + +### Looking at `#Kubernetes`, it's pretty much ... + +Looking at `#Kubernetes`, it's pretty much following the Unix way of doing things. It has many tools, but each tool has its own single purpose: DNS, scheduling, container runtime, various controllers, networking, observability, alerting, and more services in the control plane. Everything is managed by different services or plugins, mostly running in their dedicated pods. They don't communicate through pipes, but network sockets, though. `#k8s` + +### There has been an outage at the upstream ... + +There has been an outage at the upstream network provider for OpenBSD.Amsterdam (hoster, I am using). This was the first real-world test for my KISS HA setup, and it worked flawlessly! All my sites and services failed over automatically to my other `#OpenBSD` VM! + +=> https://foo.zone/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html https://foo.zone/gemfeed/2024-04-...gh-availability-with-OpenBSD.html +=> https://openbsd.amsterdam/ + +### One of the more confusing parts in Go, nil ... + +One of the more confusing parts in Go, nil values vs nil errors: `#golang` + +=> https://unexpected-go.com/nil-errors-that-are-non-nil-errors.html + +### Agreeably, writing down with Diagrams helps you ... + +Agreeably, writing down with Diagrams helps you to think things more through. And keeps others on the same page. Only worth for projects from a certain size, IMHO. + +=> https://ntietz.com/blog/reasons-to-write-design-docs/ + +### I like the idea of types in Ruby. Raku is ... + +I like the idea of types in Ruby. Raku is supports that already, but in Ruby, you must specify the types in a separate .rbs file, which is, in my opinion, cumbersome and is a reason not to use it extensively for now. I believe there are efforts to embed the type information in the standard .rb files, and that the .rbs is just an experiment to see how types could work out without introducing changes into the core Ruby language itself right now? `#Ruby` `#RakuLang` + +=> https://github.com/ruby/rbs + +### So, `#Haskell` is better suited for general ... + +So, `#Haskell` is better suited for general purpose than `#Rust`? I thought deploying something in Haskell means publishing an academic paper :-) Interesting rant about Rust, though: + +=> https://chrisdone.com/posts/rust/ + +### At first, functional options add a bit of ... + +At first, functional options add a bit of boilerplate, but they turn out to be quite neat, especially when you have very long parameter lists that need to be made neat and tidy. `#golang` + +=> https://www.calhoun.io/using-functional-options-instead-of-method-chaining-in-go/ https://www.calhoun.io/using-func...instead-of-method-chaining-in-go/ + +### Revamping my home lab a little bit. `#freebsd` ... + +Revamping my home lab a little bit. `#freebsd` `#bhyve` `#rocky` `#linux` `#vm` `#k3s` `#kuberbetes` `#wireguard` `#zfs` `#nfs` `#ha` `#relayd` `#k8s` `#selfhosting` `#self`-hosting `#homelab` `#home`-lab + +=> https://foo.zone/gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.html https://foo.zone/gemfeed/2024-11-...bernetes-with-freebsd-part-1.html + +### Wondering to which `#web` `#browser` I should ... + +Wondering to which `#web` `#browser` I should switch now personally ... + +=> https://www.osnews.com/story/141100/mozilla-foundation-lays-off-30-of-its-employees-ends-advocacy-for-open-web-privacy-and-more/ https://www.osnews.com/story/1411...cy-for-open-web-privacy-and-more/ + +### eks-node-viewer is a nifty tool, showing the ... + +eks-node-viewer is a nifty tool, showing the compute nodes currently in use in the `#EKS` cluster. especially useful when dynamically allocating nodes with `#karpenter` or auto scaling groups. + +=> https://github.com/awslabs/eks-node-viewer + +### Have put more Photos on - On my static photo ... + +Have put more Photos on - On my static photo sites - Generated with a `#bash` script + +=> https://irregular.ninja + +### In Go, passing pointers are not automatically ... + +In Go, passing pointers are not automatically faster than values. Pointers often force the memory to be allocated on the heap, adding GC overhad. With values, Go can determine whether to put the memory on the stack instead. But with large structs/objects (how you want to call them) or if you want to modify state, then pointers are the semantic to use. `#golang` + +=> https://blog.boot.dev/golang/pointers-faster-than-values/ + +### Myself being part of an on-call rotations over ... + +Myself being part of an on-call rotations over my whole professional life, just have learned this lesson "Tell people who are new to on-call: Just have fun" :-) This is a neat blog post to read: + +=> https://ntietz.com/blog/what-i-tell-people-new-to-oncall/ + +### Feels good to code in my old love `#Perl` again ... + +Feels good to code in my old love `#Perl` again after a while. I am implementing a log parser for generating site stats of my personal homepage! :-) @Perl + +### This is an interactive summary of the Go ... + +This is an interactive summary of the Go release, with a lot of examples utilising iterators in the slices and map packages. Love it! `#golang` + +=> https://antonz.org/go-1-23/ + +## December 2024 + +### Thats unexpected, you cant remove a NaN key ... + +Thats unexpected, you cant remove a NaN key from a map without clearing it! `#golang` + +=> https://unexpected-go.com/you-cant-remove-a-nan-key-from-a-map-without-clearing-it.html https://unexpected-go.com/you-can...om-a-map-without-clearing-it.html + +### My second blog post about revamping my home lab ... + +My second blog post about revamping my home lab a little bit just hit the net. `#FreeBSD` `#ZFS` `#n100` `#k8s` `#k3s` `#kubernetes` + +=> https://foo.zone/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html https://foo.zone/gemfeed/2024-12-...bernetes-with-freebsd-part-2.html + +### Very insightful article about tech hiring in ... + +Very insightful article about tech hiring in the age of LLMs. As an interviewer, I have experienced some of the scrnarios already first hand... + +=> https://newsletter.pragmaticengineer.com/p/how-genai-changes-tech-hiring https://newsletter.pragmaticengin...m/p/how-genai-changes-tech-hiring + +### for `#bpf` `#ebpf` performance debugging, have ... + +for `#bpf` `#ebpf` performance debugging, have a look at bpftop from Netflix. A neat tool showing you the estimated CPU time and other performance statistics for all the BPF programs currently loaded into the `#linux` kernel. Highly recommend! + +=> https://github.com/Netflix/bpftop + +### 89 things he/she knows about Git commits is a ... + +89 things he/she knows about Git commits is a neat list of `#Git` wisdoms + +=> https://www.jvt.me/posts/2024/07/12/things-know-commits/ + +### I found that working on multiple side projects ... + +I found that working on multiple side projects concurrently is better than concentrating on just one. This seems inefficient at first, but whenever you tend to lose motivation, you can temporarily switch to another one with full élan. However, remember to stop starting and start finishing. This doesn't mean you should be working on 10+ (and a growing list of) side projects concurrently! Select your projects and commit to finishing them before starting the next thing. For example, my current limit of concurrent side projects is around five. + +### Agreed? Agreed. Besides `#Ruby`, I would also ... + +Agreed? Agreed. Besides `#Ruby`, I would also add `#RakuLang` and `#Perl` @Perl to the list of languages that are great for shell scripts - "Making Easy Things Easy and Hard Things Possible" + +=> https://lucasoshiro.github.io/posts-en/2024-06-17-ruby-shellscript/ + +### Plan9 assembly format in Go, but wait, it's not ... + +Plan9 assembly format in Go, but wait, it's not the Operating System Plan9! `#golang` `#rabbithole` + +=> https://www.osnews.com/story/140941/go-plan9-memo-speeding-up-calculations-450/ https://www.osnews.com/story/1409...emo-speeding-up-calculations-450/ + +### This is a neat blog post about the Helix text ... + +This is a neat blog post about the Helix text editor, to which I personally switched around a year ago (from NeoVim). I should blog about my experience as well. To summarize: I am using it together with the terminal multiplexer `#tmux`. It doesn't bother me that Helix is purely terminal-based and therefore everything has to be in the same font. `#HelixEditor` + +=> https://jonathan-frere.com/posts/helix/ + +### This blog post is basically a rant against ... + +This blog post is basically a rant against DataDog... Personally, I don't have much experience with DataDog (actually, I have never used it), but one reason to work with logs at my day job (with over 2,000 physical server machines) and to be cost-effective is by using dtail! `#dtail` `#logs` `#logmanagement` + +=> https://crys.site/blog/2024/reinventint-the-weel/ +=> https://dtail.dev + +### Quick trick to get Helix themes selected ... + +Quick trick to get Helix themes selected randomly `#HelixEditor` + +=> https://foo.zone/gemfeed/2024-12-15-random-helix-themes.html + +### Example where complexity attacks you from ... + +Example where complexity attacks you from behind `#k8s` `#kubernetes` `#OpenAI` + +=> https://surfingcomplexity.blog/2024/12/14/quick-takes-on-the-recent-openai-public-incident-write-up/ https://surfingcomplexity.blog/20...-openai-public-incident-write-up/ + +### LLMs for Ops? Summaries of logs, probabilities ... + +LLMs for Ops? Summaries of logs, probabilities about correctness, auto-generating Ansible, some uses cases are there. Wouldn't trust it fully, though. + +=> https://youtu.be/WodaffxVq-E?si=noY0egrfl5izCSQI + +### Excellent article about your dream Product ... + +Excellent article about your dream Product Manager: Why every software team needs a product manager to thrive via @wallabagapp + +=> https://testdouble.com/insights/why-product-managers-accelerate-improve-software-delivery https://testdouble.com/insights/w...elerate-improve-software-delivery + +### I just finished reading all chapters of CPU ... + +I just finished reading all chapters of CPU land: ... not claiming to remember every detail, but it is a great refresher how CPUs and operating systems actually work under the hood when you execute a program, which we tend to forget in our higher abstraction world. I liked the "story" and some of the jokes along the way! Size wise, it is pretty digestable (not talking about books, but only 7 web articles/chapters)! `#cpu` `#linux` `#unix` `#kernel` `#macOS` + +=> https://cpu.land/ + +### Indeed, useful to know this stuff! `#sre` ... + +Indeed, useful to know this stuff! `#sre` + +=> https://biriukov.dev/docs/resolver-dual-stack-application/0-sre-should-know-about-gnu-linux-resolvers-and-dual-stack-applications/ https://biriukov.dev/docs/resolve...vers-and-dual-stack-applications/ + +### It's the small things, which make Unix like ... + +It's the small things, which make Unix like systems, like GNU/Linux, interesting. Didn't know about this `#GNU` `#Tar` behaviour yet: + +=> https://xeiaso.net/notes/2024/pop-quiz-tar/ + +### My New Year's resolution is not to start any ... + +My plan for the New Year is not to start any new non-fiction books (or only a few) but to re-read and listen to my favorites, which I read to reflect on and see things from different perspectives. Every time you re-read a book, you gain new insights. + +E-Mail your comments to `paul@nospam.buetow.org` :-) + +=> ../ Back to the main site diff --git a/gemfeed/20250101-posts-from-october-to-december-2024.gmi b/gemfeed/20250101-posts-from-october-to-december-2024.gmi new file mode 100644 index 00000000..2b31022d --- /dev/null +++ b/gemfeed/20250101-posts-from-october-to-december-2024.gmi @@ -0,0 +1,326 @@ +# Posts from October to December 2024 + +These are my social media posts from the last three months. I keep them here to reflect on them and also to not lose them. Social media networks come and go and are not under my control, but my domain is here to stay. + +These are from Mastodon and LinkedIn. Have a look at my about page for my social media profiles. + +=> ../about/index.gmi + +## Table of Contents + +* ⇢ Posts from October to December 2024 +* ⇢ ⇢ October 2024 +* ⇢ ⇢ ⇢ First on-call experience in a startup. Doesn't ... +* ⇢ ⇢ ⇢ Reviewing your own PR or MR before asking ... +* ⇢ ⇢ ⇢ Fun with defer in `#golang`, I did't know, that ... +* ⇢ ⇢ ⇢ I have been in incidents. Understandably, ... +* ⇢ ⇢ ⇢ Little tips using strings in `#golang` and I ... +* ⇢ ⇢ ⇢ Reading this post about `#rust` (especially the ... +* ⇢ ⇢ ⇢ The opposite of `#ChaosMonkey` ... ... +* ⇢ ⇢ November 2024 +* ⇢ ⇢ ⇢ I just became a Silver Patreon for OSnews. What ... +* ⇢ ⇢ ⇢ Until now, I wasn't aware, that Go is under a ... +* ⇢ ⇢ ⇢ These are some book notes from "Staff Engineer" ... +* ⇢ ⇢ ⇢ Looking at `#Kubernetes`, it's pretty much ... +* ⇢ ⇢ ⇢ There has been an outage at the upstream ... +* ⇢ ⇢ ⇢ One of the more confusing parts in Go, nil ... +* ⇢ ⇢ ⇢ Agreeably, writing down with Diagrams helps you ... +* ⇢ ⇢ ⇢ I like the idea of types in Ruby. Raku is ... +* ⇢ ⇢ ⇢ So, `#Haskell` is better suited for general ... +* ⇢ ⇢ ⇢ At first, functional options add a bit of ... +* ⇢ ⇢ ⇢ Revamping my home lab a little bit. `#freebsd` ... +* ⇢ ⇢ ⇢ Revamping my home lab a little bit. `#freebsd` ... +* ⇢ ⇢ ⇢ Wondering to which `#web` `#browser` I should ... +* ⇢ ⇢ ⇢ eks-node-viewer is a nifty tool, showing the ... +* ⇢ ⇢ ⇢ Have put more Photos on - On my static photo ... +* ⇢ ⇢ ⇢ In Go, passing pointers are not automatically ... +* ⇢ ⇢ ⇢ Myself being part of an on-call rotations over ... +* ⇢ ⇢ ⇢ Feels good to code in my old love `#Perl` again ... +* ⇢ ⇢ ⇢ This is an interactive summary of the Go ... +* ⇢ ⇢ December 2024 +* ⇢ ⇢ ⇢ Thats unexpected, you cant remove a NaN key ... +* ⇢ ⇢ ⇢ My second blog post about revamping my home lab ... +* ⇢ ⇢ ⇢ Very insightful article about tech hiring in ... +* ⇢ ⇢ ⇢ for `#bpf` `#ebpf` performance debugging, have ... +* ⇢ ⇢ ⇢ 89 things he/she knows about Git commits is a ... +* ⇢ ⇢ ⇢ I found that working on multiple side projects ... +* ⇢ ⇢ ⇢ Agreed? Agreed. Besides `#Ruby`, I would also ... +* ⇢ ⇢ ⇢ Plan9 assembly format in Go, but wait, it's not ... +* ⇢ ⇢ ⇢ This is a neat blog post about the Helix text ... +* ⇢ ⇢ ⇢ This blog post is basically a rant against ... +* ⇢ ⇢ ⇢ Quick trick to get Helix themes selected ... +* ⇢ ⇢ ⇢ Example where complexity attacks you from ... +* ⇢ ⇢ ⇢ LLMs for Ops? Summaries of logs, probabilities ... +* ⇢ ⇢ ⇢ Excellent article about your dream Product ... +* ⇢ ⇢ ⇢ I just finished reading all chapters of CPU ... +* ⇢ ⇢ ⇢ Indeed, useful to know this stuff! `#sre` ... +* ⇢ ⇢ ⇢ It's the small things, which make Unix like ... +* ⇢ ⇢ ⇢ My New Year's resolution is not to start any ... + +## October 2024 + +### First on-call experience in a startup. Doesn't ... + +First on-call experience in a startup. Doesn't sound a lot of fun! But the lessons were learned! `#sre` + +=> https://ntietz.com/blog/lessons-from-my-first-on-call/ + +### Reviewing your own PR or MR before asking ... + +Reviewing your own PR or MR before asking others to review it makes a lot of sense. Have seen so many silly mistakes which would have been avoided. Saving time for the real reviewer. + +=> https://www.jvt.me/posts/2019/01/12/self-code-review/ + +### Fun with defer in `#golang`, I did't know, that ... + +Fun with defer in `#golang`, I did't know, that a defer object can either be heap or stack allocated. And there are some rules for inlining, too. + +=> https://victoriametrics.com/blog/defer-in-go/ + +### I have been in incidents. Understandably, ... + +I have been in incidents. Understandably, everyone wants the issue to be resolved as quickly and others want to know how long TTR will be. IMHO, providing no estimates at all is no solution either. So maybe give a rough estimate but clearly communicate that the estimate is rough and that X, Y, and Z can interfere, meaning there is a chance it will take longer to resolve the incident. Just my thought. What's yours? + +=> https://firehydrant.com/blog/hot-take-dont-provide-incident-resolution-estimates/ https://firehydrant.com/blog/hot-...de-incident-resolution-estimates/ + +### Little tips using strings in `#golang` and I ... + +Little tips using strings in `#golang` and I personally think one must look more into the std lib (not just for strings, also for slices, maps,...), there are tons of useful helper functions. + +=> https://www.calhoun.io/6-tips-for-using-strings-in-go/ + +### Reading this post about `#rust` (especially the ... + +Reading this post about `#rust` (especially the first part), I think I made a good choice in deciding to dive into `#golang` instead. There was a point where I wanted to learn a new programming language, and Rust was on my list of choices. I think the Go project does a much better job of deciding what goes into the language and how. What are your thoughts? + +=> https://josephg.com/blog/rewriting-rust/ + +### The opposite of `#ChaosMonkey` ... ... + +The opposite of `#ChaosMonkey` ... automatically repairing and healing services helping to reduce manual toil work. Runbooks and scripts are only the first step, followed by a fully blown service written in Go. Could be useful, but IMHO why not rather address the root causes of the manual toil work? `#sre` + +=> https://blog.cloudflare.com/nl-nl/improving-platform-resilience-at-cloudflare/ https://blog.cloudflare.com/nl-nl...latform-resilience-at-cloudflare/ + +## November 2024 + +### I just became a Silver Patreon for OSnews. What ... + +I just became a Silver Patreon for OSnews. What is OSnews? It is an independent news site about IT. It is slightly independent and, at times, alternative. I have enjoyed it since my early student days. This one and other projects I financially support are listed here: + +=> https://foo.zone/gemfeed/2024-09-07-projects-i-support.html + +### Until now, I wasn't aware, that Go is under a ... + +Until now, I wasn't aware, that Go is under a BSD-style license (3-clause as it seems). Neat. I don't know why, but I always was under the impression it would be MIT. `#bsd` `#golang` + +=> https://go.dev/LICENSE + +### These are some book notes from "Staff Engineer" ... + +These are some book notes from "Staff Engineer" – there is some really good insight into what is expected from a Staff Engineer and beyond in the industry. I wish I had read the book earlier. + +=> https://foo.zone/gemfeed/2024-10-24-staff-engineer-book-notes.html + +### Looking at `#Kubernetes`, it's pretty much ... + +Looking at `#Kubernetes`, it's pretty much following the Unix way of doing things. It has many tools, but each tool has its own single purpose: DNS, scheduling, container runtime, various controllers, networking, observability, alerting, and more services in the control plane. Everything is managed by different services or plugins, mostly running in their dedicated pods. They don't communicate through pipes, but network sockets, though. `#k8s` + +### There has been an outage at the upstream ... + +There has been an outage at the upstream network provider for OpenBSD.Amsterdam (hoster, I am using). This was the first real-world test for my KISS HA setup, and it worked flawlessly! All my sites and services failed over automatically to my other `#OpenBSD` VM! + +=> https://foo.zone/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html https://foo.zone/gemfeed/2024-04-...gh-availability-with-OpenBSD.html +=> https://openbsd.amsterdam/ + +### One of the more confusing parts in Go, nil ... + +One of the more confusing parts in Go, nil values vs nil errors: `#golang` + +=> https://unexpected-go.com/nil-errors-that-are-non-nil-errors.html + +### Agreeably, writing down with Diagrams helps you ... + +Agreeably, writing down with Diagrams helps you to think things more through. And keeps others on the same page. Only worth for projects from a certain size, IMHO. + +=> https://ntietz.com/blog/reasons-to-write-design-docs/ + +### I like the idea of types in Ruby. Raku is ... + +I like the idea of types in Ruby. Raku is supports that already, but in Ruby, you must specify the types in a separate .rbs file, which is, in my opinion, cumbersome and is a reason not to use it extensively for now. I believe there are efforts to embed the type information in the standard .rb files, and that the .rbs is just an experiment to see how types could work out without introducing changes into the core Ruby language itself right now? `#Ruby` `#RakuLang` + +=> https://github.com/ruby/rbs + +### So, `#Haskell` is better suited for general ... + +So, `#Haskell` is better suited for general purpose than `#Rust`? I thought deploying something in Haskell means publishing an academic paper :-) Interesting rant about Rust, though: + +=> https://chrisdone.com/posts/rust/ + +### At first, functional options add a bit of ... + +At first, functional options add a bit of boilerplate, but they turn out to be quite neat, especially when you have very long parameter lists that need to be made neat and tidy. `#golang` + +=> https://www.calhoun.io/using-functional-options-instead-of-method-chaining-in-go/ https://www.calhoun.io/using-func...instead-of-method-chaining-in-go/ + +### Revamping my home lab a little bit. `#freebsd` ... + +Revamping my home lab a little bit. `#freebsd` `#bhyve` `#rocky` `#linux` `#vm` `#k3s` `#kuberbetes` `#wireguard` `#zfs` `#nfs` `#ha` `#relayd` `#k8s` `#selfhosting` `#self`-hosting `#homelab` `#home`-lab + +=> https://foo.zone/gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.html https://foo.zone/gemfeed/2024-11-...bernetes-with-freebsd-part-1.html + +### Revamping my home lab a little bit. `#freebsd` ... + +Revamping my home lab a little bit. `#freebsd` `#bhyve` `#rocky` `#linux` `#vm` `#k3s` `#kubernetes` `#wireguard` `#zfs` `#nfs` `#ha` `#relayd` `#k8s` `#selfhosting` `#homelab` + +=> https://foo.zone/gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.html https://foo.zone/gemfeed/2024-11-...bernetes-with-freebsd-part-1.html + +### Wondering to which `#web` `#browser` I should ... + +Wondering to which `#web` `#browser` I should switch now personally ... + +=> https://www.osnews.com/story/141100/mozilla-foundation-lays-off-30-of-its-employees-ends-advocacy-for-open-web-privacy-and-more/ https://www.osnews.com/story/1411...cy-for-open-web-privacy-and-more/ + +### eks-node-viewer is a nifty tool, showing the ... + +eks-node-viewer is a nifty tool, showing the compute nodes currently in use in the `#EKS` cluster. especially useful when dynamically allocating nodes with `#karpenter` or auto scaling groups. + +=> https://github.com/awslabs/eks-node-viewer + +### Have put more Photos on - On my static photo ... + +Have put more Photos on - On my static photo sites - Generated with a `#bash` script + +=> https://irregular.ninja + +### In Go, passing pointers are not automatically ... + +In Go, passing pointers are not automatically faster than values. Pointers often force the memory to be allocated on the heap, adding GC overhad. With values, Go can determine whether to put the memory on the stack instead. But with large structs/objects (how you want to call them) or if you want to modify state, then pointers are the semantic to use. `#golang` + +=> https://blog.boot.dev/golang/pointers-faster-than-values/ + +### Myself being part of an on-call rotations over ... + +Myself being part of an on-call rotations over my whole professional life, just have learned this lesson "Tell people who are new to on-call: Just have fun" :-) This is a neat blog post to read: + +=> https://ntietz.com/blog/what-i-tell-people-new-to-oncall/ + +### Feels good to code in my old love `#Perl` again ... + +Feels good to code in my old love `#Perl` again after a while. I am implementing a log parser for generating site stats of my personal homepage! :-) @Perl + +### This is an interactive summary of the Go ... + +This is an interactive summary of the Go release, with a lot of examples utilising iterators in the slices and map packages. Love it! `#golang` + +=> https://antonz.org/go-1-23/ + +## December 2024 + +### Thats unexpected, you cant remove a NaN key ... + +Thats unexpected, you cant remove a NaN key from a map without clearing it! `#golang` + +=> https://unexpected-go.com/you-cant-remove-a-nan-key-from-a-map-without-clearing-it.html https://unexpected-go.com/you-can...om-a-map-without-clearing-it.html + +### My second blog post about revamping my home lab ... + +My second blog post about revamping my home lab a little bit just hit the net. `#FreeBSD` `#ZFS` `#n100` `#k8s` `#k3s` `#kubernetes` + +=> https://foo.zone/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html https://foo.zone/gemfeed/2024-12-...bernetes-with-freebsd-part-2.html + +### Very insightful article about tech hiring in ... + +Very insightful article about tech hiring in the age of LLMs. As an interviewer, I have experienced some of the scrnarios already first hand... + +=> https://newsletter.pragmaticengineer.com/p/how-genai-changes-tech-hiring https://newsletter.pragmaticengin...m/p/how-genai-changes-tech-hiring + +### for `#bpf` `#ebpf` performance debugging, have ... + +for `#bpf` `#ebpf` performance debugging, have a look at bpftop from Netflix. A neat tool showing you the estimated CPU time and other performance statistics for all the BPF programs currently loaded into the `#linux` kernel. Highly recommend! + +=> https://github.com/Netflix/bpftop + +### 89 things he/she knows about Git commits is a ... + +89 things he/she knows about Git commits is a neat list of `#Git` wisdoms + +=> https://www.jvt.me/posts/2024/07/12/things-know-commits/ + +### I found that working on multiple side projects ... + +I found that working on multiple side projects concurrently is better than concentrating on just one. This seems inefficient at first, but whenever you tend to lose motivation, you can temporarily switch to another one with full élan. However, remember to stop starting and start finishing. This doesn't mean you should be working on 10+ (and a growing list of) side projects concurrently! Select your projects and commit to finishing them before starting the next thing. For example, my current limit of concurrent side projects is around five. + +### Agreed? Agreed. Besides `#Ruby`, I would also ... + +Agreed? Agreed. Besides `#Ruby`, I would also add `#RakuLang` and `#Perl` @Perl to the list of languages that are great for shell scripts - "Making Easy Things Easy and Hard Things Possible" + +=> https://lucasoshiro.github.io/posts-en/2024-06-17-ruby-shellscript/ + +### Plan9 assembly format in Go, but wait, it's not ... + +Plan9 assembly format in Go, but wait, it's not the Operating System Plan9! `#golang` `#rabbithole` + +=> https://www.osnews.com/story/140941/go-plan9-memo-speeding-up-calculations-450/ https://www.osnews.com/story/1409...emo-speeding-up-calculations-450/ + +### This is a neat blog post about the Helix text ... + +This is a neat blog post about the Helix text editor, to which I personally switched around a year ago (from NeoVim). I should blog about my experience as well. To summarize: I am using it together with the terminal multiplexer `#tmux`. It doesn't bother me that Helix is purely terminal-based and therefore everything has to be in the same font. `#HelixEditor` + +=> https://jonathan-frere.com/posts/helix/ + +### This blog post is basically a rant against ... + +This blog post is basically a rant against DataDog... Personally, I don't have much experience with DataDog (actually, I have never used it), but one reason to work with logs at my day job (with over 2,000 physical server machines) and to be cost-effective is by using dtail! `#dtail` `#logs` `#logmanagement` + +=> https://crys.site/blog/2024/reinventint-the-weel/ +=> https://dtail.dev + +### Quick trick to get Helix themes selected ... + +Quick trick to get Helix themes selected randomly `#HelixEditor` + +=> https://foo.zone/gemfeed/2024-12-15-random-helix-themes.html + +### Example where complexity attacks you from ... + +Example where complexity attacks you from behind `#k8s` `#kubernetes` `#OpenAI` + +=> https://surfingcomplexity.blog/2024/12/14/quick-takes-on-the-recent-openai-public-incident-write-up/ https://surfingcomplexity.blog/20...-openai-public-incident-write-up/ + +### LLMs for Ops? Summaries of logs, probabilities ... + +LLMs for Ops? Summaries of logs, probabilities about correctness, auto-generating Ansible, some uses cases are there. Wouldn't trust it fully, though. + +=> https://youtu.be/WodaffxVq-E?si=noY0egrfl5izCSQI + +### Excellent article about your dream Product ... + +Excellent article about your dream Product Manager: Why every software team needs a product manager to thrive via @wallabagapp + +=> https://testdouble.com/insights/why-product-managers-accelerate-improve-software-delivery https://testdouble.com/insights/w...elerate-improve-software-delivery + +### I just finished reading all chapters of CPU ... + +I just finished reading all chapters of CPU land: ... not claiming to remember every detail, but it is a great refresher how CPUs and operating systems actually work under the hood when you execute a program, which we tend to forget in our higher abstraction world. I liked the "story" and some of the jokes along the way! Size wise, it is pretty digestable (not talking about books, but only 7 web articles/chapters)! `#cpu` `#linux` `#unix` `#kernel` `#macOS` + +=> https://cpu.land/ + +### Indeed, useful to know this stuff! `#sre` ... + +Indeed, useful to know this stuff! `#sre` + +=> https://biriukov.dev/docs/resolver-dual-stack-application/0-sre-should-know-about-gnu-linux-resolvers-and-dual-stack-applications/ https://biriukov.dev/docs/resolve...vers-and-dual-stack-applications/ + +### It's the small things, which make Unix like ... + +It's the small things, which make Unix like systems, like GNU/Linux, interesting. Didn't know about this `#GNU` `#Tar` behaviour yet: + +=> https://xeiaso.net/notes/2024/pop-quiz-tar/ + +### My New Year's resolution is not to start any ... + +My New Year's resolution is not to start any new non-fiction books (or only very few) but to re-read and listen to my favorites, which I read to reflect on and see things from different perspectives. Every time you re-read a book, you gain new insights.15419 + +E-Mail your comments to `paul@nospam.buetow.org` :-) + +=> ../ Back to the main site diff --git a/gemfeed/DRAFT-summary-for-202410-202411-202410.gmi.tpl b/gemfeed/DRAFT-summary-for-202410-202411-202410.gmi.tpl deleted file mode 100644 index c16bdba7..00000000 --- a/gemfeed/DRAFT-summary-for-202410-202411-202410.gmi.tpl +++ /dev/null @@ -1,263 +0,0 @@ -# Summary for 202410 202411 202412 - -<< template::inline::toc - -## October 2024 - -### First on-call experience in a startup. Doesn't ... - -First on-call experience in a startup. Doesn't sound a lot of fun! But the lessons were learned! `#sre` - -=> https://ntietz.com/blog/lessons-from-my-first-on-call/ - -### Reviewing your own PR or MR before asking ... - -Reviewing your own PR or MR before asking others to review it makes a lot of sense. Have seen so many silly mistakes which would have been avoided. Saving time for the real reviewer. - -=> https://www.jvt.me/posts/2019/01/12/self-code-review/ - -### Fun with defer in `#golang`, I did't know, that ... - -Fun with defer in `#golang`, I did't know, that a defer object can either be heap or stack allocated. And there are some rules for inlining, too. - -=> https://victoriametrics.com/blog/defer-in-go/ - -### I have been in incidents. Understandably, ... - -I have been in incidents. Understandably, everyone wants the issue to be resolved as quickly and others want to know how long TTR will be. IMHO, providing no estimates at all is no solution either. So maybe give a rough estimate but clearly communicate that the estimate is rough and that X, Y, and Z can interfere, meaning there is a chance it will take longer to resolve the incident. Just my thought. What's yours? - -=> https://firehydrant.com/blog/hot-take-dont-provide-incident-resolution-estimates/ https://firehydrant.com/blog/hot-...de-incident-resolution-estimates/ - -### Little tips using strings in `#golang` and I ... - -Little tips using strings in `#golang` and I personally think one must look more into the std lib (not just for strings, also for slices, maps,...), there are tons of useful helper functions. - -=> https://www.calhoun.io/6-tips-for-using-strings-in-go/ - -### Reading this post about `#rust` (especially the ... - -Reading this post about `#rust` (especially the first part), I think I made a good choice in deciding to dive into `#golang` instead. There was a point where I wanted to learn a new programming language, and Rust was on my list of choices. I think the Go project does a much better job of deciding what goes into the language and how. What are your thoughts? - -=> https://josephg.com/blog/rewriting-rust/ - -### The opposite of `#ChaosMonkey` ... ... - -The opposite of `#ChaosMonkey` ... automatically repairing and healing services helping to reduce manual toil work. Runbooks and scripts are only the first step, followed by a fully blown service written in Go. Could be useful, but IMHO why not rather address the root causes of the manual toil work? `#sre` - -=> https://blog.cloudflare.com/nl-nl/improving-platform-resilience-at-cloudflare/ https://blog.cloudflare.com/nl-nl...latform-resilience-at-cloudflare/ - -## November 2024 - -### I just became a Silver Patreon for OSnews. What ... - -I just became a Silver Patreon for OSnews. What is OSnews? It is an independent news site about IT. It is slightly independent and, at times, alternative. I have enjoyed it since my early student days. This one and other projects I financially support are listed here: - -=> https://foo.zone/gemfeed/2024-09-07-projects-i-support.html - -### Until now, I wasn't aware, that Go is under a ... - -Until now, I wasn't aware, that Go is under a BSD-style license (3-clause as it seems). Neat. I don't know why, but I always was under the impression it would be MIT. `#bsd` `#golang` - -=> https://go.dev/LICENSE - -### These are some book notes from "Staff Engineer" ... - -These are some book notes from "Staff Engineer" – there is some really good insight into what is expected from a Staff Engineer and beyond in the industry. I wish I had read the book earlier. - -=> https://foo.zone/gemfeed/2024-10-24-staff-engineer-book-notes.html - -### Looking at `#Kubernetes`, it's pretty much ... - -Looking at `#Kubernetes`, it's pretty much following the Unix way of doing things. It has many tools, but each tool has its own single purpose: DNS, scheduling, container runtime, various controllers, networking, observability, alerting, and more services in the control plane. Everything is managed by different services or plugins, mostly running in their dedicated pods. They don't communicate through pipes, but network sockets, though. `#k8s` - -### There has been an outage at the upstream ... - -There has been an outage at the upstream network provider for OpenBSD.Amsterdam (hoster, I am using). This was the first real-world test for my KISS HA setup, and it worked flawlessly! All my sites and services failed over automatically to my other `#OpenBSD` VM! - -=> https://foo.zone/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html https://foo.zone/gemfeed/2024-04-...gh-availability-with-OpenBSD.html -=> https://openbsd.amsterdam/ - -### One of the more confusing parts in Go, nil ... - -One of the more confusing parts in Go, nil values vs nil errors: `#golang` - -=> https://unexpected-go.com/nil-errors-that-are-non-nil-errors.html - -### Agreeably, writing down with Diagrams helps you ... - -Agreeably, writing down with Diagrams helps you to think things more through. And keeps others on the same page. Only worth for projects from a certain size, IMHO. - -=> https://ntietz.com/blog/reasons-to-write-design-docs/ - -### I like the idea of types in Ruby. Raku is ... - -I like the idea of types in Ruby. Raku is supports that already, but in Ruby, you must specify the types in a separate .rbs file, which is, in my opinion, cumbersome and is a reason not to use it extensively for now. I believe there are efforts to embed the type information in the standard .rb files, and that the .rbs is just an experiment to see how types could work out without introducing changes into the core Ruby language itself right now? `#Ruby` `#RakuLang` - -=> https://github.com/ruby/rbs - -### So, `#Haskell` is better suited for general ... - -So, `#Haskell` is better suited for general purpose than `#Rust`? I thought deploying something in Haskell means publishing an academic paper :-) Interesting rant about Rust, though: - -=> https://chrisdone.com/posts/rust/ - -### At first, functional options add a bit of ... - -At first, functional options add a bit of boilerplate, but they turn out to be quite neat, especially when you have very long parameter lists that need to be made neat and tidy. `#golang` - -=> https://www.calhoun.io/using-functional-options-instead-of-method-chaining-in-go/ https://www.calhoun.io/using-func...instead-of-method-chaining-in-go/ - -### Revamping my home lab a little bit. `#freebsd` ... - -Revamping my home lab a little bit. `#freebsd` `#bhyve` `#rocky` `#linux` `#vm` `#k3s` `#kuberbetes` `#wireguard` `#zfs` `#nfs` `#ha` `#relayd` `#k8s` `#selfhosting` `#self`-hosting `#homelab` `#home`-lab - -=> https://foo.zone/gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.html https://foo.zone/gemfeed/2024-11-...bernetes-with-freebsd-part-1.html - -### Revamping my home lab a little bit. `#freebsd` ... - -Revamping my home lab a little bit. `#freebsd` `#bhyve` `#rocky` `#linux` `#vm` `#k3s` `#kubernetes` `#wireguard` `#zfs` `#nfs` `#ha` `#relayd` `#k8s` `#selfhosting` `#homelab` - -=> https://foo.zone/gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.html https://foo.zone/gemfeed/2024-11-...bernetes-with-freebsd-part-1.html - -### Wondering to which `#web` `#browser` I should ... - -Wondering to which `#web` `#browser` I should switch now personally ... - -=> https://www.osnews.com/story/141100/mozilla-foundation-lays-off-30-of-its-employees-ends-advocacy-for-open-web-privacy-and-more/ https://www.osnews.com/story/1411...cy-for-open-web-privacy-and-more/ - -### eks-node-viewer is a nifty tool, showing the ... - -eks-node-viewer is a nifty tool, showing the compute nodes currently in use in the `#EKS` cluster. especially useful when dynamically allocating nodes with `#karpenter` or auto scaling groups. - -=> https://github.com/awslabs/eks-node-viewer - -### Have put more Photos on - On my static photo ... - -Have put more Photos on - On my static photo sites - Generated with a `#bash` script - -=> https://irregular.ninja - -### In Go, passing pointers are not automatically ... - -In Go, passing pointers are not automatically faster than values. Pointers often force the memory to be allocated on the heap, adding GC overhad. With values, Go can determine whether to put the memory on the stack instead. But with large structs/objects (how you want to call them) or if you want to modify state, then pointers are the semantic to use. `#golang` - -=> https://blog.boot.dev/golang/pointers-faster-than-values/ - -### Myself being part of an on-call rotations over ... - -Myself being part of an on-call rotations over my whole professional life, just have learned this lesson "Tell people who are new to on-call: Just have fun" :-) This is a neat blog post to read: - -=> https://ntietz.com/blog/what-i-tell-people-new-to-oncall/ - -### Feels good to code in my old love `#Perl` again ... - -Feels good to code in my old love `#Perl` again after a while. I am implementing a log parser for generating site stats of my personal homepage! :-) @Perl - -### This is an interactive summary of the Go ... - -This is an interactive summary of the Go release, with a lot of examples utilising iterators in the slices and map packages. Love it! `#golang` - -=> https://antonz.org/go-1-23/ - -## December 2024 - -### Thats unexpected, you cant remove a NaN key ... - -Thats unexpected, you cant remove a NaN key from a map without clearing it! `#golang` - -=> https://unexpected-go.com/you-cant-remove-a-nan-key-from-a-map-without-clearing-it.html https://unexpected-go.com/you-can...om-a-map-without-clearing-it.html - -### My second blog post about revamping my home lab ... - -My second blog post about revamping my home lab a little bit just hit the net. `#FreeBSD` `#ZFS` `#n100` `#k8s` `#k3s` `#kubernetes` - -=> https://foo.zone/gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.html https://foo.zone/gemfeed/2024-12-...bernetes-with-freebsd-part-2.html - -### Very insightful article about tech hiring in ... - -Very insightful article about tech hiring in the age of LLMs. As an interviewer, I have experienced some of the scrnarios already first hand... - -=> https://newsletter.pragmaticengineer.com/p/how-genai-changes-tech-hiring https://newsletter.pragmaticengin...m/p/how-genai-changes-tech-hiring - -### for `#bpf` `#ebpf` performance debugging, have ... - -for `#bpf` `#ebpf` performance debugging, have a look at bpftop from Netflix. A neat tool showing you the estimated CPU time and other performance statistics for all the BPF programs currently loaded into the `#linux` kernel. Highly recommend! - -=> https://github.com/Netflix/bpftop - -### 89 things he/she knows about Git commits is a ... - -89 things he/she knows about Git commits is a neat list of `#Git` wisdoms - -=> https://www.jvt.me/posts/2024/07/12/things-know-commits/ - -### I found that working on multiple side projects ... - -I found that working on multiple side projects concurrently is better than concentrating on just one. This seems inefficient at first, but whenever you tend to lose motivation, you can temporarily switch to another one with full élan. However, remember to stop starting and start finishing. This doesn't mean you should be working on 10+ (and a growing list of) side projects concurrently! Select your projects and commit to finishing them before starting the next thing. For example, my current limit of concurrent side projects is around five. - -### Agreed? Agreed. Besides `#Ruby`, I would also ... - -Agreed? Agreed. Besides `#Ruby`, I would also add `#RakuLang` and `#Perl` @Perl to the list of languages that are great for shell scripts - "Making Easy Things Easy and Hard Things Possible" - -=> https://lucasoshiro.github.io/posts-en/2024-06-17-ruby-shellscript/ - -### Plan9 assembly format in Go, but wait, it's not ... - -Plan9 assembly format in Go, but wait, it's not the Operating System Plan9! `#golang` `#rabbithole` - -=> https://www.osnews.com/story/140941/go-plan9-memo-speeding-up-calculations-450/ https://www.osnews.com/story/1409...emo-speeding-up-calculations-450/ - -### This is a neat blog post about the Helix text ... - -This is a neat blog post about the Helix text editor, to which I personally switched around a year ago (from NeoVim). I should blog about my experience as well. To summarize: I am using it together with the terminal multiplexer `#tmux`. It doesn't bother me that Helix is purely terminal-based and therefore everything has to be in the same font. `#HelixEditor` - -=> https://jonathan-frere.com/posts/helix/ - -### This blog post is basically a rant against ... - -This blog post is basically a rant against DataDog... Personally, I don't have much experience with DataDog (actually, I have never used it), but one reason to work with logs at my day job (with over 2,000 physical server machines) and to be cost-effective is by using dtail! `#dtail` `#logs` `#logmanagement` - -=> https://crys.site/blog/2024/reinventint-the-weel/ -=> https://dtail.dev - -### Quick trick to get Helix themes selected ... - -Quick trick to get Helix themes selected randomly `#HelixEditor` - -=> https://foo.zone/gemfeed/2024-12-15-random-helix-themes.html - -### Example where complexity attacks you from ... - -Example where complexity attacks you from behind `#k8s` `#kubernetes` `#OpenAI` - -=> https://surfingcomplexity.blog/2024/12/14/quick-takes-on-the-recent-openai-public-incident-write-up/ https://surfingcomplexity.blog/20...-openai-public-incident-write-up/ - -### LLMs for Ops? Summaries of logs, probabilities ... - -LLMs for Ops? Summaries of logs, probabilities about correctness, auto-generating Ansible, some uses cases are there. Wouldn't trust it fully, though. - -=> https://youtu.be/WodaffxVq-E?si=noY0egrfl5izCSQI - -### Excellent article about your dream Product ... - -Excellent article about your dream Product Manager: Why every software team needs a product manager to thrive via @wallabagapp - -=> https://testdouble.com/insights/why-product-managers-accelerate-improve-software-delivery https://testdouble.com/insights/w...elerate-improve-software-delivery - -### I just finished reading all chapters of CPU ... - -I just finished reading all chapters of CPU land: ... not claiming to remember every detail, but it is a great refresher how CPUs and operating systems actually work under the hood when you execute a program, which we tend to forget in our higher abstraction world. I liked the "story" and some of the jokes along the way! Size wise, it is pretty digestable (not talking about books, but only 7 web articles/chapters)! `#cpu` `#linux` `#unix` `#kernel` `#macOS` - -=> https://cpu.land/ - -### Indeed, useful to know this stuff! `#sre` ... - -Indeed, useful to know this stuff! `#sre` - -=> https://biriukov.dev/docs/resolver-dual-stack-application/0-sre-should-know-about-gnu-linux-resolvers-and-dual-stack-applications/ https://biriukov.dev/docs/resolve...vers-and-dual-stack-applications/ - -### It's the small things, which make Unix like ... - -It's the small things, which make Unix like systems, like GNU/Linux, interesting. Didn't know about this `#GNU` `#Tar` behaviour yet: - -=> https://xeiaso.net/notes/2024/pop-quiz-tar/15110 diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml index 4f7ec903..4b9a6e3e 100644 --- a/gemfeed/atom.xml +++ b/gemfeed/atom.xml @@ -1,11 +1,349 @@ - 2024-12-29T23:48:55+02:00 + 2024-12-31T18:09:58+02:00 foo.zone feed To be in the .zone! gemini://foo.zone/ + + Posts from October to December 2024 + + gemini://foo.zone/gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi + 2024-12-31T18:09:58+02:00 + + Paul Buetow aka snonux + paul@dev.buetow.org + + Happy new year! + +
+

Posts from October to December 2024


+
+Happy new year!
+
+These are my social media posts from the last three months. I keep them here to reflect on them and also to not lose them. Social media networks come and go and are not under my control, but my domain is here to stay.
+
+These are from Mastodon and LinkedIn. Have a look at my about page for my social media profiles. This list is generated with Gos, my social media platform sharing tool.
+
+My about page
+https://codeberg.org/snonux/gos
+
+

Table of Contents


+
+
+

October 2024


+
+

First on-call experience in a startup. Doesn't ...


+
+First on-call experience in a startup. Doesn't sound a lot of fun! But the lessons were learned! #sre
+
+https://ntietz.com/blog/lessons-from-my-first-on-call/
+
+

Reviewing your own PR or MR before asking ...


+
+Reviewing your own PR or MR before asking others to review it makes a lot of sense. Have seen so many silly mistakes which would have been avoided. Saving time for the real reviewer.
+
+https://www.jvt.me/posts/2019/01/12/self-code-review/
+
+

Fun with defer in #golang, I did't know, that ...


+
+Fun with defer in #golang, I did't know, that a defer object can either be heap or stack allocated. And there are some rules for inlining, too.
+
+https://victoriametrics.com/blog/defer-in-go/
+
+

I have been in incidents. Understandably, ...


+
+I have been in incidents. Understandably, everyone wants the issue to be resolved as quickly and others want to know how long TTR will be. IMHO, providing no estimates at all is no solution either. So maybe give a rough estimate but clearly communicate that the estimate is rough and that X, Y, and Z can interfere, meaning there is a chance it will take longer to resolve the incident. Just my thought. What's yours?
+
+https://firehydrant.com/blog/hot-...de-incident-resolution-estimates/
+
+

Little tips using strings in #golang and I ...


+
+Little tips using strings in #golang and I personally think one must look more into the std lib (not just for strings, also for slices, maps,...), there are tons of useful helper functions.
+
+https://www.calhoun.io/6-tips-for-using-strings-in-go/
+
+

Reading this post about #rust (especially the ...


+
+Reading this post about #rust (especially the first part), I think I made a good choice in deciding to dive into #golang instead. There was a point where I wanted to learn a new programming language, and Rust was on my list of choices. I think the Go project does a much better job of deciding what goes into the language and how. What are your thoughts?
+
+https://josephg.com/blog/rewriting-rust/
+
+

The opposite of #ChaosMonkey ... ...


+
+The opposite of #ChaosMonkey ... automatically repairing and healing services helping to reduce manual toil work. Runbooks and scripts are only the first step, followed by a fully blown service written in Go. Could be useful, but IMHO why not rather address the root causes of the manual toil work? #sre
+
+https://blog.cloudflare.com/nl-nl...latform-resilience-at-cloudflare/
+
+

November 2024


+
+

I just became a Silver Patreon for OSnews. What ...


+
+I just became a Silver Patreon for OSnews. What is OSnews? It is an independent news site about IT. It is slightly independent and, at times, alternative. I have enjoyed it since my early student days. This one and other projects I financially support are listed here:
+
+https://foo.zone/gemfeed/2024-09-07-projects-i-support.html
+
+

Until now, I wasn't aware, that Go is under a ...


+
+Until now, I wasn't aware, that Go is under a BSD-style license (3-clause as it seems). Neat. I don't know why, but I always was under the impression it would be MIT. #bsd #golang
+
+https://go.dev/LICENSE
+
+

These are some book notes from "Staff Engineer" ...


+
+These are some book notes from "Staff Engineer" – there is some really good insight into what is expected from a Staff Engineer and beyond in the industry. I wish I had read the book earlier.
+
+https://foo.zone/gemfeed/2024-10-24-staff-engineer-book-notes.html
+
+

Looking at #Kubernetes, it's pretty much ...


+
+Looking at #Kubernetes, it's pretty much following the Unix way of doing things. It has many tools, but each tool has its own single purpose: DNS, scheduling, container runtime, various controllers, networking, observability, alerting, and more services in the control plane. Everything is managed by different services or plugins, mostly running in their dedicated pods. They don't communicate through pipes, but network sockets, though. #k8s
+
+

There has been an outage at the upstream ...


+
+There has been an outage at the upstream network provider for OpenBSD.Amsterdam (hoster, I am using). This was the first real-world test for my KISS HA setup, and it worked flawlessly! All my sites and services failed over automatically to my other #OpenBSD VM!
+
+https://foo.zone/gemfeed/2024-04-...gh-availability-with-OpenBSD.html
+https://openbsd.amsterdam/
+
+

One of the more confusing parts in Go, nil ...


+
+One of the more confusing parts in Go, nil values vs nil errors: #golang
+
+https://unexpected-go.com/nil-errors-that-are-non-nil-errors.html
+
+

Agreeably, writing down with Diagrams helps you ...


+
+Agreeably, writing down with Diagrams helps you to think things more through. And keeps others on the same page. Only worth for projects from a certain size, IMHO.
+
+https://ntietz.com/blog/reasons-to-write-design-docs/
+
+

I like the idea of types in Ruby. Raku is ...


+
+I like the idea of types in Ruby. Raku is supports that already, but in Ruby, you must specify the types in a separate .rbs file, which is, in my opinion, cumbersome and is a reason not to use it extensively for now. I believe there are efforts to embed the type information in the standard .rb files, and that the .rbs is just an experiment to see how types could work out without introducing changes into the core Ruby language itself right now? #Ruby #RakuLang
+
+https://github.com/ruby/rbs
+
+

So, #Haskell is better suited for general ...


+
+So, #Haskell is better suited for general purpose than #Rust? I thought deploying something in Haskell means publishing an academic paper :-) Interesting rant about Rust, though:
+
+https://chrisdone.com/posts/rust/
+
+

At first, functional options add a bit of ...


+
+At first, functional options add a bit of boilerplate, but they turn out to be quite neat, especially when you have very long parameter lists that need to be made neat and tidy. #golang
+
+https://www.calhoun.io/using-func...instead-of-method-chaining-in-go/
+
+

Revamping my home lab a little bit. #freebsd ...


+
+Revamping my home lab a little bit. #freebsd #bhyve #rocky #linux #vm #k3s #kuberbetes #wireguard #zfs #nfs #ha #relayd #k8s #selfhosting #self-hosting #homelab #home-lab
+
+https://foo.zone/gemfeed/2024-11-...bernetes-with-freebsd-part-1.html
+
+

Wondering to which #web #browser I should ...


+
+Wondering to which #web #browser I should switch now personally ...
+
+https://www.osnews.com/story/1411...cy-for-open-web-privacy-and-more/
+
+

eks-node-viewer is a nifty tool, showing the ...


+
+eks-node-viewer is a nifty tool, showing the compute nodes currently in use in the #EKS cluster. especially useful when dynamically allocating nodes with #karpenter or auto scaling groups.
+
+https://github.com/awslabs/eks-node-viewer
+
+

Have put more Photos on - On my static photo ...


+
+Have put more Photos on - On my static photo sites - Generated with a #bash script
+
+https://irregular.ninja
+
+

In Go, passing pointers are not automatically ...


+
+In Go, passing pointers are not automatically faster than values. Pointers often force the memory to be allocated on the heap, adding GC overhad. With values, Go can determine whether to put the memory on the stack instead. But with large structs/objects (how you want to call them) or if you want to modify state, then pointers are the semantic to use. #golang
+
+https://blog.boot.dev/golang/pointers-faster-than-values/
+
+

Myself being part of an on-call rotations over ...


+
+Myself being part of an on-call rotations over my whole professional life, just have learned this lesson "Tell people who are new to on-call: Just have fun" :-) This is a neat blog post to read:
+
+https://ntietz.com/blog/what-i-tell-people-new-to-oncall/
+
+

Feels good to code in my old love #Perl again ...


+
+Feels good to code in my old love #Perl again after a while. I am implementing a log parser for generating site stats of my personal homepage! :-) @Perl
+
+

This is an interactive summary of the Go ...


+
+This is an interactive summary of the Go release, with a lot of examples utilising iterators in the slices and map packages. Love it! #golang
+
+https://antonz.org/go-1-23/
+
+

December 2024


+
+

Thats unexpected, you cant remove a NaN key ...


+
+Thats unexpected, you cant remove a NaN key from a map without clearing it! #golang
+
+https://unexpected-go.com/you-can...om-a-map-without-clearing-it.html
+
+

My second blog post about revamping my home lab ...


+
+My second blog post about revamping my home lab a little bit just hit the net. #FreeBSD #ZFS #n100 #k8s #k3s #kubernetes
+
+https://foo.zone/gemfeed/2024-12-...bernetes-with-freebsd-part-2.html
+
+

Very insightful article about tech hiring in ...


+
+Very insightful article about tech hiring in the age of LLMs. As an interviewer, I have experienced some of the scrnarios already first hand...
+
+https://newsletter.pragmaticengin...m/p/how-genai-changes-tech-hiring
+
+

for #bpf #ebpf performance debugging, have ...


+
+for #bpf #ebpf performance debugging, have a look at bpftop from Netflix. A neat tool showing you the estimated CPU time and other performance statistics for all the BPF programs currently loaded into the #linux kernel. Highly recommend!
+
+https://github.com/Netflix/bpftop
+
+

89 things he/she knows about Git commits is a ...


+
+89 things he/she knows about Git commits is a neat list of #Git wisdoms
+
+https://www.jvt.me/posts/2024/07/12/things-know-commits/
+
+

I found that working on multiple side projects ...


+
+I found that working on multiple side projects concurrently is better than concentrating on just one. This seems inefficient at first, but whenever you tend to lose motivation, you can temporarily switch to another one with full élan. However, remember to stop starting and start finishing. This doesn't mean you should be working on 10+ (and a growing list of) side projects concurrently! Select your projects and commit to finishing them before starting the next thing. For example, my current limit of concurrent side projects is around five.
+
+

Agreed? Agreed. Besides #Ruby, I would also ...


+
+Agreed? Agreed. Besides #Ruby, I would also add #RakuLang and #Perl @Perl to the list of languages that are great for shell scripts - "Making Easy Things Easy and Hard Things Possible"
+
+https://lucasoshiro.github.io/posts-en/2024-06-17-ruby-shellscript/
+
+

Plan9 assembly format in Go, but wait, it's not ...


+
+Plan9 assembly format in Go, but wait, it's not the Operating System Plan9! #golang #rabbithole
+
+https://www.osnews.com/story/1409...emo-speeding-up-calculations-450/
+
+

This is a neat blog post about the Helix text ...


+
+This is a neat blog post about the Helix text editor, to which I personally switched around a year ago (from NeoVim). I should blog about my experience as well. To summarize: I am using it together with the terminal multiplexer #tmux. It doesn't bother me that Helix is purely terminal-based and therefore everything has to be in the same font. #HelixEditor
+
+https://jonathan-frere.com/posts/helix/
+
+

This blog post is basically a rant against ...


+
+This blog post is basically a rant against DataDog... Personally, I don't have much experience with DataDog (actually, I have never used it), but one reason to work with logs at my day job (with over 2,000 physical server machines) and to be cost-effective is by using dtail! #dtail #logs #logmanagement
+
+https://crys.site/blog/2024/reinventint-the-weel/
+https://dtail.dev
+
+

Quick trick to get Helix themes selected ...


+
+Quick trick to get Helix themes selected randomly #HelixEditor
+
+https://foo.zone/gemfeed/2024-12-15-random-helix-themes.html
+
+

Example where complexity attacks you from ...


+
+Example where complexity attacks you from behind #k8s #kubernetes #OpenAI
+
+https://surfingcomplexity.blog/20...-openai-public-incident-write-up/
+
+

LLMs for Ops? Summaries of logs, probabilities ...


+
+LLMs for Ops? Summaries of logs, probabilities about correctness, auto-generating Ansible, some uses cases are there. Wouldn't trust it fully, though.
+
+https://youtu.be/WodaffxVq-E?si=noY0egrfl5izCSQI
+
+

Excellent article about your dream Product ...


+
+Excellent article about your dream Product Manager: Why every software team needs a product manager to thrive via @wallabagapp
+
+https://testdouble.com/insights/w...elerate-improve-software-delivery
+
+

I just finished reading all chapters of CPU ...


+
+I just finished reading all chapters of CPU land: ... not claiming to remember every detail, but it is a great refresher how CPUs and operating systems actually work under the hood when you execute a program, which we tend to forget in our higher abstraction world. I liked the "story" and some of the jokes along the way! Size wise, it is pretty digestable (not talking about books, but only 7 web articles/chapters)! #cpu #linux #unix #kernel #macOS
+
+https://cpu.land/
+
+

Indeed, useful to know this stuff! #sre ...


+
+Indeed, useful to know this stuff! #sre
+
+https://biriukov.dev/docs/resolve...vers-and-dual-stack-applications/
+
+

It's the small things, which make Unix like ...


+
+It's the small things, which make Unix like systems, like GNU/Linux, interesting. Didn't know about this #GNU #Tar behaviour yet:
+
+https://xeiaso.net/notes/2024/pop-quiz-tar/
+
+

My New Year's resolution is not to start any ...


+
+My plan for the New Year is not to start any new non-fiction books (or only a few) but to re-read and listen to my favorites, which I read to reflect on and see things from different perspectives. Every time you re-read a book, you gain new insights.
+
+E-Mail your comments to paul@nospam.buetow.org :-)
+
+Back to the main site
+
+
+
Random Helix Themes @@ -8817,182 +9155,6 @@ v = 008 [v = p*c*(s != c ? 2 : 1)] Total logical CPUs
E-Mail your comments to paul@nospam.buetow.org :-)

-Back to the main site
- - -
- - Perl is still a great choice - - gemini://foo.zone/gemfeed/2022-05-27-perl-is-still-a-great-choice.gmi - 2022-05-27T07:50:12+01:00 - - Paul Buetow aka snonux - paul@dev.buetow.org - - Perl (the Practical Extraction and Report Language) is a battle-tested, mature, multi-paradigm dynamic programming language. Note that it's not called PERL, neither P.E.R.L. nor Pearl. 'Perl' is the name of the language and `perl` the name of the interpreter or the interpreter command. - -
-

Perl is still a great choice


-
-Published at 2022-05-27T07:50:12+01:00; Updated at 2023-01-28
-
-Perl (the Practical Extraction and Report Language) is a battle-tested, mature, multi-paradigm dynamic programming language. Note that it's not called PERL, neither P.E.R.L. nor Pearl. "Perl" is the name of the language and perl the name of the interpreter or the interpreter command.
-
-Unfortunately (it makes me sad), Perl's popularity has been declining over the last years as Google trends shows:
-
-
-
-So why is that? Once the de-facto standard super-glue language for the web nowadays seems to have a bad reputation. Often, people state:
-
-
    -
  • Perl is a write-only language. Nobody can read Perl code.
  • -
  • Perl? Isn't it abandoned? It's still at version 5!
  • -
  • Why use Perl as there are better alternatives?
  • -
  • Why all the sigils? It looks like an exploding ASCII factory!!
  • -

-Comic source: XKCD
-
-

Table of Contents


-
-
-

Write-only language


-
-Is Perl really a write-only language? You have to understand that Perl 5 was released in 1994 (28 years ago as of this writing) and when we refer to Perl we usually mean Perl 5. That's many years, and there are many old scripts not following the modern Perl best practices (as they didn't exist yet). So yes, legacy scripts may be difficult to read. Japanese may be difficult to read too if you don't know Japanese, though.
-
-To come back to the question: Is Perl a write-only language? I don't think so. Like in any other language, you have to apply best practices in order to keep your code maintainable. Some other programming languages enforce best practices, but that makes these languages less expressive. Perl follows the principles "there is more than one way to do it" (aka TIMTOWDI) and "making easy things easy and hard things possible".
-
-Perl gives the programmer more flexibility in how to do things, and this results in a stronger learning curve than for lesser expressive languages like for example Go or Python. But, like in everything in life, common sense has to be applied. You should not take TIMTOWDI to the extreme in a production piece of code. In my personal opinion, it is also more satisfying to program in an expressive language.
-
-Some good books on "good" Perl I can recommend are:
-
-Modern Perl
-Higher Order Perl
-
-Due to Perl's expressiveness you will find a lot of obscure code in the interweb in form of obfuscation, fancy email signatures (JAPHs), art, polyglots and even poetry in Perl syntax. But that's not what you will find in production code. That's only people having fun with the language which is different to "getting things done". The expressiveness is a bonus. It makes the Perl programmers love Perl.
-
-JAPH
-http://www.cpan.org/misc/japh
-Perl Poetry
-
-Even I personally have written some poetry in Perl and experimented with a polyglot script:
-
-My very own Perl Poetry
-A Perl-Raku-C polyglot generating the Fibonacci sequence
-
-This all doesn't mean that you can't "get things done" with Perl. Quite the opposite is the case. Perl is a very pragmatic programming language and is suitable very well for rapid prototyping and any kind of small to medium-sized scripts and programs. You can write large enterprise scale application in Perl too, but that wasn't the original intend of why Perl was invented (more on that later).
-
-

Is Perl abandoned?


-
-As I pointed out in the previous section, Perl 5 is around for quite some time without any new major version released. This can lead to the impression that development is not progressing and that the project is abandoned. Nothing can be further from the truth. Perl 5.000 was released in 1994 and the latest version (as of this writing) Perl 5.34.1 was released two months ago in 2022. You can check the version history on Wikipedia. You will notice releases being made regularly:
-
-Perl 5 version history
-
-As you can see, Perl 5 is under active development. I can also recommend to have a look at the following book, it summarizes all new Perl features which showed up after Perl v5.10:
-
-Perl New Features by Joshua McAdams and brian d foy
-
-Actually, Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was officially changed to Raku in October 2019 as the differences between Perl 5 and Perl 6 were too groundbreaking. Raku would be a different topic (mostly out of scope of this blog article) but I at least wanted it to mention here. In my opinion, Raku is the "most powerful" programming language out there (I recently started learning it and intend to use it for some of my future personal programming projects):
-
-The Raku Programming Language
-
-So it means that Perl and Raku now exist in parallel. They influence each other, but are different programming languages now. So why not just all use Raku instead of Perl? There are still a couple of reasons of why to choose Perl over Raku:
-
-
    -
  • Many programmers already know Perl and many scripts are already written in Perl. It's possible to call Perl code from Raku (either inline or as a library) and it is also possible to auto-convert Perl code into Raku code, but that's either a workaround or involves some kind of additional work.
  • -
  • Perl 5 comes with a great backwards compatibility. Perl scripts from 5.000 will generally still work on a recent version of Perl. New features usually have to be enabled via a so-called "use pragmas". For example, in order to enable sub signatures, use signatures; has to be specified.
  • -
  • Perl is pre-installed almost everywhere. Fancy running a quick one-off script? In almost all cases, there's no need to install Perl first - it's already there on almost any Linux or *BSD or Unix or other Unix like operating system!
  • -
  • Perl has been ported to "zillions" of platforms. One day I found myself on a VMS box. Perl doesn't come installed by default on VMS, but the admin installed Perl there already. The whole operating system was very strange to me, but I was able to write "shell scripts" in Perl and became productive pretty quickly on VMS without knowing almost anything about VMS :-).
  • -
  • Perl is reliable. It has been proven itself "millions" of times, over and over again. Large enterprises, such as booking.com, heavily rely on Perl. Did you know that the package manager of the OpenBSD operating system is programmed in Perl, too?
  • -
  • Perl is a great language to program in (given that you follow the modern best practices). Don't get confused when Perl is doing some things differently than other programming languages.
  • -

-Perl feature pragmas
-The OpenBSD Operating System
-Why does OpenBSD still include Perl in its base installation?
-
-The renaming of Perl 6 to Raku has now opened the door for a future Perl 7. As far as I understand, Perl 7 will be Perl 5 but with modern features enabled by default (e.g. pragmas use strict;, use warnings;, use signatures; and so on. Also, the hope is that a Perl 7 with modern standards will attract more beginners. There aren't many Perl jobs out there nowadays. That's mostly due to Perl's bad (bad for no real reasons) reputation.
-
-Update 2022-12-10: A reader pointed out, that use v5.36; already turns strict, warnings and signatures pragmas automatically on!
-
-Announcing Perl 7
-What happened to Perl 7? (maybe have to use use v7;)
-
-Update 2022-12-10: A reader pointed out, that Perl 7 needs to provide a big improvement to earn and keep the attention for a major version bump.
-
-Update 2023-01-28: Meanwhile, I was also reading brian d foy's Perl New Feature book. It nicely presents all new features added to Perl since v5.10.
-
-Perl New Features
-
-

Why use Perl as there are better alternatives?


-
-Here, common sense must be applied. I don't believe there is anything like "the perfect" programming language. Everyone has got his preferred (or a set of preferred) programming language to chose from. All programming languages come with their own set of strengths and weaknesses. These are the strengths making Perl shine, and you (technically) don't need to bother to look for "better" alternatives:
-
-
    -
  • Perl is better than Shell/AWK/SED scripts. There's a point where shell scripts become fairly complex. The next step-up is to switch to Perl. There are many different versions of shells and AWK and SED interpreters. Do you always know which versions (mawk, nawk, gawk, sed, gsed, grep, ggrep...) are currently installed? These commands aren't fully compatible to each other. However, there is only one Perl 5. Simply: Perl is faster, more powerful, more expressive than any shell script can ever be, and it is also extendible through CPAN. Perl can directly talk to databases, which shell scripts can't.
  • -
  • Perl code tends to be compact so that it's much better suitable for "shell scripting" and quick "one-liners" than other languages. In my own experience: Ruby and Python code tends to blow up quickly. It doesn't mean that Ruby and Python are not suitable for this task, but I think Perl does much better.
  • -
  • Perl 5 has proven itself for decades and is a very stable/robust language. It is a battle-tested and mature as something can ever become.
  • -
  • Perl is the reference standard for regular expressions. Even so much that there is a PCRE library (Perl Compatible Regular Expressions) used by many other languages now. Perl fully integrates regular expression syntax into the language, which doesn't feel like an odd add-on like in most other languages.
  • -
  • Perl 5 is the master of text processing (well, maybe after Raku now. But you might not have the latest Raku available everywhere). The chief objective of developing the language was for text processing, and this is where Perl (Practical extraction and report language) really shines.
  • -
  • Perl is a "deep" language. That means Perl got a lot of features and syntactic sugar and magic. Depending on the perspective, this could be interpreted as a downside too. But IMHO mastery of a "deep" language brings big rewards. The code can be very compact, and it is fun to code in it.
  • -
  • Perl is the only language I know which can do "taint checking". Running a script in taint mode makes Perl sanitize all external input and that's a great security feature. Ruby used to have this feature too, but it got removed (as I understand there were some problems with the implementation not completely safe and it was easier just to remove it from the language than to fix it).
  • -

-About the first point, using Perl for better "shell" scripts was actually the original intend of why Perl was invented in the first place.
-
-Perl one-liners
-Mastering Regular Expressions
-Taint checking
-
-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, ....
  • -
  • 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.
  • -

-Cor - Bringing modern OOP to the Perl Core
-
-

Why all the sigils? It looks like an exploding ASCII factory!!


-
-The sigils $ @ % & (where Perl is famously known for) serve a purpose. They seem confusing at first, but they actually make the code better readable. $scalar is a scalar variable (holding a single value), @array is an array (holding a list of values), %hash holds a list of key-value pairs and &sub is for subroutines. A given variable $ref can also hold reference to something. @$arrayref dereferences a reference to an array, %$hashref to a hash, $$scalarref to a scalar, &$subref dereferences a referene to a subroutine, etc. That can be encapsulated as deep as you want. (This paragraph only scratched the surface here of what Perl can do, and there is a lot of syntactic sugar not mentioned here).
-
-In most other programming languages, you won't know instantly what's the "basic type" of a given variable without looking at the variable declaration or the variable name (If named intelligently, e.g. a variable name containing a list of cats is cat_list). Even Ruby makes some use of sigils (@, @@ and $), but that's for a different purpose than in Perl (in Ruby it is about object scope, class scope and global scope). Raku uses all the sigils Perl uses plus an additional bunch of twigils, e.g. $.foo for a scalar object variable with public accessors, $!foo for a private scalar object variable, @.foo, @!foo, %.foo, %!foo and so on. Sigils (and twigils) are very convenient once you get used to them. Don't let them scare you off - they are there to help you!
-
-https://www.perl.com/article/on-sigils/
-
-

Where do I personally still use perl?


-
-
    -
  • I use Rexify for my OpenBSD server automation. Rexify is a configuration management system developed in Perl with similar features to Ansible but less bloated. It suits my personal needs perfectly.
  • -
  • I have written a couple of smaller to medium-sized Perl scripts which I (mostly) still use regularly. You can find them on my Codeberg page.
  • -
  • My day-to-day workflow heavily relies on "ack-grep". Ack is a tool developed in Perl aimed at programmers and can be used for quick searches on source code at the command line.
  • -
  • I aim to leave my OpenBSD servers as "vanilla" as possible (trying to rely only on the standard/base installation without installing additional software from the packaging system or ports tree). All my scripts are written either Bourne shell or in Perl here. So there is no need to install additional interpreters.
  • -
  • Here and there, I drop a Perl one-liner in order to get stuff done (work and personally). A wise Perl Monk would say: "One one-liner a day keeps the troubles away".
  • -

-Btw.: Did you know that the first version of PHP was a set of Perl snippets? Only later, PHP became an independent programming language.
-
-https://www.perl.org
-
-Update 2022-12-17: The following is another related post. I don't agree to the statement made there, that Python code tends to be shorter than Perl code, though!
-
-Why Perl is still relevant in 2022
-
-E-Mail your comments to paul@nospam.buetow.org :-)
-
-Other related posts are:
-
-2008-06-26 Perl Poetry
-2011-05-07 Perl Daemon (Service Framework)
-2022-05-27 Perl is still a great choice (You are currently reading this)
-2023-05-01 Unveiling guprecords.raku: Global Uptime Records with Raku
-
Back to the main site
diff --git a/gemfeed/index.gmi b/gemfeed/index.gmi index 6ab484b1..05a12538 100644 --- a/gemfeed/index.gmi +++ b/gemfeed/index.gmi @@ -2,6 +2,7 @@ ## To be in the .zone! +=> ./2025-01-01-posts-from-october-to-december-2024.gmi 2025-01-01 - Posts from October to December 2024 => ./2024-12-15-random-helix-themes.gmi 2024-12-15 - Random Helix Themes => ./2024-12-03-f3s-kubernetes-with-freebsd-part-2.gmi 2024-12-03 - f3s: Kubernetes with FreeBSD - Part 2: Hardware and base installation => ./2024-11-17-f3s-kubernetes-with-freebsd-part-1.gmi 2024-11-17 - f3s: Kubernetes with FreeBSD - Part 1: Setting the stage diff --git a/index.gmi b/index.gmi index 553b0bbf..a1d406a2 100644 --- a/index.gmi +++ b/index.gmi @@ -1,6 +1,6 @@ # foo.zone -> This site was generated at 2024-12-30T10:21:25+02:00 by `Gemtexter` +> This site was generated at 2024-12-31T18:09:58+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. Note that this blog usually does not overlap with what I do at my day job as a Site Reliability Engineer. @@ -28,6 +28,7 @@ Welcome to the foo.zone. Everything you read on this site is my personal opinion ### Posts +=> ./gemfeed/2025-01-01-posts-from-october-to-december-2024.gmi 2025-01-01 - Posts from October to December 2024 => ./gemfeed/2024-12-15-random-helix-themes.gmi 2024-12-15 - Random Helix Themes => ./gemfeed/2024-12-03-f3s-kubernetes-with-freebsd-part-2.gmi 2024-12-03 - f3s: Kubernetes with FreeBSD - Part 2: Hardware and base installation => ./gemfeed/2024-11-17-f3s-kubernetes-with-freebsd-part-1.gmi 2024-11-17 - f3s: Kubernetes with FreeBSD - Part 1: Setting the stage diff --git a/uptime-stats.gmi b/uptime-stats.gmi index c95d9352..88890f17 100644 --- a/uptime-stats.gmi +++ b/uptime-stats.gmi @@ -1,6 +1,6 @@ # My machine uptime stats -> This site was last updated at 2024-12-30T10:21:25+02:00 +> This site was last updated at 2024-12-31T18:09:58+02:00 The following stats were collected via `uptimed` on all of my personal computers over many years and the output was generated by `guprecords`, the global uptime records stats analyser of mine. -- cgit v1.2.3