From 6201bdf707e27527ad25039346e2e08aaa345604 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 27 Aug 2023 13:59:48 +0300 Subject: Update content for gemtext --- gemfeed/atom.xml.tmp | 2825 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2825 insertions(+) create mode 100644 gemfeed/atom.xml.tmp (limited to 'gemfeed') diff --git a/gemfeed/atom.xml.tmp b/gemfeed/atom.xml.tmp new file mode 100644 index 00000000..59e0ee54 --- /dev/null +++ b/gemfeed/atom.xml.tmp @@ -0,0 +1,2825 @@ + + + 2023-08-27T13:59:36+03:00 + foo.zone feed + To be in the .zone! + + + gemini://foo.zone/ + + Site Reliability Engineering - Part 3: On-Call Culture and the Human Aspect + + gemini://foo.zone/gemfeed/2023-08-20-site-reliability-engineering-part-3.gmi + 2023-08-20T12:17:56+03:00 + + Paul Buetow aka snonux + paul@dev.buetow.org + + This is the third part of my Site Reliability Engineering (SRE) series. I am currently employed as a Principal Site Reliability Engineer and will try to share what SRE is about in this blog series. + +
+

Site Reliability Engineering - Part 3: On-Call Culture and the Human Aspect


+
+Published at 2023-08-20T12:17:56+03:00
+
+This is the third part of my Site Reliability Engineering (SRE) series. I am currently employed as a Principal Site Reliability Engineer and will try to share what SRE is about in this blog series.
+
+2023-08-18 Site Reliability Engineering - Part 1: SRE and Organizational Culture
+2023-08-19 Site Reliability Engineering - Part 2: Operational Balance in SRE
+2023-08-20 Site Reliability Engineering - Part 3: On-Call Culture and the Human Aspect (You are currently reading this)
+
+
+                    ..--""""----..                 
+                 .-"   ..--""""--.j-.              
+              .-"   .-"        .--.""--..          
+           .-"   .-"       ..--"-. \/    ;         
+        .-"   .-"_.--..--""  ..--'  "-.  :         
+      .'    .'  /  `. \..--"" __ _     \ ;         
+     :.__.-"    \  /        .' ( )"-.   Y          
+     ;           ;:        ( )     ( ).  \         
+   .':          /::       :            \  \        
+ .'.-"\._   _.-" ; ;      ( )    .-.  ( )  \       
+  "    `."""  .j"  :      :      \  ;    ;  \      
+    bug /"""""/     ;      ( )    "" :.( )   \     
+       /\    /      :       \         \`.:  _ \    
+      :  `. /        ;       `( )     (\/ :" \ \   
+       \   `.        :         "-.(_)_.'   t-'  ;  
+        \    `.       ;                    ..--":  
+         `.    `.     :              ..--""     :  
+           `.    "-.   ;       ..--""           ;  
+             `.     "-.:_..--""            ..--"   
+               `.      :             ..--""        
+                 "-.   :       ..--""              
+                    "-.;_..--""                    
+
+
+
+

On-Call Culture and the Human Aspect: Prioritising Well-being in the Realm of Reliability


+
+Site Reliability Engineering is synonymous with ensuring system reliability, but the human factor is an often-underestimated part of this discipline. Ensuring an healthy on-call culture is as critical as any technical solution. The well-being of the engineers is an important factor.
+
+Firstly, a healthy on-call rotation is about more than just managing and responding to incidents. It's about the entire ecosystem that supports this practice. This involves reducing pain points, offering mentorship, rapid iteration, and ensuring that engineers have the right tools and processes. One ceavat is, that engineers should be willing to learn. Especially in on-call rotation embedding SREs with other engineers (for example Software Engineers or QA Engineers), it's difficult to motivate everyone to engage. QA Engineers want to test the software, Software Engineers want to implement new features; they don't want to troubleshoot and debug production incidents. It can be depressing for the mentoring SRE.
+
+Furthermore, the metrics that measure the success of an on-call experience are only sometimes straightforward. While one might assume that fewer pages translate to better on-call expertise (which is true to a degree, as who wants to receive a page out of office hours?), it's not always the volume of pages that matters most. Trust, ownership, accountability, and effective communication play the important roles.
+
+An important part is giving feedback about the on-call experience to ensure continuous learning. If alerts are mostly noise, they should be tuned or even eliminated. If alerts are actionable, can recurring tasks be automated? If there are knowledge gaps, is the documentation not good enough? Continuous retrospection ensures that not only do systems evolve, but the experience for the on-call engineers becomes progressively better.
+
+Onboarding for on-call duties is a crucial aspect of ensuring the reliability and efficiency of systems. This process involves equipping new team members with the knowledge, tools, and support to handle incidents confidently. It begins with an overview of the system architecture and common challenges, followed by training on monitoring tools, alerting mechanisms, and incident response protocols. Shadowing experienced on-call engineers can offer practical exposure. Too often, new engineers are thrown into the cold water without proper onboarding and training because the more experienced engineers are too busy fire-fighting production issues in the first place.
+
+An always-on, always-alert culture can lead to burnout. Engineers should be encouraged to recognise their limits, take breaks, and seek support when needed. This isn't just about individual health; a burnt-out engineer can have cascading effects on the entire team and the systems they manage. A successful on-call culture ensures that while systems are kept running, the engineers are kept happy, healthy, and supported. The more experienced engineers should take time to mentor the junior engineers, but the junior engineers should also be fully engaged, try to investigate and learn new things by themselves.
+
+For the junior engineer, it's too easy to fall back and ask the experts in the team every time an issue arises. This seems reasonable, but serving recipes for solving production issues on a silver tablet won't scale forever, as there are infinite scenarios of how production systems can break. So every engineer should learn to debug, troubleshoot and resolve production incidents independently. The experts will still be there for guidance and step in when the junior gets stuck after trying, but the experts should also learn to step down so that lesser experienced engineers can step up and learn. But mistakes can always happen here; that's why having a blameless on-call culture is essential.
+
+A blameless on-call culture is a must for a safe and collaborative environment where engineers can effectively respond to incidents without fear of retribution. This approach acknowledges that mistakes are a natural part of the learning and innovation process. When individuals are assured they won't be punished for errors, they're more likely to openly discuss mistakes, allowing the entire team to learn and grow from each incident. Furthermore, a blameless culture promotes psychological safety, enhances job satisfaction, reduces burnout, and ensures that talent remains committed and engaged.
+
+The fourth part of this blog series will be published soon :-)
+
+E-Mail your comments to foo@paul.cyou :-)
+
+Back to the main site
+
+
+
+ + Site Reliability Engineering - Part 2: Operational Balance in SRE + + gemini://foo.zone/gemfeed/2023-08-19-site-reliability-engineering-part-2.gmi + 2023-08-19T00:18:18+03:00 + + Paul Buetow aka snonux + paul@dev.buetow.org + + This is the second part of my Site Reliability Engineering (SRE) series. I am currently employed as a Principal Site Reliability Engineer and will try to share what SRE is about in this blog series. + +
+

Site Reliability Engineering - Part 2: Operational Balance in SRE


+
+Published at 2023-08-19T00:18:18+03:00
+
+This is the second part of my Site Reliability Engineering (SRE) series. I am currently employed as a Principal Site Reliability Engineer and will try to share what SRE is about in this blog series.
+
+2023-08-18 Site Reliability Engineering - Part 1: SRE and Organizational Culture
+2023-08-19 Site Reliability Engineering - Part 2: Operational Balance in SRE (You are currently reading this)
+2023-08-20 Site Reliability Engineering - Part 3: On-Call Culture and the Human Aspect
+
+
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⣾⠿⠿⠿⠶⠾⠿⠿⣿⣿⣿⣿⣿⣿⠿⠿⠶⠶⠿⠿⠿⣷⠀⠀⠀⠀
+⠀⠀⠀⣸⢿⣆⠀⠀⠀⠀⠀⠀⠀⠙⢿⡿⠉⠀⠀⠀⠀⠀⠀⠀⣸⣿⡆⠀⠀⠀
+⠀⠀⢠⡟⠀⢻⣆⠀⠀⠀⠀⠀⠀⠀⣾⣧⠀⠀⠀⠀⠀⠀⠀⣰⡟⠀⢻⡄⠀⠀
+⠀⢀⣾⠃⠀⠀⢿⡄⠀⠀⠀⠀⠀⢠⣿⣿⡀⠀⠀⠀⠀⠀⢠⡿⠀⠀⠘⣷⡀⠀
+⠀⣼⣏⣀⣀⣀⣈⣿⡀⠀⠀⠀⠀⣸⣿⣿⡇⠀⠀⠀⠀⢀⣿⣃⣀⣀⣀⣸⣧⠀
+⠀⢻⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⡿⠀
+⠀⠀⠉⠛⠛⠛⠋⠁⠀⠀⠀⠀⢸⣿⣿⣿⣿⡆⠀⠀⠀⠀⠈⠙⠛⠛⠛⠉⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+⠀⠀⠀⠀⠀⠀⠴⠶⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠶⠦⠀⠀
+
+
+

Operational Balance in SRE: Finding the Equilibrium in Reliability and Velocity


+
+Site Reliability Engineering has established itself as more than just a set of best practices or methodologies. Instead, it stands as a beacon of operational excellence, which guides engineering teams through the turbulent waters of modern software development and system management.
+
+In the universe of software production, two fundamental forces are often at odds: The drive for rapid feature release (velocity) and the need for system reliability. Traditionally, the faster teams moved, the more risk was introduced into systems. SRE offers a approach to mitigate these conflicting drives through concepts like error budgets and SLIs/SLOs. These mechanisms offer a tangible metric, allowing teams to quantify how much they can push changes while ensuring they don't compromise system health. Thus, the error budget becomes a balancing act, where teams weigh the trade-offs between innovation and reliability.
+
+An important part of this balance is the dichotomy between operations and coding. According to SRE principles, an engineer should ideally spend an equal amount of time on operations work and coding - 50% on each. This isn't just a random metric; it's a reflection of the value SRE places on both maintaining operational excellence and progressing forward with innovations. This balance ensures that while SREs are solving today's problems, they are also preparing for tomorrow's challenges.
+
+However, not all operational tasks are equal. SRE differentiates between "ops work" and "toil". While ops work is integral to system maintenance and can provide value, toil represents repetitive, mundane tasks which offer little value in the long run. Recognising and minimising toil is crucial. A culture that allows engineers to drown in toil stifles innovation and growth. Hence, an organisation's approach to toil indicates its operational health and commitment to balance.
+
+A cornerstone of achieving operational balance lies in the tools and processes SREs use. Effective monitoring, observability tools, and ensuring that tools can handle high cardinality data are foundational. These aren't just technical requisites but reflective of an organisational culture prioritising proactive problem-solving. By having systems that effectively flag potential issues before they escalate, SREs can maintain the balance between system stability and forward momentum.
+
+Moreover, operational balance isn't just a technological or process challenge; it's a human one. The health of on-call engineers is as crucial as the health of the services they manage. On-call postmortems, continuous feedback loops, and recognising gaps (be it tooling, operational expertise, or resources) ensure that the human elements of operations are noticed.
+
+In conclusion, operational balance in SRE isn't static thing but an ongoing journey. It requires organisations to constantly evaluate their practices, tools, and, most importantly, their culture. By achieving this balance, organisations can ensure that they have time for innovation while maintaining the robustness and reliability of their systems, resulting in sustainable long-term success.
+
+That all sounds very romantic. The truth is, it's brutal to archive the perfect balance. No system will ever be perfect. But at least we should aim for it!
+
+Continue with the third part of this series:
+
+2023-08-20 Site Reliability Engineering - Part 3: On-Call Culture and the Human Aspect
+
+E-Mail your comments to foo@paul.cyou :-)
+
+Back to the main site
+
+
+
+ + Site Reliability Engineering - Part 1: SRE and Organizational Culture + + gemini://foo.zone/gemfeed/2023-08-18-site-reliability-engineering-part-1.gmi + 2023-08-18T22:43:47+03:00 + + Paul Buetow aka snonux + paul@dev.buetow.org + + The universe of Site Reliability Engineering (SRE) is like an intricate tapestry woven with diverse technology, culture, and personal grit threads. Site Reliability Engineering is one of the most demanding jobs. With all the facets, it's impossible to get bored. There is always a new challenge to master, and there is always a new technology to tinker with. It's not just technical; it's also about communication, collaboration and teamwork. I am currently employed as a Principal Site Reliability Engineer and will try to share what SRE is about in this blog series. + +
+

Site Reliability Engineering - Part 1: SRE and Organizational Culture


+
+Published at 2023-08-18T22:43:47+03:00
+
+The universe of Site Reliability Engineering (SRE) is like an intricate tapestry woven with diverse technology, culture, and personal grit threads. Site Reliability Engineering is one of the most demanding jobs. With all the facets, it's impossible to get bored. There is always a new challenge to master, and there is always a new technology to tinker with. It's not just technical; it's also about communication, collaboration and teamwork. I am currently employed as a Principal Site Reliability Engineer and will try to share what SRE is about in this blog series.
+
+2023-08-18 Site Reliability Engineering - Part 1: SRE and Organizational Culture (You are currently reading this)
+2023-08-19 Site Reliability Engineering - Part 2: Operational Balance in SRE
+2023-08-20 Site Reliability Engineering - Part 3: On-Call Culture and the Human Aspect
+
+
+▓▓▓▓░░                                                                                  
+                                                                                          
+DC on fire:
+                                                                                          
+                ▓▓                                    ▓▓                ▓▓                
+      ░░  ░░    ▓▓▓▓                  ██                  ░░            ▓▓▓▓        ▓▓    
+    ▓▓░░░░  ░░  ▓▓▓▓                              ▓▓░░                  ▓▓▓▓              
+    ░░░░      ▓▓▓▓▓▓        ▓▓      ▓▓            ▓▓                  ▓▓▓▓▓▓      ▓▓      
+    ▓▓░░    ▓▓▒▒▒▒▓▓▓▓    ▓▓        ▓▓▓▓        ▓▓▓▓▓▓              ▓▓▒▒▒▒▓▓▓▓    ▓▓▓▓    
+  ██▓▓      ▓▓▒▒░░▒▒▓▓  ▓▓██      ▓▓▓▓▓▓        ▓▓▒▒▓▓              ▓▓▒▒░░▒▒▓▓  ██▓▓▓▓    
+  ▓▓▓▓██  ▓▓▒▒░░░░▒▒▓▓  ▓▓▓▓      ▓▓▒▒▒▒▓▓    ▓▓▒▒░░▒▒▓▓██▓▓      ▓▓▒▒░░░░▒▒▓▓  ▓▓▒▒▒▒▓▓  
+  ▓▓▒▒▒▒▓▓▓▓▒▒░░▒▒▓▓▓▓▓▓▒▒▒▒▓▓  ▓▓▓▓░░▒▒▓▓    ▓▓▒▒░░▒▒▓▓▒▒▒▒▓▓    ▓▓▒▒░░▒▒▓▓▓▓▓▓▓▓░░▒▒▓▓  
+  ▒▒░░▒▒▓▓▓▓▒▒░░▒▒▓▓▓▓▒▒░░▒▒▓▓  ▓▓▒▒░░▒▒▓▓    ▓▓░░░░▒▒▒▒░░░░▒▒██████▒▒░░▒▒██▓▓▓▓▒▒░░▒▒▓▓██
+  ░░░░▒▒▓▓▒▒░░▒▒▓▓▓▓▓▓▒▒░░▒▒▓▓██▒▒░░░░▒▒▓▓  ▓▓▒▒░░▒▒▓▓▒▒▒▒░░▒▒▓▓▓▓▒▒░░▒▒▓▓▓▓▓▓▒▒░░░░▒▒▓▓▓▓
+  ░░░░▒▒▓▓▒▒░░░░▓▓██▒▒░░░░▒▒▓▓██▒▒░░░░▒▒██▓▓▓▓▒▒░░▒▒▓▓▓▓▒▒░░░░▒▒▓▓▒▒░░░░██▓▓▓▓▒▒░░░░▒▒████
+  ▒▒░░▒▒▓▓▓▓░░░░▒▒▓▓▒▒▒▒░░░░▒▒▓▓▓▓▒▒░░░░▒▒▓▓▓▓▒▒░░░░▒▒▓▓▒▒░░▒▒▓▓▓▓▓▓░░░░▒▒▓▓▓▓▓▓▒▒░░░░▒▒▓▓
+  ▒▒░░▒▒▓▓▒▒▒▒░░▒▒██▒▒▒▒░░▒▒▒▒██▒▒▒▒░░░░░░▒▒▓▓▒▒░░░░▒▒▒▒░░░░▒▒████▒▒▒▒░░▒▒██▓▓▒▒▒▒░░░░░░▒▒
+  ░░░░░░▒▒░░░░░░░░▒▒▒▒▒▒░░░░▒▒▒▒▒▒░░░░░░░░▒▒▒▒░░░░░░▒▒▒▒░░░░░░▒▒▒▒░░░░░░░░▒▒▒▒▒▒░░░░░░░░▒▒
+  ░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░░░
+
+
+

SRE and Organizational Culture: Navigating the Nexus


+
+At the heart of SRE lies the proactive mindset of "prevention over cure." Traditional IT models focused predominantly on reactive solutions, but SRE mandates a shift towards foresight. By adopting Service Level Indicators (SLIs) and Service Level Objectives (SLOs), teams are equipped with clear metrics and goals that guide them toward ensuring reliability and user satisfaction. They reflect an organisational culture prioritising user experience and constant system alignment with user needs.
+
+Another defining SRE idea concept the "error budget." This ingenious framework accepts that no system is flawless. Failures are inevitable. However, instead of being punitive, the culture here is to accept, learn, and iterate. By providing teams with a "budget" for errors, organisations create an environment where innovation is encouraged, and failures are viewed as learning opportunities.
+
+But SRE isn't just about technology and metrics; it's deeply human. It challenges the "hero culture" that plagues many IT teams. While individual heroics might occasionally save the day, a sustainable model requires collective expertise. An SRE culture recognises that heroes achieve their best within teams, negating the need for a hero-centric environment. This philosophy promotes a balanced on-call experience, emphasising the importance of trust, ownership, effective communication, and collaboration as cornerstones of team success. I personally have fallen into the hero trap, and know it's unsustainable to be the only go-to person for every problem.
+
+Additionally, the SRE model requires good documentation. However, it's essential ensuring that this documentation undergoes the same quality checks as code, reinforcing effective onboarding, training and communication.
+
+Organisations might face a significant challenge when adopting SRE. Some might feel SRE principles counter their goals. They might prioritise feature rollouts over reliability or view SRE practices as cumbersome. Hence, creating an SRE culture often demands patient explanations and showcasing benefits, such as increased release velocity and improved user experience.
+
+Monitoring and observability form another SRE aspect, emphasising the need for high-quality tools to query and analyse data. This ties back to the cultural emphasis on continuous learning and adaptability. SREs, by nature, need to be curious, ready to delve into anomalies, and keen on adopting new tools and practices.
+
+The success of SRE within any organisation depends on the broader acceptance of its principles. It demands a move away from siloed operations, where SRE acts as a bandage on flawed systems, to a model where reliability is everyone's responsibility.
+
+In essence, the integration of SRE principles transcends technical practices. It paves the way for a shift in organisational culture that values proactive prevention, continuous learning, collaboration, and transparent communication. The successful melding of SRE and corporate culture promises not just reliable systems but also a robust, resilient, and progressive work environment.
+
+Organisations with the implementation of SLIs, SLOs and error budgets are already advanced in their SRE journey. It takes a lot of communication, convincing, and patience until that point is reached.
+
+Continue with the second part of this series:
+
+2023-08-19 Site Reliability Engineering - Part 2: Operational Balance in SRE
+
+E-Mail your comments to foo@paul.cyou :-)
+
+Back to the main site
+
+
+
+ + Gemtexter 2.1.0 - Let's Gemtext again³ + + gemini://foo.zone/gemfeed/2023-07-21-gemtexter-2.1.0-lets-gemtext-again-3.gmi + 2023-07-21T10:19:31+03:00 + + Paul Buetow aka snonux + paul@dev.buetow.org + + I proudly announce that I've released Gemtexter version `2.1.0`. What is Gemtexter? It's my minimalist static site generator for Gemini Gemtext, HTML and Markdown, written in GNU Bash. + +
+

Gemtexter 2.1.0 - Let's Gemtext again³


+
+Published at 2023-07-21T10:19:31+03:00
+
+
+-=[ typewriters ]=-  1/98
+                                        .-------.
+       .-------.                       _|~~ ~~  |_
+      _|~~ ~~  |_       .-------.    =(_|_______|_)
+    =(_|_______|_)=    _|~~ ~~  |_     |:::::::::|
+      |:::::::::|    =(_|_______|_)    |:::::::[]|
+      |:::::::[]|      |:::::::::|     |o=======.|
+      |o=======.|      |:::::::[]|     `"""""""""`
+ jgs  `"""""""""`      |o=======.|
+  mod. by Paul Buetow  `"""""""""`
+
+
+I proudly announce that I've released Gemtexter version 2.1.0. What is Gemtexter? It's my minimalist static site generator for Gemini Gemtext, HTML and Markdown, written in GNU Bash.
+
+https://codeberg.org/snonux/gemtexter
+
+

Why Bash?


+
+This project is too complex for a Bash script. Writing it in Bash was to try out how maintainable a "larger" Bash script could be. It's still pretty maintainable and helps me try new Bash tricks here and then!
+
+Let's list what's new!
+
+

Switch to GPL3 license


+
+Many (almost all) of the tools and commands (GNU Bash, GMU Sed, GNU Date, GNU Grep, GNU Source Highlight) used by Gemtexter are licensed under the GPL anyway. So why not use the same? This was an easy switch, as I was the only code contributor so far!
+
+

Source code highlighting support


+
+The HTML output now supports source code highlighting, which is pretty neat if your site is about programming. The requirement is to have the source-highlight command, which is GNU Source Highlight, to be installed. Once done, you can annotate a bare block with the language to be highlighted. E.g.:
+
+
+ ```bash
+ if [ -n "$foo" ]; then
+   echo "$foo"
+ fi
+ ```
+
+
+The result will look like this (you can see the code highlighting only in the Web version, not in the Geminispace version of this site):
+
+ +
if [ -n "$foo" ]; then
+  echo "$foo"
+fi
+
+
+Please run source-highlight --lang-list for a list of all supported languages.
+
+

HTML exact variant


+
+Gemtexter is there to convert your Gemini Capsule into other formats, such as HTML and Markdown. An HTML exact variant can now be enabled in the gemtexter.conf by adding the line declare -rx HTML_VARIANT=exact. The HTML/CSS output changed to reflect a more exact Gemtext appearance and to respect the same spacing as you would see in the Geminispace.
+
+

Use of Hack webfont by default


+
+The Hack web font is a typeface designed explicitly for source code. It's a derivative of the Bitstream Vera and DejaVu Mono lineage, but it features many improvements and refinements that make it better suited to reading and writing code.
+
+The font has distinctive glyphs for every character, which helps to reduce confusion between similar-looking characters. For example, the characters "0" (zero), "O" (capital o), and "o" (lowercase o), or "1" (one), "l" (lowercase L), and "I" (capital i) all have distinct looks in Hack, making it easier to read and understand code at a glance.
+
+Hack is open-source and freely available for use and modification under the MIT License.
+
+

HTML Mastodon verification support


+
+The following link explains how URL verification works in Mastodon:
+
+https://joinmastodon.org/verification
+
+So we have to hyperlink to the Mastodon profile to be verified and also to include a rel='me' into the tag. In order to do that add this to the gemtexter.conf (replace the URI to your Mastodon profile accordingly):
+
+ +
declare -xr MASTODON_URI='https://fosstodon.org/@snonux'
+
+
+and add the following into your index.gmi:
+
+
+=> https://fosstodon.org/@snonux Me at Mastodon
+
+
+The resulting line in the HTML output will be something as follows:
+
+ +
<a href='https://fosstodon.org/@snonux' rel='me'>Me at Mastodon</a>
+
+
+

More


+
+Additionally, there were a couple of bug fixes, refactorings and overall improvements in the documentation made.
+
+Other related posts are:
+
+2021-04-24 Welcome to the Geminispace
+2021-06-05 Gemtexter - One Bash script to rule it all
+2022-08-27 Gemtexter 1.1.0 - Let's Gemtext again
+2023-03-25 Gemtexter 2.0.0 - Let's Gemtext again²
+2023-07-21 Gemtexter 2.1.0 - Let's Gemtext again³ (You are currently reading this)
+
+E-Mail your comments to foo@paul.cyou :-)
+
+Back to the main site
+
+
+
+ + 'Software Developmers Career Guide and Soft Skills' book notes + + gemini://foo.zone/gemfeed/2023-07-17-career-guide-and-soft-skills-book-notes.gmi + 2023-07-17T04:56:20+03:00 + + Paul Buetow aka snonux + paul@dev.buetow.org + + These notes are of two books by 'John Sommez' I found helpful. I also added some of my own keypoints to it. These notes are mainly for my own use, but you might find them helpful, too. + +
+

"Software Developmers Career Guide and Soft Skills" book notes


+
+Published at 2023-07-17T04:56:20+03:00
+
+These notes are of two books by "John Sommez" I found helpful. I also added some of my own keypoints to it. These notes are mainly for my own use, but you might find them helpful, too.
+
+
+         ,..........   ..........,
+     ,..,'          '.'          ',..,
+    ,' ,'            :            ', ',
+   ,' ,'             :             ', ',
+  ,' ,'              :              ', ',
+ ,' ,'............., : ,.............', ',
+,'  '............   '.'   ............'  ',
+ '''''''''''''''''';''';''''''''''''''''''
+                    '''
+
+
+

Improve


+
+

Always learn new things


+
+When you learn something new, e.g. a programming language, first gather an overview, learn from multiple sources, play around and learn by doing and not consuming and form your own questions. Don't read too much upfront. A large amount of time is spent in learning technical skills which were never use. You want to have a practical set of skills you are actually using. You need to know 20 percent to get out 80 percent of the results.
+
+
    +
  • Learn a technology with a goal, e.g. implement a tool. Practice practise practice.
  • +
  • "I know X can do Y, I don't know exactly how, but I can look it up."
  • +
  • Read what experts are writing, for example follow blogs. Stay up to date and spent half an hour per day trading blogs and books.
  • +
  • Pick an open source application, read the code and try to understand it to get a feel of the syntax of the programming language.
  • +
  • Understand, that the standard library makes you a much better programmer.
  • +
  • Self learning is the top skill a programmer can have and is also useful in other aspects in your life.
  • +
  • Keep learning skills every day. Code every day. Don't be overconfident for job security. Read blogs, read books.
  • +
  • If you want to learn, then do it by exploring. Also teach what you learned (for example write a blog post or hold a presentation).
  • +

+Fake it until you make it. But be honest about your abilities or lack of. There is however only time between now and until you make it. Refer to your abilities to learn.
+
+Boot camps: The advantage of a boot camp is to pragmatically learn things fast. We almost always overestimate what we can do in a day. Especially during boot camps. Connect to others during the boot camps
+
+

Set goals


+
+Your own goals are important but the manager also looks at how the team performs and how someone can help the team perform better. Check whether you are on track with your goals every 2 weeks in order to avoid surprises for the annual review. Make concrete goals for next review. Track and document your progress. Invest in your education. Make your goals known. If you want something, then ask for it. Nobody but you knows what you want.
+
+

Ratings


+
+That's a trap: If you have to rate yourself, that's a trap. That never works in an unbiased way. Rate yourself always the best way but rate your weakest part as high as possible minus one point. Rate yourself as good as you can otherwise. Nobody is putting for fun a gun on his own head.
+
+
    +
  • Don't do peer rating, it can fire back on you. What if the colleague becomes your new boss?
  • +
  • Cooperate rankings are unfortunately HR guidelines and politics and only mirror a little your actual performance.
  • +

+

Promotions


+
+The most valuable employees are the ones who make themselves obsolete and automate all away. Keep a safety net of 3 to 6 months of finances. Safe at least 10 percent of your earnings. Also, if you make money it does not mean that you have to spent more money. Is a new car better than a used car which both can bring you from A to B? Liability vs assets.
+
+
    +
  • Raise or promotion, what's better? Promotion is better as money will follow anyway then.
  • +
  • Take projects no-one wants and make them shine. A promotion will follow.
  • +
  • A promotion is not going to come to you because you deserve it. You have to hunt and ask for it.
  • +
  • Track all kudos (e.g. ask for emails from your colleagues).
  • +
  • Big corporations HRs don't expect a figjit. That's why it's so important to keep track of your accomplishments and kudos'.
  • +
  • If you want a raise be specific how much and know to back your demands. Don't make a thread and no ultimatums.
  • +
  • Best way for a promotion is to switch jobs. You can even switch back with a better salary.
  • +

+

Finish things


+
+Hard work is necessary for accomplish results. However, work smarter not harder. Furthermore, working smart is not a substitute for working hard. Work both, hard and smart.
+
+
    +
  • Learn to finish things without motivation. Things will pay off when you stick to stuff and eventually motivation can also come back.
  • +
  • You will fail if you don't plan realistically. Set also a schedule and follow to it as of life depends on it.
  • +
  • Advances come only of you give more than asked. Consistency, commitment and knowing what you need to do is more key than hard work.
  • +
  • Any action is better than no action. If you get stuck you have gained nothing.
  • +
  • You need to know the unknowns. Identify as many unknown not known things as possible.
  • +

+Hard vs fun: Both engage the brain (video games vs work). Some work is hard and other is easy. Hard work is boring. The harsh truth is you have to put in hard and boring work in order to accomplish and be successful. Work won't be always boring though, as joy will follow with mastery.
+
+Defeat is finally give up. Failure is the road to success, embrace it. Failure does not define you but how you respond to it. Events don't make your unhappy, but how you react to events do.
+
+

Expand the empire


+
+The larger your empire is, the larger your circle of influence is. The larger the circle of influence is, the more opportunities you have.
+
+
    +
  • Do the dirty work if you want to expand the empire. That's there the opportunities are.
  • +
  • SCRUM often fails due to the lack to commitment. The backlog just becomes a wish to get completed.
  • +
  • Apply work on your quality standards. Don't cross the line of compromise. Always improve your skills. Never be happy being good enough.
  • +

+Become visible, keep track that you accomplishments. E.g. write a weekly summary. Do presentations, be seen. Learn new things and share your learnings. Be the problem solver and not the blamer.
+
+

Be pragmatic and also manage your time


+
+Make use of time boxing via the Pomodoro technique: Set a target of rounds and track the rounds. That give you exact focused work time. That's really the trick. For example set a goal of 6 daily pomodores.
+
+
    +
  • Every time you do something question why does it make sense be pragmatic and don't follow because it is best practice.
  • +
  • You can also apply the time boxing technique (Cal Newport) for focused deep work.
  • +

+You should feel good of the work done even if you don't finished the task. You will feel good about pomodoro wise even you don't finish the task on hand yet. Helps you to enjoy time off more. Working longer may not sell anything.
+
+

The quota system


+
+Defined quota of things done. E.g. N runs per week or M Blog posts per month or O pomodoros per week. This helps with consistency. Truly commit to these quotas. Failure is not an option. Start with small commitments. Don't commit to something you can't fulfill otherwise you set yourself up for failure.
+
+
    +
  • Why does the quota System work? Slow and consistent pace is the key. It also overcomes willpower weaknesses as goals are preset.
  • +
  • Internal motivation is more important over external motivation. Check out Daniels book drive.
  • +
  • Multitasking: Batching is effective. E.g. emails twice daily at pre-set times..
  • +

+

Don't waste time


+
+The biggest time waster is TV watching. The TV is programming you. It's insane that Americans watch so much TV as they work full time. Schedule one show at a time and watch it when you want to watch it. Most movies are crap anyways. The good movies will come to you as people will talk about them.
+
+
    +
  • Social media is time waster as well. Schedule your Social Media times. For example be on Facebook only for max one hour on Saturdays.
  • +
  • Meetings can waste time as well. Simply don't go to them. Try to cancel meeting if it can be dealt with via email.
  • +
  • Enjoying things is not a waste of time. E.g. you could still play a game once in a while. It is important not to cut away all you enjoy from your life.
  • +

+

Habits


+
+Try to have as many good habits as possible. Start with easy habits, and make them a little bit more challenging over time. Set ankers and rewards. Over time the routines will become habits naturally.
+
+Habit stacking is effective, which is combining multiple habits at the same time. For example you can workout on a circular trainer while while watching a learning video on O'Reilly Safari Online while getting closer to your weekly step goal.
+
+
    +
  • We don't have control over our habits but our own routines.
  • +
  • Routines help to form the habits, though.
  • +

+

Work-life balance


+
+Avoid overwork hours. That's not as beneficial as you might think and comes only with very small rewards. Invest rather in yourself and not in your employer.
+
+
    +
  • Work-life balance is a myth. Make it so that you enjoy work and your personal life and not just personal life.
  • +
  • Maintain fewer but good relationships. As a reward, better and integrated your life will be.
  • +
  • Life in the present Moment. Make the best of every moment of your life.
  • +
  • Enjoy every aspect of your life. If you want to take away one thing from this book that is it.
  • +

+Use your most productive hours to work on you. Make that your priority. Take care of yourself a priority (E.g. do workouts or learn a new language). You can always workout 2 or 1 hour per day, but will you pay the price?
+
+

Mental health


+
+
    +
  • Friendships and positive thinking help to have and maintain better health, longer Life, better productivity and increased happiness.
  • +
  • Positive thinking can be trained and be a habit. Read the book "The Power of Positive Thinking".
  • +
  • Stoicism helps. Meditation helps. Playing for fun helps too.
  • +

+Become the person you want to become (your self image). Program your brain unconsciously. Don't become the person other people want you to be. Embrace yourself, you are you.
+
+In most cases burnout is just an illusion. If you don't have motivation push through the wall. People usually don't pass the wall as they feel they are burned out. After pushing through the wall you will have the most fun, for example you will be able playing the guitar greatly.
+
+

Physical health


+
+Utilise a standing desk and treadmill (you could walk and type at the same time). Increase the incline in order to burn more calories. Even on the standing desk you burn more calories than sitting. When you use pomodoro then you can use the small breaks for push-ups (maybe won't do as good when you are in a fasted state).
+
+
    +
  • You can only do one thing, lose fat or gain muscles. Not both at the same time.
  • +
  • Train your strength by heavy lifting, but only with a very few repetitions (e.g. 5 max for each exercise, everything over this is body building).
  • +
  • If you want to increase the muscle mass use medium weights but lift them more often. If you want to increase your endurance lift light weights but with even more reps.
  • +
  • Avoid highly processed foods
  • +

+Intermittent fasting is an effective method to maintain weight and health. But it does not mean that you can only eat junk food in the feeding windows. Also, diet and nutrition is the most important for health and fitness. They make it also easier to stay focused and positive.
+
+

No drama


+
+Avoid drama at work. Where are humans there is drama. You can decide where to spent your energy in. But don't avoid conflict. Conflict is healthy in any kind of relationship. Be tactful and state your opinion. The goal is to find the best solution to the problem.
+
+Don't worry about other people what they do and don't do. You only worry about you. Shut up and get your own things done. But you could help to inspire a not working colleague.
+
+
    +
  • During an argument, take the opponent's position and see how your opinion changes.
  • +
  • If you they to convince someone else it's an argument. Of you try to find the best solution it is a good resolution.
  • +
  • If someone is hurting the team let the manager know but phrase it nicely.
  • +
  • How to get rid of a never ending talking person? Set up focus hours officially where you don't want to be interrupted. Present as if it is your defect that you get interrupted easily.
  • +
  • TOXIC PEOPLE: AVOID THEM. RUN.
  • +
  • Boss likes if you get shit done without getting asked all the time about things and also without drama.
  • +

+You have to learn how to work in a team. Be honest but tactful. It's not too be the loudest but about selling your ideas. Don't argue otherwise you won't sell anything. Be persuasive by finding the common ground. Or lead the colleagues to your idea and don't sell it upfront. Communicate clearly.
+
+

Personal brand


+
+
    +
  • Invest your value outside the company. Build your personal brand. Show how valuable you are, also to other companies. Become an asset.
  • +
  • Invest in your education. Make your goals known. If you want something ask for it (see also the sections about goals in this document).
  • +

+

Market yourself


+
+
    +
  • The best way to market yourself is to make you usable.
  • +
  • Create a brand. Decide your focus. Throw your name out as often as possible.
  • +

+Have a blog. Schedule your posts. Consistency beats every other factor. E.g. post once a month a new post. Find your voice, you don't have to sound academic. Keep writing, if you keep it long enough the rewards will be coming. Your own blog can take 5 years to take off. Most people give up too soon.
+
+
    +
  • Consistency of your blog is key. Also write quality content. Don't try to be a man of success but try to be a man of value.
  • +
  • Have an elevator pitch: "buetow.org - Having fun with computers!"
  • +
  • Have social media accounts, especially the ones which are more tech related.
  • +

+

Networking


+
+Ask people so they talk about themselves. They are not really interested in you. Use meetup.com to find groups you are interested and build up the network over time. Don't drink on social networking events even when others do. Talking to other people at events only has upsides. Just saying "hi" and introducing yourself is enough. What worse can happen? If the person rejects you so what, life goes on. Ask open questions and no "yes" and "no" questions. E.g.: "What is your story, why are you here?".
+
+

Public speaking


+
+Before your talk go on stage 10 minutes in advance. Introduce yourself to the front row people. During the talk they will smile at you and encourage you during your talk.
+
+
    +
  • Try at least 5 times before giving up public speaking. You can also start small, e.g. present a topic at work you are learning.
  • +
  • Practise your talk and timing. You can also record your practicing.
  • +

+Just do it. Just go to conferences. Even if you are not speaking. Sell your boss what you would learn and "this and that" and you would present the learnings to the team afterwards.
+
+

New job


+
+

For the interview


+
+
    +
  • Build up a network before the interview. E.g., follow and comment blogs. Or go to meet-ups and conferences. Join user groups.
  • +
  • Ask to touch base before the real interview and ask questions about the company. Do "pre-interviews".
  • +
  • Have a blog, a CV can only be 2 pages and an interview only can last only 2 hours. A blog helps you also to be a better communicator.
  • +

+If you are specialized then there is a better chance to get a fitting job. No one will hire a general lawyer if there are specialized lawyers available. Even if you are specialized, you will have a wide range of skills (T-shape knowledge).
+
+

Find the right type of company


+
+Not all companies are equal. They have individual cultures and guidelines.
+
+
    +
  • Startup: dynamic and larger impact. Many hats on.
  • +
  • Medium size companies: most stable ones. Not cutting edge technologies. No crazy working hours.
  • +
  • Large company: very established with a lot of structure however constant layoffs and restructurings. Less impact you can have. Complex politics.
  • +
  • Working for yourself: This is harder than you think, probably much harder.
  • +

+Work in a tech. company if you want to work on/with cutting edge technologies.
+
+

Apply for the new job


+
+Get a professional resume writer. Get referrals of writers and get samples from there. Get sufficient with algorithm and data structures interview questions. Cracking the coding interview book and blog
+
+
    +
  • Apply for each job with a specialised CV each. Each CV fits the job better.
  • +
  • Best get a job via a personal referral or inbound marketing. The latter is somehow rare.
  • +
  • Inbound marketing is for example someone responds to your blog and offers you a job.
  • +
  • Interview the interviewer. Be persistent.
  • +
  • Create creative looking resumes, see simple programmer website. Action-result style for a resume.
  • +

+Invest in your dress code as appearance masters. It does make sense to invest in your style. You could even hire a professional stylist (not my personal way though).
+
+

Negotiation


+
+
    +
  • Whoever names the number first loses. You don't know what someone else is expecting unless told. Low ball number may be an issue but you have to know the market.
  • +
  • Salary is not about what you need but what you are worth. Try to find out what you are worth.
  • +
  • Big tech companies have a pay scale. You can ask for this.
  • +
  • Don't tell your current salary. Only do one counter offer and say "If you do X then I commit today". Be tactful and not rude. Nobody wants to be taken advantage of. Also, don't be arrogant.
  • +
  • If the company wants to know your range, respond: "I would rather learn more about the job and compensation. You have a range in mind, correct?" Be brave and just pause here.
  • +
  • Otherwise, if the company refuses then say "if you tell me what the range is and although I am not yet sure yet what are my exact salary requirements are I can see if the range is of what I am looking for. If they absolute refuse give a high ball range you would expect and make it conditional to the overall compensation package. E.g. 70k to 100k depending on the compensation package. THE LOW END SHOULD BE YOUR REAL LOW END. Play a little bit of hardball here and be brave. Practise it.
  • +
  • Put 10 percent on top of the salary range into a counter offer.
  • +
  • Everything is negotiable, not only the salary.
  • +
  • Job markup rate: Check it regarding the recruitment rate negotiation.
  • +
  • Don't make a rushed decision based on deadlines. Make a fairly high counter offer shortly before deadline.
  • +
  • You should also cope with rejections while selling yourself. There is no such thing as job security.
  • +

+
    +
  • Never spilt the difference is the best book for learning negotiation techniques..
  • +

+

Leaving the old job


+
+When leaving a job make a clean and non personal as possible. Never complain and never explain. Don't worry about abandonment of the team. Everybody is replacement and you make a business decision. Don't threaten to quit as you are replaceable.
+
+

Other things


+
+
    +
  • As a leader lead by example and don't lead from the Eiffel tower.
  • +
  • As a leader you are responsible for the team. If the team fails then it's your fault only.
  • +

+

Testing


+
+Unit testing Vs regression testing: Unit tests test the smallest possible unit and get rewritten if the unit gets changed. It's like programming against a specification n. Regression tests test whether the software still works after the change. Now you know more than most software engineers.
+
+

Books to read


+
+
    +
  • Clean Code
  • +
  • Code Complete
  • +
  • Cracking the Interview - Lessons and Solutions.
  • +
  • Daniels Book "Drive" (about internal and external motivation)
  • +
  • God's degree (inventor of Dilbert)
  • +
  • Head first Design Patterns
  • +
  • How to win Friends and influence People
  • +
  • Never Split the Difference [X]
  • +
  • Structure and programming functional programs
  • +
  • The obstacle is the way [X]
  • +
  • The passionate programmer
  • +
  • The Power of Positive Thinking (Highly religious - I personally don't like it)
  • +
  • The Pragmatic Programmer [X]
  • +
  • The war of Art (to combat procrastination)
  • +
  • Willpower Instinct
  • +

+Other book notes of mine are:
+
+2023-03-16 "The Pragmatic Programmer" book notes
+2023-04-01 "Never split the difference" book notes
+2023-05-06 "The Obstacle is the Way" book notes
+2023-07-17 "Software Developmers Career Guide and Soft Skills" book notes (You are currently reading this)
+
+E-Mail your comments to foo@paul.cyou :-)
+
+More books and other resources I found useful.
+Back to the main site
+
+
+
+ + KISS server monitoring with Gogios + + gemini://foo.zone/gemfeed/2023-06-01-kiss-server-monitoring-with-gogios.gmi + 2023-06-01T21:10:17+03:00 + + Paul Buetow aka snonux + paul@dev.buetow.org + + Gogios is a minimalistic and easy-to-use monitoring tool I programmed in Google Go designed specifically for small-scale self-hosted servers and virtual machines. The primary purpose of Gogios is to monitor my personal server infrastructure for `foo.zone`, my MTAs, my authoritative DNS servers, my NextCloud, Wallabag and Anki sync server installations, etc. + +
+

KISS server monitoring with Gogios


+
+Published at 2023-06-01T21:10:17+03:00
+
+Gogios logo
+
+

Introduction


+
+Gogios is a minimalistic and easy-to-use monitoring tool I programmed in Google Go designed specifically for small-scale self-hosted servers and virtual machines. The primary purpose of Gogios is to monitor my personal server infrastructure for foo.zone, my MTAs, my authoritative DNS servers, my NextCloud, Wallabag and Anki sync server installations, etc.
+
+With compatibility with the Nagios Check API, Gogios offers a simple yet effective solution to monitor a limited number of resources. In theory, Gogios scales to a couple of thousand checks, though. You can clone it from Codeberg here:
+
+https://codeberg.org/snonux/gogios
+
+
+    _____________________________    ____________________________
+   /                             \  /                            \
+  |    _______________________    ||    ______________________    |
+  |   /                       \   ||   /                      \   |
+  |   | # Alerts with status c|   ||   | # Unhandled alerts:  |   |
+  |   | hanged:               |   ||   |                      |   |
+  |   |                       |   ||   | CRITICAL: Check Pizza|   |
+  |   | OK->CRITICAL: Check Pi|   ||   | : Late delivery      |   |
+  |   | zza: Late delivery    |   ||   |                      |   |
+  |   |                       |   ||   | WARNING: Check Thirst|   |
+  |   |                       |   ||   | : OutofKombuchaExcept|   |
+  |   \_______________________/   ||   \______________________/   |
+  |  /|\ GOGIOS MONITOR 1    _    ||  /|\ GOGIOS MONITOR 2   _    |
+   \_____________________________/  \____________________________/
+     !_________________________!      !________________________!
+
+------------------------------------------------
+ASCII art was modified by Paul Buetow
+The original can be found at
+https://asciiart.website/index.php?art=objects/computers
+
+
+

Motivation


+
+With experience in monitoring solutions like Nagios, Icinga, Prometheus and OpsGenie, these tools often came with many features that I didn't necessarily need for personal use. Contact groups, host groups, check clustering, and the requirement of operating a DBMS and a WebUI added complexity and bloat to my monitoring setup.
+
+My primary goal was to have a single email address for notifications and a simple mechanism to periodically execute standard Nagios check scripts and notify me of any state changes. I wanted the most minimalistic monitoring solution possible but wasn't satisfied with the available options.
+
+This led me to create Gogios, a lightweight monitoring tool tailored to my specific needs. I chose the Go programming language for this project as it comes, in my opinion, with the best balance of ease to use and performance.
+
+

Features


+
+
    +
  • Compatible with Nagios Check scripts: Gogios leverages the widely-used Nagios Check API, allowing to use existing Nagios plugins.
  • +
  • Lightweight and Minimalistic: Gogios is designed to be simple and fairly easy to set up.
  • +
  • Configurable Check Timeout and Concurrency: Gogios allows you