summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--about/resources.html186
-rw-r--r--about/showcase.html435
-rw-r--r--about/showcase/debroid/image-1.png107
-rw-r--r--gemfeed/2022-06-15-sweating-the-small-stuff.html2
-rw-r--r--gemfeed/2022-07-30-lets-encrypt-with-openbsd-and-rex.html2
-rw-r--r--gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html6
-rw-r--r--gemfeed/atom.xml6
-rw-r--r--index.html2
-rw-r--r--uptime-stats.html26
9 files changed, 385 insertions, 387 deletions
diff --git a/about/resources.html b/about/resources.html
index ba2efae6..d2be9923 100644
--- a/about/resources.html
+++ b/about/resources.html
@@ -50,107 +50,107 @@
<span>In random order:</span><br />
<br />
<ul>
-<li>The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible</li>
-<li>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</li>
+<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O&#39;Reilly</li>
+<li>DNS and BIND; Cricket Liu; O&#39;Reilly</li>
<li>The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton</li>
-<li>Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press</li>
-<li>Raku Fundamentals; Moritz Lenz; Apress</li>
+<li>Concurrency in Go; Katherine Cox-Buday; O&#39;Reilly</li>
+<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li>
<li>Ultimate Go Notebook; Bill Kennedy</li>
+<li>The Kubernetes Book; Nigel Poulton; Unabridged Audiobook</li>
+<li>Java ist auch eine Insel; Christian Ullenboom; </li>
+<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li>
<li>Effective Java; Joshua Bloch; Addison-Wesley Professional</li>
-<li>Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers </li>
-<li>Leanring eBPF; Liz Rice; O&#39;Reilly</li>
<li>Systemprogrammierung in Go; Frank Müller; dpunkt</li>
-<li>The Pragmatic Programmer; David Thomas; Addison-Wesley</li>
-<li>Funktionale Programmierung; Peter Pepper; Springer</li>
-<li>C++ Programming Language; Bjarne Stroustrup;</li>
-<li>97 things every SRE should know; Emil Stolarsky, Jaime Woo; O&#39;Reilly</li>
-<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li>
-<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li>
-<li>The Docker Book; James Turnbull; Kindle</li>
-<li>Raku Recipes; J.J. Merelo; Apress</li>
-<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O&#39;Reilly</li>
-<li>Data Science at the Command Line; Jeroen Janssens; O&#39;Reilly</li>
-<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li>
<li>Site Reliability Engineering; How Google runs production systems; O&#39;Reilly</li>
-<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O&#39;Reilly</li>
-<li>Higher Order Perl; Mark Dominus; Morgan Kaufmann</li>
-<li>Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf</li>
-<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</li>
<li>Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall &amp; Jon Orwant; O&#39;Reilly</li>
+<li>Higher Order Perl; Mark Dominus; Morgan Kaufmann</li>
+<li>Data Science at the Command Line; Jeroen Janssens; O&#39;Reilly</li>
<li>Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson</li>
-<li>The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional</li>
-<li>Developing Games in Java; David Brackeen and others...; New Riders</li>
-<li>Concurrency in Go; Katherine Cox-Buday; O&#39;Reilly</li>
-<li>Effective awk programming; Arnold Robbins; O&#39;Reilly</li>
-<li>Terraform Cookbook; Mikael Krief; Packt Publishing</li>
+<li>97 things every SRE should know; Emil Stolarsky, Jaime Woo; O&#39;Reilly</li>
+<li>The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible</li>
+<li>Leanring eBPF; Liz Rice; O&#39;Reilly</li>
<li>Polished Ruby Programming; Jeremy Evans; Packt Publishing</li>
-<li>Pro Puppet; James Turnbull, Jeffrey McCune; Apress</li>
+<li>Raku Fundamentals; Moritz Lenz; Apress</li>
+<li>The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional</li>
+<li>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</li>
+<li>The Docker Book; James Turnbull; Kindle</li>
+<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li>
+<li>Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf</li>
+<li>The Pragmatic Programmer; David Thomas; Addison-Wesley</li>
<li>Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications</li>
+<li>21st Century C: C Tips from the New School; Ben Klemens; O&#39;Reilly</li>
+<li>Pro Puppet; James Turnbull, Jeffrey McCune; Apress</li>
+<li>Funktionale Programmierung; Peter Pepper; Springer</li>
<li>Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press</li>
+<li>Terraform Cookbook; Mikael Krief; Packt Publishing</li>
+<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</li>
+<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O&#39;Reilly</li>
+<li>Developing Games in Java; David Brackeen and others...; New Riders</li>
+<li>Modern Perl; Chromatic ; Onyx Neon Press</li>
<li>Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O&#39;Reilly</li>
-<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li>
+<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li>
+<li>Effective awk programming; Arnold Robbins; O&#39;Reilly</li>
+<li>Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press</li>
+<li>C++ Programming Language; Bjarne Stroustrup;</li>
+<li>Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers </li>
<li>Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O&#39;Reilly</li>
-<li>Modern Perl; Chromatic ; Onyx Neon Press</li>
-<li>The Kubernetes Book; Nigel Poulton; Unabridged Audiobook</li>
-<li>21st Century C: C Tips from the New School; Ben Klemens; O&#39;Reilly</li>
-<li>Java ist auch eine Insel; Christian Ullenboom; </li>
-<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li>
-<li>DNS and BIND; Cricket Liu; O&#39;Reilly</li>
+<li>Raku Recipes; J.J. Merelo; Apress</li>
+<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li>
</ul><br />
<h2 style='display: inline' id='technical-references'>Technical references</h2><br />
<br />
<span>I didn&#39;t read them from the beginning to the end, but I am using them to look up things. The books are in random order:</span><br />
<br />
<ul>
-<li>Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O&#39;Reilly</li>
+<li>Relayd and Httpd Mastery; Michael W Lucas</li>
+<li>Groovy Kurz &amp; Gut; Joerg Staudemeier; O&#39;Reilly</li>
+<li>The Linux Programming Interface; Michael Kerrisk; No Starch Press </li>
+<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</li>
<li>Go: Design Patterns for Real-World Projects; Mat Ryer; Packt</li>
+<li>Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O&#39;Reilly</li>
<li>Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley</li>
-<li>Relayd and Httpd Mastery; Michael W Lucas</li>
<li>Implementing Service Level Objectives; Alex Hidalgo; O&#39;Reilly</li>
-<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</li>
-<li>The Linux Programming Interface; Michael Kerrisk; No Starch Press </li>
-<li>Groovy Kurz &amp; Gut; Joerg Staudemeier; O&#39;Reilly</li>
</ul><br />
<h2 style='display: inline' id='self-development-and-soft-skills-books'>Self-development and soft-skills books</h2><br />
<br />
<span>In random order:</span><br />
<br />
<ul>
-<li>Influence without Authority; A. Cohen, D. Bradford; Wiley</li>
-<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li>
-<li>Digital Minimalism; Cal Newport; Portofolio Penguin</li>
-<li>The Bullet Journal Method; Ryder Carroll; Fourth Estate</li>
-<li>Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)</li>
-<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li>
-<li>Getting Things Done; David Allen</li>
<li>The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd</li>
-<li>Ultralearning; Anna Laurent; Self-published via Amazon</li>
-<li>Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook</li>
-<li>Eat That Frog!; Brian Tracy; Hodder Paperbacks</li>
+<li>Never Split the Difference; Chris Voss, Tahl Raz; Random House Business</li>
<li>Meditation for Mortals, Oliver Burkeman, Audiobook</li>
-<li>So Good They Can&#39;t Ignore You; Cal Newport; Business Plus</li>
-<li>Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion</li>
<li>Soft Skills; John Sommez; Manning Publications</li>
+<li>The Power of Now; Eckhard Tolle; Yellow Kite</li>
<li>Psycho-Cybernetics; Maxwell Maltz; Perigee Books</li>
-<li>Eat That Frog; Brian Tracy</li>
+<li>Deep Work; Cal Newport; Piatkus</li>
+<li>Getting Things Done; David Allen</li>
+<li>Stop starting, start finishing; Arne Roock; Lean-Kanban University </li>
<li>Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing</li>
-<li>Atomic Habits; James Clear; Random House Business</li>
-<li>Never Split the Difference; Chris Voss, Tahl Raz; Random House Business</li>
-<li>The Joy of Missing Out; Christina Crook; New Society Publishers</li>
-<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon &amp; Schuster UK</li>
-<li>Time Management for System Administrators; Thomas A. Limoncelli; O&#39;Reilly</li>
-<li>The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)</li>
<li>Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press</li>
-<li>Deep Work; Cal Newport; Piatkus</li>
+<li>Influence without Authority; A. Cohen, D. Bradford; Wiley</li>
+<li>Eat That Frog; Brian Tracy</li>
<li>Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook</li>
-<li>101 Essays that change the way you think; Brianna Wiest; Audiobook</li>
-<li>Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne</li>
-<li>The Power of Now; Eckhard Tolle; Yellow Kite</li>
-<li>Slow Productivity; Cal Newport; Penguin Random House</li>
-<li>Stop starting, start finishing; Arne Roock; Lean-Kanban University </li>
+<li>The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)</li>
+<li>Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook</li>
<li>Ultralearning; Scott Young; Thorsons</li>
<li>The Complete Software Developer&#39;s Career Guide; John Sonmez; Unabridged Audiobook</li>
+<li>Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)</li>
+<li>The Bullet Journal Method; Ryder Carroll; Fourth Estate</li>
+<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon &amp; Schuster UK</li>
+<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li>
+<li>Digital Minimalism; Cal Newport; Portofolio Penguin</li>
+<li>The Joy of Missing Out; Christina Crook; New Society Publishers</li>
+<li>Atomic Habits; James Clear; Random House Business</li>
+<li>So Good They Can&#39;t Ignore You; Cal Newport; Business Plus</li>
+<li>Eat That Frog!; Brian Tracy; Hodder Paperbacks</li>
<li>The Good Enough Job; Simone Stolzoff; Ebury Edge</li>
+<li>Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne</li>
+<li>Time Management for System Administrators; Thomas A. Limoncelli; O&#39;Reilly</li>
+<li>Ultralearning; Anna Laurent; Self-published via Amazon</li>
+<li>Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion</li>
+<li>Slow Productivity; Cal Newport; Penguin Random House</li>
+<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li>
+<li>101 Essays that change the way you think; Brianna Wiest; Audiobook</li>
</ul><br />
<a class='textlink' href='../notes/index.html'>Here are notes of mine for some of the books</a><br />
<br />
@@ -159,30 +159,30 @@
<span>Some of these were in-person with exams; others were online learning lectures only. In random order:</span><br />
<br />
<ul>
-<li>Ultimate Go Programming; Bill Kennedy; O&#39;Reilly Online</li>
-<li>Functional programming lecture; Remote University of Hagen</li>
-<li>F5 Loadbalancers Training; 2-day on-site training; F5, Inc. </li>
+<li>Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon</li>
<li>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)</li>
+<li>MySQL Deep Dive Workshop; 2-day on-site training</li>
+<li>Functional programming lecture; Remote University of Hagen</li>
<li>Scripting Vim; Damian Conway; O&#39;Reilly Online</li>
+<li>Algorithms Video Lectures; Robert Sedgewick; O&#39;Reilly Online</li>
+<li>Developing IaC with Terraform (with Live Lessons); O&#39;Reilly Online</li>
+<li>The Well-Grounded Rubyist Video Edition; David. A. Black; O&#39;Reilly Online</li>
+<li>F5 Loadbalancers Training; 2-day on-site training; F5, Inc. </li>
<li>Apache Tomcat Best Practises; 3-day on-site training</li>
-<li>The Ultimate Kubernetes Bootcamp; School of Devops; O&#39;Reilly Online</li>
-<li>AWS Immersion Day; Amazon; 1-day interactive online training </li>
<li>Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training</li>
-<li>Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon</li>
-<li>MySQL Deep Dive Workshop; 2-day on-site training</li>
-<li>The Well-Grounded Rubyist Video Edition; David. A. Black; O&#39;Reilly Online</li>
-<li>Developing IaC with Terraform (with Live Lessons); O&#39;Reilly Online</li>
<li>Protocol buffers; O&#39;Reilly Online</li>
-<li>Algorithms Video Lectures; Robert Sedgewick; O&#39;Reilly Online</li>
<li>Structure and Interpretation of Computer Programs; Harold Abelson and more...; </li>
+<li>The Ultimate Kubernetes Bootcamp; School of Devops; O&#39;Reilly Online</li>
+<li>AWS Immersion Day; Amazon; 1-day interactive online training </li>
+<li>Ultimate Go Programming; Bill Kennedy; O&#39;Reilly Online</li>
</ul><br />
<h2 style='display: inline' id='technical-guides'>Technical guides</h2><br />
<br />
<span>These are not whole books, but guides (smaller or larger) which I found very useful. in random order:</span><br />
<br />
<ul>
-<li>Raku Guide at https://raku.guide </li>
<li>How CPUs work at https://cpu.land</li>
+<li>Raku Guide at https://raku.guide </li>
<li>Advanced Bash-Scripting Guide </li>
</ul><br />
<h2 style='display: inline' id='podcasts'>Podcasts</h2><br />
@@ -193,19 +193,19 @@
<br />
<ul>
<li>The Changelog Podcast(s)</li>
-<li>Fork Around And Find Out</li>
-<li>Dev Interrupted</li>
<li>Backend Banter</li>
-<li>Pratical AI</li>
-<li>Modern Mentor</li>
+<li>The Pragmatic Engineer Podcast</li>
+<li>Deep Questions with Cal Newport</li>
<li>BSD Now [BSD]</li>
<li>Hidden Brain</li>
+<li>Maintainable</li>
+<li>The ProdCast (Google SRE Podcast)</li>
+<li>Pratical AI</li>
<li>Cup o&#39; Go [Golang]</li>
<li>Fallthrough [Golang]</li>
-<li>The Pragmatic Engineer Podcast</li>
-<li>The ProdCast (Google SRE Podcast)</li>
-<li>Maintainable</li>
-<li>Deep Questions with Cal Newport</li>
+<li>Dev Interrupted</li>
+<li>Fork Around And Find Out</li>
+<li>Modern Mentor</li>
</ul><br />
<h3 style='display: inline' id='podcasts-i-liked'>Podcasts I liked</h3><br />
<br />
@@ -213,29 +213,29 @@
<br />
<ul>
<li>Go Time (predecessor of fallthrough)</li>
-<li>Java Pub House</li>
-<li>CRE: Chaosradio Express [german]</li>
-<li>Modern Mentor</li>
<li>FLOSS weekly</li>
+<li>Modern Mentor</li>
<li>Ship It (predecessor of Fork Around And Find Out)</li>
+<li>Java Pub House</li>
+<li>CRE: Chaosradio Express [german]</li>
</ul><br />
<h2 style='display: inline' id='newsletters-i-like'>Newsletters I like</h2><br />
<br />
<span>This is a mix of tech and non-tech newsletters I am subscribed to. In random order:</span><br />
<br />
<ul>
+<li>Applied Go Weekly Newsletter</li>
<li>The Imperfectionist</li>
-<li>Andreas Brandhorst Newsletter (Sci-Fi author)</li>
+<li>The Valuable Dev</li>
<li>Register Spill</li>
+<li>Andreas Brandhorst Newsletter (Sci-Fi author)</li>
+<li>Ruby Weekly</li>
+<li>byteSizeGo</li>
<li>Monospace Mentor</li>
+<li>VK Newsletter</li>
<li>Golang Weekly</li>
-<li>byteSizeGo</li>
-<li>Ruby Weekly</li>
<li>Changelog News</li>
-<li>VK Newsletter</li>
<li>The Pragmatic Engineer</li>
-<li>The Valuable Dev</li>
-<li>Applied Go Weekly Newsletter</li>
</ul><br />
<h2 style='display: inline' id='magazines-i-liked'>Magazines I like(d)</h2><br />
<br />
@@ -244,8 +244,8 @@
<ul>
<li>freeX (not published anymore)</li>
<li>LWN (online only)</li>
-<li>Linux Magazine</li>
<li>Linux User</li>
+<li>Linux Magazine</li>
</ul><br />
<h1 style='display: inline' id='formal-education'>Formal education</h1><br />
<br />
diff --git a/about/showcase.html b/about/showcase.html
index c18e0bab..49710c12 100644
--- a/about/showcase.html
+++ b/about/showcase.html
@@ -13,7 +13,7 @@
</p>
<h1 style='display: inline' id='project-showcase'>Project Showcase</h1><br />
<br />
-<span>Generated on: 2025-08-08</span><br />
+<span>Generated on: 2025-08-16</span><br />
<br />
<span>This page showcases my side projects, providing an overview of what each project does, its technical implementation, and key metrics. Each project summary includes information about the programming languages used, development activity, and licensing. The projects are ordered by recent activity, with the most actively maintained projects listed first.</span><br />
<br />
@@ -24,7 +24,6 @@
<li>⇢ <a href='#overall-statistics'>Overall Statistics</a></li>
<li>⇢ <a href='#projects'>Projects</a></li>
<li>⇢ ⇢ <a href='#rexfiles'>rexfiles</a></li>
-<li>⇢ ⇢ <a href='#foozone'>foo.zone</a></li>
<li>⇢ ⇢ <a href='#totalrecall'>totalrecall</a></li>
<li>⇢ ⇢ <a href='#gitsyncer'>gitsyncer</a></li>
<li>⇢ ⇢ <a href='#timr'>timr</a></li>
@@ -34,15 +33,15 @@
<li>⇢ ⇢ <a href='#wireguardmeshgenerator'>wireguardmeshgenerator</a></li>
<li>⇢ ⇢ <a href='#ds-sim'>ds-sim</a></li>
<li>⇢ ⇢ <a href='#sillybench'>sillybench</a></li>
-<li>⇢ ⇢ <a href='#gos'>gos</a></li>
<li>⇢ ⇢ <a href='#foostats'>foostats</a></li>
+<li>⇢ ⇢ <a href='#gos'>gos</a></li>
<li>⇢ ⇢ <a href='#rcm'>rcm</a></li>
-<li>⇢ ⇢ <a href='#quicklogger'>quicklogger</a></li>
<li>⇢ ⇢ <a href='#docker-gpodder-sync-server'>docker-gpodder-sync-server</a></li>
-<li>⇢ ⇢ <a href='#docker-anki-sync-server'>docker-anki-sync-server</a></li>
+<li>⇢ ⇢ <a href='#docker-radicale-server'>docker-radicale-server</a></li>
+<li>⇢ ⇢ <a href='#quicklogger'>quicklogger</a></li>
<li>⇢ ⇢ <a href='#terraform'>terraform</a></li>
+<li>⇢ ⇢ <a href='#docker-anki-sync-server'>docker-anki-sync-server</a></li>
<li>⇢ ⇢ <a href='#gogios'>gogios</a></li>
-<li>⇢ ⇢ <a href='#docker-radicale-server'>docker-radicale-server</a></li>
<li>⇢ ⇢ <a href='#gorum'>gorum</a></li>
<li>⇢ ⇢ <a href='#guprecords'>guprecords</a></li>
<li>⇢ ⇢ <a href='#randomjournalpage'>randomjournalpage</a></li>
@@ -51,6 +50,7 @@
<li>⇢ ⇢ <a href='#photoalbum'>photoalbum</a></li>
<li>⇢ ⇢ <a href='#algorithms'>algorithms</a></li>
<li>⇢ ⇢ <a href='#geheim'>geheim</a></li>
+<li>⇢ ⇢ <a href='#foozone'>foo.zone</a></li>
<li>⇢ ⇢ <a href='#perl-c-fibonacci'>perl-c-fibonacci</a></li>
<li>⇢ ⇢ <a href='#ioriot'>ioriot</a></li>
<li>⇢ ⇢ <a href='#staticfarm-apache-handlers'>staticfarm-apache-handlers</a></li>
@@ -74,23 +74,23 @@
<li>⇢ ⇢ <a href='#perldaemon'>perldaemon</a></li>
<li>⇢ ⇢ <a href='#awksite'>awksite</a></li>
<li>⇢ ⇢ <a href='#jsmstrade'>jsmstrade</a></li>
-<li>⇢ ⇢ <a href='#ychat'>ychat</a></li>
<li>⇢ ⇢ <a href='#netcalendar'>netcalendar</a></li>
<li>⇢ ⇢ <a href='#hsbot'>hsbot</a></li>
-<li>⇢ ⇢ <a href='#fype'>fype</a></li>
+<li>⇢ ⇢ <a href='#ychat'>ychat</a></li>
<li>⇢ ⇢ <a href='#vs-sim'>vs-sim</a></li>
+<li>⇢ ⇢ <a href='#fype'>fype</a></li>
</ul><br />
<h2 style='display: inline' id='overall-statistics'>Overall Statistics</h2><br />
<br />
<ul>
<li>📦 Total Projects: 56</li>
-<li>📊 Total Commits: 10,717</li>
-<li>📈 Total Lines of Code: 215,469</li>
-<li>📄 Total Lines of Documentation: 22,558</li>
-<li>💻 Languages: Go (28.8%), Java (18.8%), C (9.4%), C++ (8.2%), Perl (7.4%), XML (6.3%), C/C++ (5.8%), Shell (5.6%), HTML (1.7%), Config (1.7%), Ruby (1.3%), HCL (1.3%), Python (0.8%), Make (0.7%), YAML (0.6%), Raku (0.4%), JSON (0.4%), CSS (0.3%), Haskell (0.3%), TOML (0.2%)</li>
-<li>📚 Documentation: Text (50.8%), Markdown (47.0%), LaTeX (2.2%)</li>
+<li>📊 Total Commits: 10,762</li>
+<li>📈 Total Lines of Code: 208,392</li>
+<li>📄 Total Lines of Documentation: 22,008</li>
+<li>💻 Languages: Go (29.7%), Java (19.4%), C++ (9.7%), C (9.2%), Perl (7.9%), Shell (6.7%), C/C++ (6.4%), Config (1.9%), HTML (1.8%), Ruby (1.4%), HCL (1.3%), YAML (0.9%), Make (0.9%), Python (0.8%), Raku (0.4%), CSS (0.4%), JSON (0.4%), XML (0.3%), Haskell (0.3%), TOML (0.2%)</li>
+<li>📚 Documentation: Text (49.0%), Markdown (48.4%), LaTeX (2.6%)</li>
<li>🎵 Vibe-Coded Projects: 4 out of 56 (7.1%)</li>
-<li>🤖 AI-Assisted Projects (including vibe-coded): 9 out of 56 (16.1% AI-assisted, 83.9% human-only)</li>
+<li>🤖 AI-Assisted Projects (including vibe-coded): 8 out of 56 (14.3% AI-assisted, 85.7% human-only)</li>
<li>🚀 Release Status: 34 released, 22 experimental (60.7% with releases, 39.3% experimental)</li>
</ul><br />
<h2 style='display: inline' id='projects'>Projects</h2><br />
@@ -98,13 +98,13 @@
<h3 style='display: inline' id='rexfiles'>rexfiles</h3><br />
<br />
<ul>
-<li>💻 Languages: Perl (30.7%), Shell (25.7%), YAML (15.7%), TOML (6.9%), Config (6.4%), CSS (6.3%), Ruby (4.7%), Lua (1.4%), Make (0.8%), Docker (0.8%), JSON (0.5%), INI (0.1%)</li>
-<li>📚 Documentation: Text (77.7%), Markdown (22.3%)</li>
-<li>📊 Commits: 922</li>
-<li>📈 Lines of Code: 5167</li>
-<li>📄 Lines of Documentation: 1069</li>
-<li>📅 Development Period: 2021-12-28 to 2025-08-07</li>
-<li>🔥 Recent Activity: 7.3 days (avg. age of last 42 commits)</li>
+<li>💻 Languages: Perl (28.0%), YAML (24.3%), Shell (23.3%), TOML (6.2%), Config (5.8%), CSS (5.7%), Ruby (4.3%), Lua (1.2%), Docker (0.7%), JSON (0.5%), INI (0.1%)</li>
+<li>📚 Documentation: Text (70.2%), Markdown (29.8%)</li>
+<li>📊 Commits: 947</li>
+<li>📈 Lines of Code: 5715</li>
+<li>📄 Lines of Documentation: 1183</li>
+<li>📅 Development Period: 2021-12-28 to 2025-08-13</li>
+<li>🔥 Recent Activity: 7.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -113,32 +113,8 @@
<br />
<span>The project consists of three main components: **dotfiles** management for personal development environment configuration (bash, fish shell, helix editor, tmux, etc.), **frontends** for managing production OpenBSD servers with services like DNS (nsd), web servers (httpd), mail (OpenSMTPD), SSL certificates (ACME), and monitoring systems, and **babylon5** containing Docker container startup scripts for self-hosted applications. The implementation leverages Rex&#39;s declarative syntax to define tasks for package installation, file management, service configuration, and system state management, with templates for configuration files and support for multiple operating systems (OpenBSD, FreeBSD, Fedora Linux, Termux). This approach provides a KISS (Keep It Simple, Stupid) alternative to more complex configuration management tools while maintaining the ability to manage both local development environments and production infrastructure consistently.</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/rexfiles'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
-<h3 style='display: inline' id='foozone'>foo.zone</h3><br />
-<br />
-<ul>
-<li>💻 Languages: XML (98.3%), Shell (1.2%), Go (0.5%)</li>
-<li>📚 Documentation: Text (75.3%), Markdown (24.7%)</li>
-<li>📊 Commits: 3017</li>
-<li>📈 Lines of Code: 13274</li>
-<li>📄 Lines of Documentation: 295</li>
-<li>📅 Development Period: 2021-04-29 to 2025-08-07</li>
-<li>🔥 Recent Activity: 9.5 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: No license found</li>
-<li>🧪 Status: Experimental (no releases yet)</li>
-<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
-</ul><br />
-<br />
-<span>This is **foo.zone**, a personal blog and technical website belonging to Paul Buetow, a Site Reliability Engineer based in Sofia, Bulgaria. The project is a static website that serves as a comprehensive platform for sharing technical knowledge, book notes, and personal experiences in the fields of system administration, DevOps, and programming.</span><br />
-<br />
-<span>The site is built using **Gemtexter**, a static site generator that creates both HTML and Gemini protocol content from markdown sources. The architecture is refreshingly simple and follows KISS principles, with content organized into several key sections: a main blog feed (gemfeed) with over 100 technical posts dating back to 2008, detailed book notes and summaries, project documentation (including tools like DTail for distributed log tailing), and personal resources. The website is served by OpenBSD using relayd and httpd, demonstrating the author&#39;s preference for robust, security-focused Unix systems. The project emphasizes clean, semantic HTML, custom CSS styling, and accessibility, while maintaining both web and Gemini protocol compatibility for broader reach across different internet communities.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/foo.zone'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/foo.zone'>View on GitHub</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/conf'>View on GitHub</a><br />
<br />
<span>---</span><br />
<br />
@@ -151,7 +127,7 @@
<li>📈 Lines of Code: 12003</li>
<li>📄 Lines of Documentation: 361</li>
<li>📅 Development Period: 2025-07-14 to 2025-08-02</li>
-<li>🔥 Recent Activity: 17.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 24.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🏷️ Latest Release: v0.7.5 (2025-08-02)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -179,7 +155,7 @@
<li>📈 Lines of Code: 9166</li>
<li>📄 Lines of Documentation: 2484</li>
<li>📅 Development Period: 2025-06-23 to 2025-07-25</li>
-<li>🔥 Recent Activity: 24.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 32.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: BSD-2-Clause</li>
<li>🏷️ Latest Release: v0.8.6 (2025-07-25)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -203,7 +179,7 @@
<li>📈 Lines of Code: 873</li>
<li>📄 Lines of Documentation: 137</li>
<li>📅 Development Period: 2025-06-25 to 2025-07-19</li>
-<li>🔥 Recent Activity: 41.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 48.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: BSD-2-Clause</li>
<li>🏷️ Latest Release: v0.0.0 (2025-06-29)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -227,7 +203,7 @@
<li>📈 Lines of Code: 6160</li>
<li>📄 Lines of Documentation: 162</li>
<li>📅 Development Period: 2025-06-19 to 2025-07-12</li>
-<li>🔥 Recent Activity: 42.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 50.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: BSD-2-Clause</li>
<li>🏷️ Latest Release: v0.9.2 (2025-07-02)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -255,7 +231,7 @@
<li>📈 Lines of Code: 12762</li>
<li>📄 Lines of Documentation: 742</li>
<li>📅 Development Period: 2024-01-18 to 2025-07-14</li>
-<li>🔥 Recent Activity: 80.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 88.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -285,7 +261,7 @@
<li>📈 Lines of Code: 20091</li>
<li>📄 Lines of Documentation: 5674</li>
<li>📅 Development Period: 2020-01-09 to 2025-06-20</li>
-<li>🔥 Recent Activity: 82.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 90.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Apache-2.0</li>
<li>🏷️ Latest Release: v4.3.3 (2024-08-23)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -313,7 +289,7 @@
<li>📈 Lines of Code: 396</li>
<li>📄 Lines of Documentation: 24</li>
<li>📅 Development Period: 2025-04-18 to 2025-05-11</li>
-<li>🔥 Recent Activity: 101.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 109.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.0.0 (2025-05-11)</li>
</ul><br />
@@ -336,7 +312,7 @@
<li>📈 Lines of Code: 25762</li>
<li>📄 Lines of Documentation: 3101</li>
<li>📅 Development Period: 2008-05-15 to 2025-06-27</li>
-<li>🔥 Recent Activity: 115.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 122.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -362,7 +338,7 @@
<li>📈 Lines of Code: 33</li>
<li>📄 Lines of Documentation: 3</li>
<li>📅 Development Period: 2025-04-03 to 2025-04-03</li>
-<li>🔥 Recent Activity: 127.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 135.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -376,6 +352,29 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='foostats'>foostats</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Perl (100.0%)</li>
+<li>📚 Documentation: Markdown (85.1%), Text (14.9%)</li>
+<li>📊 Commits: 72</li>
+<li>📈 Lines of Code: 1599</li>
+<li>📄 Lines of Documentation: 154</li>
+<li>📅 Development Period: 2023-01-02 to 2025-08-09</li>
+<li>🔥 Recent Activity: 144.6 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: Custom License</li>
+<li>🏷️ Latest Release: v0.1.0 (2025-07-12)</li>
+</ul><br />
+<br />
+<span>Based on the README and project structure, **foostats** is a privacy-respecting web analytics tool written in Perl specifically designed for OpenBSD systems. It processes both traditional HTTP/HTTPS logs and Gemini protocol logs to generate comprehensive traffic statistics while maintaining visitor privacy through SHA3-512 IP hashing. The tool is built for the foo.zone ecosystem and similar sites that need analytics without compromising user privacy.</span><br />
+<br />
+<span>The project implements a modular architecture with seven core components: FileHelper for I/O operations, DateHelper for date management, Logreader for log parsing, Filter for security filtering, Aggregator for statistics collection, FileOutputter for compressed JSON storage, Replicator for multi-node data sharing, Merger for combining statistics, and Reporter for generating human-readable Gemtext reports. It supports distributed deployments with replication between partner nodes and includes security features like suspicious request filtering based on configurable patterns (blocking common attack vectors like WordPress admin paths and PHP files).</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/foostats'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/foostats'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='gos'>gos</h3><br />
<br />
<ul>
@@ -385,7 +384,7 @@
<li>📈 Lines of Code: 3967</li>
<li>📄 Lines of Documentation: 324</li>
<li>📅 Development Period: 2024-05-04 to 2025-07-12</li>
-<li>🔥 Recent Activity: 140.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 148.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.0.0 (2025-03-04)</li>
</ul><br />
@@ -403,29 +402,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='foostats'>foostats</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Perl (100.0%)</li>
-<li>📚 Documentation: Markdown (85.1%), Text (14.9%)</li>
-<li>📊 Commits: 70</li>
-<li>📈 Lines of Code: 1586</li>
-<li>📄 Lines of Documentation: 154</li>
-<li>📅 Development Period: 2023-01-02 to 2025-07-12</li>
-<li>🔥 Recent Activity: 148.6 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: Custom License</li>
-<li>🏷️ Latest Release: v0.1.0 (2025-07-12)</li>
-</ul><br />
-<br />
-<span>Based on the README and project structure, **foostats** is a privacy-respecting web analytics tool written in Perl specifically designed for OpenBSD systems. It processes both traditional HTTP/HTTPS logs and Gemini protocol logs to generate comprehensive traffic statistics while maintaining visitor privacy through SHA3-512 IP hashing. The tool is built for the foo.zone ecosystem and similar sites that need analytics without compromising user privacy.</span><br />
-<br />
-<span>The project implements a modular architecture with seven core components: FileHelper for I/O operations, DateHelper for date management, Logreader for log parsing, Filter for security filtering, Aggregator for statistics collection, FileOutputter for compressed JSON storage, Replicator for multi-node data sharing, Merger for combining statistics, and Reporter for generating human-readable Gemtext reports. It supports distributed deployments with replication between partner nodes and includes security features like suspicious request filtering based on configurable patterns (blocking common attack vectors like WordPress admin paths and PHP files).</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/foostats'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/foostats'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='rcm'>rcm</h3><br />
<br />
<ul>
@@ -435,7 +411,7 @@
<li>📈 Lines of Code: 1373</li>
<li>📄 Lines of Documentation: 48</li>
<li>📅 Development Period: 2024-12-05 to 2025-02-28</li>
-<li>🔥 Recent Activity: 168.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 176.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -449,6 +425,52 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='docker-gpodder-sync-server'>docker-gpodder-sync-server</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Make (100.0%)</li>
+<li>📚 Documentation: Markdown (100.0%)</li>
+<li>📊 Commits: 4</li>
+<li>📈 Lines of Code: 17</li>
+<li>📄 Lines of Documentation: 3</li>
+<li>📅 Development Period: 2024-03-24 to 2025-08-08</li>
+<li>🔥 Recent Activity: 384.3 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: Custom License</li>
+<li>🧪 Status: Experimental (no releases yet)</li>
+</ul><br />
+<br />
+<span>This project is a **Docker containerization wrapper for a GPodder sync server**, specifically built around the micro-gpodder-server implementation from https://github.com/bohwaz/micro-gpodder-server. GPodder is a podcast client that allows users to synchronize their podcast subscriptions and episode states across multiple devices. The sync server enables this synchronization by providing a centralized service that podcast clients can connect to for managing subscriptions, episode progress, and playback history.</span><br />
+<br />
+<span>The project is implemented as a simple Docker build system with a Makefile that provides convenient commands for building, running, and deploying the containerized service. The actual server code is included as a git submodule, while this wrapper provides infrastructure automation including data persistence through volume mounting (<span class='inlinecode'>./data</span> to <span class='inlinecode'>/var/www/server/data</span>), network configuration (port 8080 exposure), and AWS ECR deployment capabilities. This approach makes it easy to deploy a self-hosted GPodder sync server with minimal setup, useful for podcast enthusiasts who want to maintain their own synchronization service rather than relying on third-party services.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/docker-gpodder-sync-server'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/docker-gpodder-sync-server'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
+<h3 style='display: inline' id='docker-radicale-server'>docker-radicale-server</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Make (57.5%), Docker (42.5%)</li>
+<li>📚 Documentation: Markdown (100.0%)</li>
+<li>📊 Commits: 5</li>
+<li>📈 Lines of Code: 40</li>
+<li>📄 Lines of Documentation: 3</li>
+<li>📅 Development Period: 2023-12-31 to 2025-08-11</li>
+<li>🔥 Recent Activity: 475.7 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: No license found</li>
+<li>🧪 Status: Experimental (no releases yet)</li>
+</ul><br />
+<br />
+<span>This project is a **Docker containerization setup for Radicale**, a CalDAV and CardDAV server written in Python. Radicale is a lightweight, standards-compliant calendar and contacts server that allows users to synchronize their calendars and address books across multiple devices and applications. The project provides a complete Docker image and deployment configuration that makes it easy to run a personal or small-team calendar/contacts server.</span><br />
+<br />
+<span>The implementation uses Alpine Linux as the base image for a minimal footprint, installs Python 3 and Radicale via pip, and configures the server with HTTP basic authentication using htpasswd. The setup includes persistent storage for collections (calendars/contacts) and authentication data through Docker volumes, exposes the service on port 8080, and includes a Makefile for easy building and deployment. The project also supports pushing to AWS ECR for cloud deployment, making it suitable for both local development and production use cases where you need a self-hosted alternative to cloud-based calendar services.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/docker-radicale-server'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/docker-radicale-server'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='quicklogger'>quicklogger</h3><br />
<br />
<ul>
@@ -458,7 +480,7 @@
<li>📈 Lines of Code: 917</li>
<li>📄 Lines of Documentation: 33</li>
<li>📅 Development Period: 2024-01-20 to 2025-07-06</li>
-<li>🔥 Recent Activity: 478.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 486.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🏷️ Latest Release: v0.0.3 (2025-07-06)</li>
</ul><br />
@@ -476,26 +498,26 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='docker-gpodder-sync-server'>docker-gpodder-sync-server</h3><br />
+<h3 style='display: inline' id='terraform'>terraform</h3><br />
<br />
<ul>
-<li>💻 Languages: Make (100.0%)</li>
+<li>💻 Languages: HCL (96.6%), Make (1.9%), YAML (1.5%)</li>
<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 3</li>
-<li>📈 Lines of Code: 12</li>
-<li>📄 Lines of Documentation: 3</li>
-<li>📅 Development Period: 2024-03-24 to 2024-03-24</li>
-<li>🔥 Recent Activity: 502.2 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: Custom License</li>
+<li>📊 Commits: 125</li>
+<li>📈 Lines of Code: 2851</li>
+<li>📄 Lines of Documentation: 52</li>
+<li>📅 Development Period: 2023-08-27 to 2025-08-08</li>
+<li>🔥 Recent Activity: 511.8 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: MIT</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
<br />
-<span>This project is a **Docker containerization wrapper for a GPodder sync server**, specifically built around the micro-gpodder-server implementation from https://github.com/bohwaz/micro-gpodder-server. GPodder is a podcast client that allows users to synchronize their podcast subscriptions and episode states across multiple devices. The sync server enables this synchronization by providing a centralized service that podcast clients can connect to for managing subscriptions, episode progress, and playback history.</span><br />
+<span>This is a comprehensive personal cloud infrastructure project built with Terraform that deploys a multi-tier AWS architecture for hosting self-hosted services. The infrastructure is organized into modular components: <span class='inlinecode'>org-buetow-base</span> provides the foundation (VPC, subnets, EFS storage, ECR), <span class='inlinecode'>org-buetow-bastion</span> creates a bastion host for secure access, <span class='inlinecode'>org-buetow-elb</span> sets up application load balancing, and <span class='inlinecode'>org-buetow-ecs</span> runs containerized services on AWS Fargate. The project also includes an EKS cluster option with EFS CSI driver integration for Kubernetes workloads.</span><br />
<br />
-<span>The project is implemented as a simple Docker build system with a Makefile that provides convenient commands for building, running, and deploying the containerized service. The actual server code is included as a git submodule, while this wrapper provides infrastructure automation including data persistence through volume mounting (<span class='inlinecode'>./data</span> to <span class='inlinecode'>/var/www/server/data</span>), network configuration (port 8080 exposure), and AWS ECR deployment capabilities. This approach makes it easy to deploy a self-hosted GPodder sync server with minimal setup, useful for podcast enthusiasts who want to maintain their own synchronization service rather than relying on third-party services.</span><br />
+<span>The system is designed to host multiple personal services including Anki sync server, Audiobookshelf, Vaultwarden, Syncthing, Radicale (CalDAV/CardDAV), and others, all with persistent storage via EFS and secure TLS termination. The architecture follows AWS best practices with remote state management in S3, proper networking isolation, and automated backups, making it useful for individuals wanting to run their own private cloud services with enterprise-grade reliability and security.</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/docker-gpodder-sync-server'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/docker-gpodder-sync-server'>View on GitHub</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/terraform'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/terraform'>View on GitHub</a><br />
<br />
<span>---</span><br />
<br />
@@ -508,7 +530,7 @@
<li>📈 Lines of Code: 33</li>
<li>📄 Lines of Documentation: 3</li>
<li>📅 Development Period: 2023-08-13 to 2025-07-31</li>
-<li>🔥 Recent Activity: 511.2 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 518.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -522,29 +544,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='terraform'>terraform</h3><br />
-<br />
-<ul>
-<li>💻 Languages: HCL (96.6%), Make (1.9%), YAML (1.5%)</li>
-<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 124</li>
-<li>📈 Lines of Code: 2850</li>
-<li>📄 Lines of Documentation: 52</li>
-<li>📅 Development Period: 2023-08-27 to 2025-08-07</li>
-<li>🔥 Recent Activity: 518.2 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: MIT</li>
-<li>🧪 Status: Experimental (no releases yet)</li>
-</ul><br />
-<br />
-<span>This is a comprehensive personal cloud infrastructure project built with Terraform that deploys a multi-tier AWS architecture for hosting self-hosted services. The infrastructure is organized into modular components: <span class='inlinecode'>org-buetow-base</span> provides the foundation (VPC, subnets, EFS storage, ECR), <span class='inlinecode'>org-buetow-bastion</span> creates a bastion host for secure access, <span class='inlinecode'>org-buetow-elb</span> sets up application load balancing, and <span class='inlinecode'>org-buetow-ecs</span> runs containerized services on AWS Fargate. The project also includes an EKS cluster option with EFS CSI driver integration for Kubernetes workloads.</span><br />
-<br />
-<span>The system is designed to host multiple personal services including Anki sync server, Audiobookshelf, Vaultwarden, Syncthing, Radicale (CalDAV/CardDAV), and others, all with persistent storage via EFS and secure TLS termination. The architecture follows AWS best practices with remote state management in S3, proper networking isolation, and automated backups, making it useful for individuals wanting to run their own private cloud services with enterprise-grade reliability and security.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/terraform'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/terraform'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='gogios'>gogios</h3><br />
<br />
<ul>
@@ -554,7 +553,7 @@
<li>📈 Lines of Code: 1096</li>
<li>📄 Lines of Documentation: 287</li>
<li>📅 Development Period: 2023-04-17 to 2025-06-12</li>
-<li>🔥 Recent Activity: 545.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 552.7 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.1.0 (2024-05-03)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -571,29 +570,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='docker-radicale-server'>docker-radicale-server</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Docker (53.1%), Make (46.9%)</li>
-<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 4</li>
-<li>📈 Lines of Code: 32</li>
-<li>📄 Lines of Documentation: 3</li>
-<li>📅 Development Period: 2023-12-31 to 2023-12-31</li>
-<li>🔥 Recent Activity: 585.7 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: No license found</li>
-<li>🧪 Status: Experimental (no releases yet)</li>
-</ul><br />
-<br />
-<span>This project is a **Docker containerization setup for Radicale**, a CalDAV and CardDAV server written in Python. Radicale is a lightweight, standards-compliant calendar and contacts server that allows users to synchronize their calendars and address books across multiple devices and applications. The project provides a complete Docker image and deployment configuration that makes it easy to run a personal or small-team calendar/contacts server.</span><br />
-<br />
-<span>The implementation uses Alpine Linux as the base image for a minimal footprint, installs Python 3 and Radicale via pip, and configures the server with HTTP basic authentication using htpasswd. The setup includes persistent storage for collections (calendars/contacts) and authentication data through Docker volumes, exposes the service on port 8080, and includes a Makefile for easy building and deployment. The project also supports pushing to AWS ECR for cloud deployment, making it suitable for both local development and production use cases where you need a self-hosted alternative to cloud-based calendar services.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/docker-radicale-server'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/docker-radicale-server'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='gorum'>gorum</h3><br />
<br />
<ul>
@@ -603,7 +579,7 @@
<li>📈 Lines of Code: 1525</li>
<li>📄 Lines of Documentation: 15</li>
<li>📅 Development Period: 2023-04-17 to 2023-11-19</li>
-<li>🔥 Recent Activity: 731.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 738.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -627,7 +603,7 @@
<li>📈 Lines of Code: 312</li>
<li>📄 Lines of Documentation: 416</li>
<li>📅 Development Period: 2013-03-22 to 2025-05-18</li>
-<li>🔥 Recent Activity: 781.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 788.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: v1.0.0 (2023-04-29)</li>
</ul><br />
@@ -650,7 +626,7 @@
<li>📈 Lines of Code: 51</li>
<li>📄 Lines of Documentation: 26</li>
<li>📅 Development Period: 2022-06-02 to 2024-04-20</li>
-<li>🔥 Recent Activity: 795.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 803.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -674,7 +650,7 @@
<li>📈 Lines of Code: 1585</li>
<li>📄 Lines of Documentation: 778</li>
<li>📅 Development Period: 2021-05-21 to 2023-07-17</li>
-<li>🔥 Recent Activity: 844.5 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 852.2 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-3.0</li>
<li>🏷️ Latest Release: 3.0.0 (2024-10-01)</li>
</ul><br />
@@ -698,7 +674,7 @@
<li>📈 Lines of Code: 41</li>
<li>📄 Lines of Documentation: 17</li>
<li>📅 Development Period: 2020-01-30 to 2025-04-30</li>
-<li>🔥 Recent Activity: 1089.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1097.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-3.0</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -721,7 +697,7 @@
<li>📈 Lines of Code: 342</li>
<li>📄 Lines of Documentation: 39</li>
<li>📅 Development Period: 2011-11-19 to 2022-04-02</li>
-<li>🔥 Recent Activity: 1309.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1316.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.5.0 (2022-02-21)</li>
</ul><br />
@@ -745,7 +721,7 @@
<li>📈 Lines of Code: 1728</li>
<li>📄 Lines of Documentation: 18</li>
<li>📅 Development Period: 2020-07-12 to 2023-04-09</li>
-<li>🔥 Recent Activity: 1460.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1467.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -769,7 +745,7 @@
<li>📈 Lines of Code: 671</li>
<li>📄 Lines of Documentation: 19</li>
<li>📅 Development Period: 2018-05-26 to 2025-01-21</li>
-<li>🔥 Recent Activity: 1461.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1469.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -785,6 +761,29 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='foozone'>foo.zone</h3><br />
+<br />
+<ul>
+<li>📚 Documentation: Markdown (100.0%)</li>
+<li>📊 Commits: 3032</li>
+<li>📈 Lines of Code: 0</li>
+<li>📄 Lines of Documentation: 23</li>
+<li>📅 Development Period: 2021-05-21 to 2022-04-02</li>
+<li>🔥 Recent Activity: 1483.4 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: No license found</li>
+<li>🧪 Status: Experimental (no releases yet)</li>
+</ul><br />
+<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br />
+<br />
+<span>This is **foo.zone**, a personal blog and technical website belonging to Paul Buetow, a Site Reliability Engineer based in Sofia, Bulgaria. The project is a static website that serves as a comprehensive platform for sharing technical knowledge, book notes, and personal experiences in the fields of system administration, DevOps, and programming.</span><br />
+<br />
+<span>The site is built using **Gemtexter**, a static site generator that creates both HTML and Gemini protocol content from markdown sources. The architecture is refreshingly simple and follows KISS principles, with content organized into several key sections: a main blog feed (gemfeed) with over 100 technical posts dating back to 2008, detailed book notes and summaries, project documentation (including tools like DTail for distributed log tailing), and personal resources. The website is served by OpenBSD using relayd and httpd, demonstrating the author&#39;s preference for robust, security-focused Unix systems. The project emphasizes clean, semantic HTML, custom CSS styling, and accessibility, while maintaining both web and Gemini protocol compatibility for broader reach across different internet communities.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/foo.zone'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/foo.zone'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='perl-c-fibonacci'>perl-c-fibonacci</h3><br />
<br />
<ul>
@@ -794,7 +793,7 @@
<li>📈 Lines of Code: 51</li>
<li>📄 Lines of Documentation: 69</li>
<li>📅 Development Period: 2014-03-24 to 2022-04-23</li>
-<li>🔥 Recent Activity: 1941.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1948.7 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -818,7 +817,7 @@
<li>📈 Lines of Code: 12420</li>
<li>📄 Lines of Documentation: 610</li>
<li>📅 Development Period: 2018-03-01 to 2020-01-22</li>
-<li>🔥 Recent Activity: 2482.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 2490.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Apache-2.0</li>
<li>🏷️ Latest Release: 0.5.1 (2019-01-04)</li>
</ul><br />
@@ -844,7 +843,7 @@
<li>📈 Lines of Code: 919</li>
<li>📄 Lines of Documentation: 12</li>
<li>📅 Development Period: 2015-01-02 to 2021-11-04</li>
-<li>🔥 Recent Activity: 2991.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 2999.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.1.3 (2015-01-02)</li>
</ul><br />
@@ -868,7 +867,7 @@
<li>📈 Lines of Code: 18</li>
<li>📄 Lines of Documentation: 49</li>
<li>📅 Development Period: 2014-03-24 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3227.2 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3234.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -892,7 +891,7 @@
<li>📈 Lines of Code: 5360</li>
<li>📄 Lines of Documentation: 789</li>
<li>📅 Development Period: 2015-01-02 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3493.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3501.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.1 (2015-01-02)</li>
</ul><br />
@@ -916,7 +915,7 @@
<li>📈 Lines of Code: 273</li>
<li>📄 Lines of Documentation: 32</li>
<li>📅 Development Period: 2015-09-29 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3498.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3505.7 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Apache-2.0</li>
<li>🏷️ Latest Release: 0 (2015-10-26)</li>
</ul><br />
@@ -940,7 +939,7 @@
<li>📈 Lines of Code: 1839</li>
<li>📄 Lines of Documentation: 412</li>
<li>📅 Development Period: 2015-01-02 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3577.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3585.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.2 (2015-01-02)</li>
</ul><br />
@@ -964,7 +963,7 @@
<li>📈 Lines of Code: 499</li>
<li>📄 Lines of Documentation: 8</li>
<li>📅 Development Period: 2015-05-24 to 2021-11-03</li>
-<li>🔥 Recent Activity: 3588.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3596.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.1 (2015-06-01)</li>
</ul><br />
@@ -986,7 +985,7 @@
<li>📊 Commits: 670</li>
<li>📈 Lines of Code: 1675</li>
<li>📅 Development Period: 2011-03-06 to 2018-12-22</li>
-<li>🔥 Recent Activity: 3644.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3651.7 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.0.0 (2018-12-22)</li>
</ul><br />
@@ -1012,7 +1011,7 @@
<li>📈 Lines of Code: 88</li>
<li>📄 Lines of Documentation: 148</li>
<li>📅 Development Period: 2015-06-18 to 2015-12-05</li>
-<li>🔥 Recent Activity: 3692.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3699.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1038,7 +1037,7 @@
<li>📈 Lines of Code: 1681</li>
<li>📄 Lines of Documentation: 539</li>
<li>📅 Development Period: 2014-03-10 to 2021-11-03</li>
-<li>🔥 Recent Activity: 3970.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3977.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.2 (2014-11-17)</li>
</ul><br />
@@ -1062,7 +1061,7 @@
<li>📈 Lines of Code: 65</li>
<li>📄 Lines of Documentation: 228</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-04</li>
-<li>🔥 Recent Activity: 4024.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4032.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.0.0.0 (2013-03-22)</li>
</ul><br />
@@ -1086,7 +1085,7 @@
<li>📈 Lines of Code: 136</li>
<li>📄 Lines of Documentation: 96</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4037.5 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4045.2 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.2.0 (2014-07-05)</li>
</ul><br />
@@ -1110,7 +1109,7 @@
<li>📈 Lines of Code: 134</li>
<li>📄 Lines of Documentation: 106</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4045.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4052.7 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.1.5 (2014-06-22)</li>
</ul><br />
@@ -1134,7 +1133,7 @@
<li>📈 Lines of Code: 493</li>
<li>📄 Lines of Documentation: 26</li>
<li>📅 Development Period: 2009-09-27 to 2021-11-02</li>
-<li>🔥 Recent Activity: 4088.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4096.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.9.3 (2014-06-14)</li>
</ul><br />
@@ -1158,7 +1157,7 @@
<li>📈 Lines of Code: 286</li>
<li>📄 Lines of Documentation: 144</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4093.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4101.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.4.3 (2014-06-16)</li>
</ul><br />
@@ -1182,7 +1181,7 @@
<li>📈 Lines of Code: 191</li>
<li>📄 Lines of Documentation: 8</li>
<li>📅 Development Period: 2014-03-24 to 2014-03-24</li>
-<li>🔥 Recent Activity: 4154.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4162.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1204,7 +1203,7 @@
<li>📊 Commits: 7</li>
<li>📈 Lines of Code: 80</li>
<li>📅 Development Period: 2011-07-09 to 2015-01-13</li>
-<li>🔥 Recent Activity: 4234.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4242.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1228,7 +1227,7 @@
<li>📈 Lines of Code: 124</li>
<li>📄 Lines of Documentation: 75</li>
<li>📅 Development Period: 2010-11-05 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4275.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4283.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.2 (2014-06-22)</li>
</ul><br />
@@ -1252,7 +1251,7 @@
<li>📈 Lines of Code: 1828</li>
<li>📄 Lines of Documentation: 100</li>
<li>📅 Development Period: 2010-11-05 to 2015-05-23</li>
-<li>🔥 Recent Activity: 4305.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4313.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.7.5 (2014-06-22)</li>
</ul><br />
@@ -1270,11 +1269,11 @@
<h3 style='display: inline' id='perldaemon'>perldaemon</h3><br />
<br />
<ul>
-<li>💻 Languages: Perl (74.2%), Shell (22.2%), Config (3.6%)</li>
+<li>💻 Languages: Perl (72.3%), Shell (23.8%), Config (3.9%)</li>
<li>📊 Commits: 110</li>
-<li>📈 Lines of Code: 659</li>
+<li>📈 Lines of Code: 614</li>
<li>📅 Development Period: 2011-02-05 to 2022-04-21</li>
-<li>🔥 Recent Activity: 4449.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4362.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.4 (2022-04-29)</li>
</ul><br />
@@ -1298,7 +1297,7 @@
<li>📈 Lines of Code: 122</li>
<li>📄 Lines of Documentation: 10</li>
<li>📅 Development Period: 2011-01-27 to 2014-06-22</li>
-<li>🔥 Recent Activity: 4685.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4693.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: v0.2 (2011-01-27)</li>
</ul><br />
@@ -1322,7 +1321,7 @@
<li>📈 Lines of Code: 720</li>
<li>📄 Lines of Documentation: 6</li>
<li>📅 Development Period: 2008-06-21 to 2021-11-03</li>
-<li>🔥 Recent Activity: 4748.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4756.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v0.3 (2009-02-08)</li>
</ul><br />
@@ -1339,32 +1338,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='ychat'>ychat</h3><br />
-<br />
-<ul>
-<li>💻 Languages: C++ (52.1%), C/C++ (21.3%), Shell (20.1%), HTML (2.5%), Config (2.1%), Perl (1.5%), Make (0.3%)</li>
-<li>📚 Documentation: Text (100.0%)</li>
-<li>📊 Commits: 67</li>
-<li>📈 Lines of Code: 33823</li>
-<li>📄 Lines of Documentation: 109</li>
-<li>📅 Development Period: 2008-05-15 to 2014-07-01</li>
-<li>🔥 Recent Activity: 5303.4 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: GPL-2.0</li>
-<li>🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)</li>
-</ul><br />
-<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br />
-<br />
-<span>Based on my analysis of the codebase, here&#39;s a concise summary of the yChat project:</span><br />
-<br />
-<span>**yChat** is a web-based chat server written in C++ that functions as a standalone HTTP server without requiring external web server dependencies. It allows users to participate in multi-room chat sessions using standard web browsers, with no special client software needed. The system supports user registration, authentication via session IDs, customizable HTML templates, and multi-language support through XML configuration files.</span><br />
-<br />
-<span>The architecture is built around several key managers: a socket manager for handling HTTP connections, a chat manager for core functionality, an HTML template manager for dynamic content generation, and a modular system supporting dynamically loadable command modules. It uses hash maps for efficient O(1) data retrieval, POSIX threads for concurrent request handling, and includes advanced features like SSL support, MySQL database integration, garbage collection for memory management, and comprehensive logging. The codebase also includes related projects like yhttpd (a lightweight HTTP server) and ycurses (a terminal interface library), making it a comprehensive communication platform designed for performance and extensibility.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/ychat'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/ychat'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='netcalendar'>netcalendar</h3><br />
<br />
<ul>
@@ -1374,7 +1347,7 @@
<li>📈 Lines of Code: 17380</li>
<li>📄 Lines of Documentation: 947</li>
<li>📅 Development Period: 2009-02-07 to 2021-05-01</li>
-<li>🔥 Recent Activity: 5379.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 5387.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-2.0</li>
<li>🏷️ Latest Release: v0.1 (2009-02-08)</li>
</ul><br />
@@ -1400,7 +1373,7 @@
<li>📊 Commits: 80</li>
<li>📈 Lines of Code: 601</li>
<li>📅 Development Period: 2009-11-22 to 2011-10-17</li>
-<li>🔥 Recent Activity: 5474.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 5482.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1415,27 +1388,29 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='fype'>fype</h3><br />
+<h3 style='display: inline' id='ychat'>ychat</h3><br />
<br />
<ul>
-<li>💻 Languages: C (72.1%), C/C++ (20.7%), HTML (5.7%), Make (1.5%)</li>
-<li>📚 Documentation: Text (71.3%), LaTeX (28.7%)</li>
-<li>📊 Commits: 99</li>
-<li>📈 Lines of Code: 10196</li>
-<li>📄 Lines of Documentation: 1741</li>
-<li>📅 Development Period: 2008-05-15 to 2021-11-03</li>
-<li>🔥 Recent Activity: 5636.6 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: Custom License</li>
-<li>🧪 Status: Experimental (no releases yet)</li>
+<li>💻 Languages: C++ (49.6%), Shell (21.8%), C/C++ (20.3%), Perl (2.8%), Config (2.2%), HTML (2.0%), Make (1.1%), CSS (0.2%)</li>
+<li>📚 Documentation: Text (100.0%)</li>
+<li>📊 Commits: 67</li>
+<li>📈 Lines of Code: 40780</li>
+<li>📄 Lines of Documentation: 27</li>
+<li>📅 Development Period: 2008-05-15 to 2010-11-21</li>
+<li>🔥 Recent Activity: 5727.0 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: No license found</li>
+<li>🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)</li>
</ul><br />
<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br />
<br />
-<span>**Fype** is a 32-bit scripting language interpreter written in C that aims to be "at least as good as AWK" while providing a different syntax and some unique features. Created by Paul C. Buetow as a fun project, Fype supports variables, functions, procedures, loops, arrays, and control structures with features like variable synonyms (references), nested functions/procedures, and automatic type conversion. The language uses a simple syntax with statements ending in semicolons and supports both global procedures (which share scope with their callers) and lexically-scoped functions.</span><br />
+<span>Based on my analysis of the codebase, here&#39;s a concise summary of the yChat project:</span><br />
<br />
-<span>The implementation is built using a straightforward top-down parser with a maximum lookahead of 1 token, simultaneously parsing and interpreting code (meaning syntax errors are only detected at runtime). The architecture is modular with separate components for scanning/tokenization, symbol management, garbage collection, type conversion, and data structures (including arrays, lists, hash tables, stacks, and trees). The interpreter is designed for Unix-like systems (BSD/Linux) and includes built-in functions for I/O, math operations, bitwise operations, system calls like <span class='inlinecode'>fork</span>, and memory management with garbage collection.</span><br />
+<span>**yChat** is a web-based chat server written in C++ that functions as a standalone HTTP server without requiring external web server dependencies. It allows users to participate in multi-room chat sessions using standard web browsers, with no special client software needed. The system supports user registration, authentication via session IDs, customizable HTML templates, and multi-language support through XML configuration files.</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/fype'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/fype'>View on GitHub</a><br />
+<span>The architecture is built around several key managers: a socket manager for handling HTTP connections, a chat manager for core functionality, an HTML template manager for dynamic content generation, and a modular system supporting dynamically loadable command modules. It uses hash maps for efficient O(1) data retrieval, POSIX threads for concurrent request handling, and includes advanced features like SSL support, MySQL database integration, garbage collection for memory management, and comprehensive logging. The codebase also includes related projects like yhttpd (a lightweight HTTP server) and ycurses (a terminal interface library), making it a comprehensive communication platform designed for performance and extensibility.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/ychat'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/ychat'>View on GitHub</a><br />
<br />
<span>---</span><br />
<br />
@@ -1447,7 +1422,7 @@
<li>📈 Lines of Code: 0</li>
<li>📄 Lines of Documentation: 7</li>
<li>📅 Development Period: 2008-05-15 to 2015-05-23</li>
-<li>🔥 Recent Activity: 5835.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 5843.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: v1.0 (2008-08-24)</li>
</ul><br />
@@ -1459,6 +1434,30 @@
<br />
<a class='textlink' href='https://codeberg.org/snonux/vs-sim'>View on Codeberg</a><br />
<a class='textlink' href='https://github.com/snonux/vs-sim'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
+<h3 style='display: inline' id='fype'>fype</h3><br />
+<br />
+<ul>
+<li>💻 Languages: C (71.3%), C/C++ (20.6%), HTML (6.6%), Make (1.5%)</li>
+<li>📚 Documentation: Text (60.2%), LaTeX (39.8%)</li>
+<li>📊 Commits: 99</li>
+<li>📈 Lines of Code: 8906</li>
+<li>📄 Lines of Documentation: 1431</li>
+<li>📅 Development Period: 2008-05-15 to 2021-04-29</li>
+<li>🔥 Recent Activity: 5889.4 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: Custom License</li>
+<li>🧪 Status: Experimental (no releases yet)</li>
+</ul><br />
+<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br />
+<br />
+<span>**Fype** is a 32-bit scripting language interpreter written in C that aims to be "at least as good as AWK" while providing a different syntax and some unique features. Created by Paul C. Buetow as a fun project, Fype supports variables, functions, procedures, loops, arrays, and control structures with features like variable synonyms (references), nested functions/procedures, and automatic type conversion. The language uses a simple syntax with statements ending in semicolons and supports both global procedures (which share scope with their callers) and lexically-scoped functions.</span><br />
+<br />
+<span>The implementation is built using a straightforward top-down parser with a maximum lookahead of 1 token, simultaneously parsing and interpreting code (meaning syntax errors are only detected at runtime). The architecture is modular with separate components for scanning/tokenization, symbol management, garbage collection, type conversion, and data structures (including arrays, lists, hash tables, stacks, and trees). The interpreter is designed for Unix-like systems (BSD/Linux) and includes built-in functions for I/O, math operations, bitwise operations, system calls like <span class='inlinecode'>fork</span>, and memory management with garbage collection.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/fype'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/fype'>View on GitHub</a><br />
<p class="footer">
Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter 3.0.1-develop</a> |
served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/relayd.8">relayd(8)</a>+<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> |
diff --git a/about/showcase/debroid/image-1.png b/about/showcase/debroid/image-1.png
index fd968ef4..67f36bb5 100644
--- a/about/showcase/debroid/image-1.png
+++ b/about/showcase/debroid/image-1.png
@@ -27,7 +27,7 @@
<link rel="preconnect" href="https://github.githubassets.com" crossorigin>
<link rel="preconnect" href="https://avatars.githubusercontent.com">
- <link crossorigin="anonymous" rel="preload" as="script" href="https://github.githubassets.com/assets/global-banner-disable-59fed23c5fc1.js" />
+ <link crossorigin="anonymous" rel="preload" as="script" href="https://github.githubassets.com/assets/global-banner-disable-004f523e017c.js" />
<link rel="preload" href="https://github.githubassets.com/assets/mona-sans-d1bf285e9b9b.woff2" as="font" type="font/woff2" crossorigin>
@@ -46,44 +46,43 @@
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-dc7ca6859caf.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-e11b50dc0d94.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-9eed6aa4fd31.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-1936c2fb5b22.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-8aaa35f12547.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-ce246942b490.css" />
-
- <script type="application/json" id="client-env">{"locale":"en","featureFlags":["alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","client_version_header","code_scanning_security_configuration_ternary_state","codespaces_prebuild_region_target_update","contact_requests_implicit_opt_in","contentful_lp_copilot_extensions","contentful_lp_flex_features","contentful_lp_footnotes","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_group_notifications","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_chat_wholearea_dd","copilot_chat_wholearea_dd_overlay","copilot_coding_agent_task_creation_banner","copilot_custom_copilots_feature_preview","copilot_custom_copilots_images","copilot_duplicate_thread","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_immersive_agent_branch_selection","copilot_immersive_draft_issue_consolidated_create_handler","copilot_immersive_draft_issue_tree_validation","copilot_immersive_structured_model_picker","copilot_no_floating_button","copilot_read_shared_conversation","copilot_spaces_input_menu_select","copilot_spaces_permissions_tab","copilot_spaces_upsert_reload_in_background","copilot_spark_allow_empty_commit","copilot_spark_single_user_iteration","copilot_spark_use_billing_headers","copilot_spark_write_iteration_history_to_git","copilot_task_oriented_assistive_prompts","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_connection_reload_banner","copilot_workbench_preview_analytics","copilot_workbench_ratelimit_fallback","copilot_workbench_refresh_on_wsod","copilot_workbench_synthetic_generation","custom_copilots_128k_window","custom_copilots_capi_mode","custom_copilots_file_uploads","direct_to_salesforce","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","github_models_render_external_errors","hpc_improve_dom_insertion_observer","insert_before_patch","issue_fields_report_usage","issues_preserve_tokens_in_urls","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_fullstory_sampling","marketing_pages_search_explore_provider","memex_mwl_filter_field_delimiter","nonreporting_relay_graphql_status_codes","primer_react_segmented_control_tooltip","record_sso_banner_metrics","remove_child_patch","sample_network_conn_type","scheduled_reminders_updated_limits","site_copilot_plans_emphasize_pro","site_homepage_contentful","site_msbuild_hide_integrations","site_msbuild_launch","site_msbuild_webgl_hero","spark_commit_on_default_branch","spark_sync_repository_after_iteration","swp_enterprise_contact_form","viewscreen_sandbox","wiki_editor_insertion_buttons","workbench_default_sonnet4","workbench_store_readonly"],"copilotApiOverrideUrl":null}</script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-43044cc98e23.js"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-9afd47637d45.js" defer="defer"></script>
+ <script type="application/json" id="client-env">{"locale":"en","featureFlags":["alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","client_version_header","code_scanning_security_configuration_ternary_state","codespaces_prebuild_region_target_update","contact_requests_implicit_opt_in","contentful_lp_copilot_extensions","contentful_lp_flex_features","contentful_lp_footnotes","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_group_notifications","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_custom_copilots_feature_preview","copilot_custom_copilots_images","copilot_duplicate_thread","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_gpt5_promotion_banner","copilot_immersive_agent_branch_selection","copilot_immersive_structured_model_picker","copilot_no_floating_button","copilot_read_shared_conversation","copilot_spaces_input_menu_select","copilot_spaces_permissions_tab","copilot_spaces_repo_context","copilot_spaces_upsert_reload_in_background","copilot_spaces_v3_ui","copilot_spark_allow_empty_commit","copilot_spark_single_user_iteration","copilot_spark_use_billing_headers","copilot_spark_write_iteration_history_to_git","copilot_task_oriented_assistive_prompts","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_connection_reload_banner","copilot_workbench_preview_analytics","copilot_workbench_ratelimit_fallback","copilot_workbench_refresh_on_wsod","copilot_workbench_synthetic_generation","costcenter_members_ui","custom_copilots_128k_window","custom_copilots_capi_mode","custom_copilots_file_uploads","direct_to_salesforce","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","hpc_improve_dom_insertion_observer","insert_before_patch","issue_dependencies_issue_index_pill_click","issue_fields_report_usage","issues_preserve_tokens_in_urls","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","memex_mwl_filter_field_delimiter","migrate_toasts_to_banners_web_notifications","primer_react_segmented_control_tooltip","record_sso_banner_metrics","remove_child_patch","role_assignment_list_radio","sample_network_conn_type","scheduled_reminders_updated_limits","site_homepage_contentful","site_msbuild_hide_integrations","site_msbuild_launch","site_msbuild_webgl_hero","spark_commit_on_default_branch","spark_sync_repository_after_iteration","swp_enterprise_contact_form","viewscreen_sandbox","workbench_default_sonnet4","workbench_store_readonly"],"copilotApiOverrideUrl":null}</script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-be6f6fc272bd.js"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-615a2256f603.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-a8c266e5f126.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-1d3d52-63979392733d.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-290ee401187e.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-60434be97762.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-0825a7514813.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-f35dd522ae2e.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-c44edfed7f0d.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-3bc735efc2fb.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-e43198c9c229.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-c1e2fb329866.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-0d7d60-e7c651f2037f.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-e50fb7a5fe8c.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-514a92c925f0.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-665e70-03ac9ce9c364.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-6a8c7d9a08fe.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-f03a40-d944abd5f7c0.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-f9923b9251dd.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-1fcf03d57e0a.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-777ce2-1dd746215ae3.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-5cffbf1169b0.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-69e290ba7f3c.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-bb80ec-422a87d68b40.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-b93a87060d31.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_morphdom_dist_morphdom-esm_js-65504f81abf2.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_morphdom_dist_morphdom-esm_js-node_modules_swc_helpers_esm__define_property_js-457369b2bc79.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-595819d3686f.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-8351bc3b1582.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-c39857-80b7561055c5.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-19a9ffc8367b.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-f59ef568265a.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-d3ee0b-54a0d20a9ae1.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-1cf7991389b4.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-eef525613171.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-c9618dd6662a.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-d0d0a6-a7da4270c5f4.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-d0d0a6-f1c40b7e9d92.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-54f5b4a90315.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-0600723b6196.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-ea8eaa-a4bd0b8e9717.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-3b61f3f3d9a0.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-ac4fa2002966.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-ef6d0f-3a56c06b9620.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-33a139fab0d9.js" defer="defer"></script>
<title>Page not found · GitHub · GitHub</title>
@@ -93,13 +92,13 @@
<meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
<meta name="route-controller" content="blob" data-turbo-transient>
<meta name="route-action" content="show" data-turbo-transient>
- <meta name="fetch-nonce" content="v2:30a19060-3768-2f63-37a6-956c6e5253e7">
+ <meta name="fetch-nonce" content="v2:a17a6a9d-8e0d-d420-2b36-29ec2fef98e4">
<meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">
- <meta name="request-id" content="A542:38136F:111778A:EC2BF1:6895FD17" data-pjax-transient="true"/><meta name="html-safe-nonce" content="7e1f491dfbe42b9efb518a61935f70355cdd7ee105fec7c2053b62a32f2fdca1" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNTQyOjM4MTM2RjoxMTE3NzhBOkVDMkJGMTo2ODk1RkQxNyIsInZpc2l0b3JfaWQiOiI0MjA2MzQ0NTI1OTU3MTY4NDA3IiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="f7d674fb3095c8febf9279b7c2acdeecccd909f1d3b1bafa2e21c2c197265df9" data-pjax-transient="true"/>
+ <meta name="request-id" content="B698:2BC486:5B1B93:4E11EF:68A02233" data-pjax-transient="true"/><meta name="html-safe-nonce" content="6ba2c47587a668965b24f17c0a4d18ff637c05fedf2e17d5c2c4d514fa776581" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNjk4OjJCQzQ4Njo1QjFCOTM6NEUxMUVGOjY4QTAyMjMzIiwidmlzaXRvcl9pZCI6IjY1MDk4ODAxMzI3MTEyMjc5NTYiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="1d43accbe9bf151e3d8fa2132fd1d1c113b7afb8e0c17f087ceb298c48546eb1" data-pjax-transient="true"/>
@@ -175,10 +174,10 @@
<meta name="expected-hostname" content="github.com">
- <meta http-equiv="x-pjax-version" content="fc2270cd01c8bc2d93e020dd6126922e9b027b2ef9afe933315d9f218bb52b0d" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-version" content="97e0d4c53bead02905fdb3519893299999651b7ab4589d484a6db6decc543cf2" data-turbo-track="reload">
<meta http-equiv="x-pjax-csp-version" content="8fba9c9418de26103e6176951dd0c38780be21b972f2019085dee08622fdb843" data-turbo-track="reload">
- <meta http-equiv="x-pjax-css-version" content="682bd362ae4926152d952d8ef54b3b1f0b754fee6dfb6b128d5c3c6b062a7ef2" data-turbo-track="reload">
- <meta http-equiv="x-pjax-js-version" content="d558098d832beb014efc7eda10c9027f70db5a22d5498b2906be1943b7daa278" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-css-version" content="307db642b0254d0f77ba28913bb311dc9490e7feacc8d5246d396b23d5e6c4ea" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-js-version" content="80179f78bfe6a2afa104d221ec6ae27e01e8946d84193d5312948a67339627c4" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
@@ -202,7 +201,7 @@
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <meta name="release" content="79a36ac83ceb6347eb88d59063b202fcc6be542a">
+ <meta name="release" content="fbfdf359fa0ee54413d3ee370f9dddedf65e434e">
<meta name="ui-target" content="full">
<link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
@@ -230,7 +229,7 @@
<span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.6e741486b8c74caf5d85.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.c869ee9cf4c55200cc46.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.f8fba3bd67fe74f9227b.module.css" />
<react-partial
@@ -254,8 +253,8 @@
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_gsap_index_js-028cb2a18f5a.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-094296912333.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-993c483b0f4e.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-5a370a947905.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-06e5a2cf5cc8.js" defer="defer"></script>
<header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark>
<h2 class="sr-only">Navigation Menu</h2>
@@ -294,13 +293,13 @@
</a>
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-424db5e6-3667-4a36-80de-d83a6131cc34" aria-labelledby="tooltip-8a1b0ef0-a955-4483-8b24-eefa9018c25e" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
+ <button data-target="react-partial-anchor.anchor" id="icon-button-f09c9b4b-1a4b-4279-9706-2f3f64f74644" aria-labelledby="tooltip-6e7a8f58-8c24-401e-9119-9cd016276bed" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
<path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path>
</svg>
-</button><tool-tip id="tooltip-8a1b0ef0-a955-4483-8b24-eefa9018c25e" for="icon-button-424db5e6-3667-4a36-80de-d83a6131cc34" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
+</button><tool-tip id="tooltip-6e7a8f58-8c24-401e-9119-9cd016276bed" for="icon-button-f09c9b4b-1a4b-4279-9706-2f3f64f74644" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.6e741486b8c74caf5d85.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.c869ee9cf4c55200cc46.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.76259b61ecc822265749.module.css" />
<react-partial
@@ -987,7 +986,7 @@
-<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="DSMlVB8Uk4WQ_Q_QMzsi-f5BwUFdqKBchHmmzHdwT0XR-Vbmdo0G5jeP4t47_8X6dlE3jvnA9QHzXjgSoApTyA" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true">
+<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="RxPtuHZnCm8C5PwuISzT4SXt_OnioHSHToYfRF1jndJTlZaIB5KCgG9Ehxqk36Jp9lH7thrkjw8aQYZur4dssg" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true">
<div
class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded"
data-action="click:qbsearch-input#searchInputContainerClicked"
@@ -1051,7 +1050,7 @@
></div>
<div class="QueryBuilder-InputWrapper">
<div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div>
- <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-a41b50d9-583a-4080-896c-56ac8b514072" data-target="query-builder.input" data-action="
+ <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-57ba1cb5-4cec-4c64-8b79-69a6af10a83b" data-target="query-builder.input" data-action="
input:query-builder#inputChange
blur:query-builder#inputBlur
keydown:query-builder#inputKeydown
@@ -1289,7 +1288,7 @@
tabindex="-1"
></ul>
</div>
- <div class="FormControl-inlineValidation" id="validation-a41b50d9-583a-4080-896c-56ac8b514072" hidden="hidden">
+ <div class="FormControl-inlineValidation" id="validation-57ba1cb5-4cec-4c64-8b79-69a6af10a83b" hidden="hidden">
<span class="FormControl-inlineValidation--visual">
<svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill">
<path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path>
@@ -1330,7 +1329,7 @@
</div>
<scrollable-region data-labelled-by="feedback-dialog-title">
- <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="v25DT3yt7Q3a1QayrNKdpR/bFuHZw6y8XT73nX1xCXMoV4B5/z5YoJktY/BMWzfbXR63KmPjXMo9sCrxOmtCcA==" />
+ <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="vbIE2ApYQ8R8TyMMcGGWvPr1WBROkJ6ye5FtVNmXP7ZU+v24216mQdxLfeMWtcCa/PScyymVkG3mclosAeoqYg==" />
<p>We read every piece of feedback, and take your input very seriously.</p>
<textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea>
<input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox">
@@ -1368,7 +1367,7 @@
<div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="GH7NSksjcoDGFJoR6XD/oI2PqWnSJ8NGdGOAHSc06X69+AEaIBX8/VrKCykU+QbKQV8xWQvu6occeJFQ1foXcA==" />
+ <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="eTi9eRYShRVFgZrvLeqfRmcTjcTHssttTawFbi/rLyVu3YpGGtP/DGy/MXkuACqebBZiVGilr4wcpgkcO+mtaw==" />
<div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
@@ -1386,7 +1385,7 @@
placeholder="github-ruby"
required
maxlength="50">
- <input type="hidden" data-csrf="true" value="KbqTWfx8wCOa9DiSqeAJhxeQURDwN50OqtA44vFyFywRYlXzsRG/sw4xN3Gnp21cHSWGUQtAzJV/2DkYIO1v3Q==" />
+ <input type="hidden" data-csrf="true" value="httKiZoq0wFqLa0yPXsH942ZHsK6tniOg19cnxbZ9Pt23GqV3POmxBw0c/GpRIUer7+Veg8wTdtD8FxptnAZnQ==" />
</auto-check>
</div>
@@ -1441,7 +1440,7 @@
<h4 data-view-component="true" class="color-fg-default mb-2"> Sign in to GitHub
</h4>
-<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="i1r6EzC22fLP2tLOpqhxPhnFaVcjYSDQK96bGAhD2MdFA4SSx7Y9pFzxBk9kppVT0x4EoAM0TbNM2qCOkYBNxA==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
+<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="auPPNoZAM8gSZJykmuqHguCbTNMRh8kjb17/BFkLZmcckF78YHkbQCaupynbaQ/rv5RWGKywZNzVKeLW94pLNQ==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
<label for="login_field">
Username or email address
@@ -1463,9 +1462,9 @@
<input type="hidden" name="allow_signup" id="allow_signup" autocomplete="off" class="form-control" />
<input type="hidden" name="client_id" id="client_id" autocomplete="off" class="form-control" />
<input type="hidden" name="integration" id="integration" autocomplete="off" class="form-control" />
-<input class="form-control" type="text" name="required_field_e4e3" hidden="hidden" />
-<input class="form-control" type="hidden" name="timestamp" value="1754660119728" />
-<input class="form-control" type="hidden" name="timestamp_secret" value="066e5ba16e979fc228d497afbaf0df6ef02c7edb3dbbe2fd43da7183ca6214a9" />
+<input class="form-control" type="text" name="required_field_61c5" hidden="hidden" />
+<input class="form-control" type="hidden" name="timestamp" value="1755324980181" />
+<input class="form-control" type="hidden" name="timestamp_secret" value="dcb25910f45aa4740dacf0d2913f662168afc0225525d168d2a8f02559cef9af" />
<input type="submit" name="commit" value="Sign in" class="btn btn-primary btn-block js-sign-in-button" data-disable-with="Signing in…" data-signin-label="Sign in" data-sso-label="Sign in with your identity provider" development="false" disable-emu-sso="false" />
@@ -1492,13 +1491,13 @@
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-b217d8fd-6aaf-417d-b24a-361495a0898d" aria-labelledby="tooltip-b9778916-3091-4413-9f60-0e599a623444" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
+ <button data-target="react-partial-anchor.anchor" id="icon-button-8ffc3fc3-d80b-4943-8fcf-b6d0b2acd154" aria-labelledby="tooltip-8d0154d4-1863-404b-a42e-2efb27d646f7" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
<path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path>
</svg>
-</button><tool-tip id="tooltip-b9778916-3091-4413-9f60-0e599a623444" for="icon-button-b217d8fd-6aaf-417d-b24a-361495a0898d" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
+</button><tool-tip id="tooltip-8d0154d4-1863-404b-a42e-2efb27d646f7" for="icon-button-8ffc3fc3-d80b-4943-8fcf-b6d0b2acd154" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.6e741486b8c74caf5d85.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.c869ee9cf4c55200cc46.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.76259b61ecc822265749.module.css" />
<react-partial
@@ -1533,10 +1532,10 @@
<span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
- <button id="icon-button-960677fe-e964-4211-b798-8d00efc87b01" aria-labelledby="tooltip-efef7f53-c5d3-48aa-82e0-94543fd85bce" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
+ <button id="icon-button-895a0a48-c966-4122-b84d-6097a80911c0" aria-labelledby="tooltip-e32b3666-d19f-4f64-8f9d-a65e99c9a0da" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
-</button><tool-tip id="tooltip-efef7f53-c5d3-48aa-82e0-94543fd85bce" for="icon-button-960677fe-e964-4211-b798-8d00efc87b01" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
+</button><tool-tip id="tooltip-e32b3666-d19f-4f64-8f9d-a65e99c9a0da" for="icon-button-895a0a48-c966-4122-b84d-6097a80911c0" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
@@ -1929,7 +1928,7 @@
<div class="Overlay-body Overlay-body--paddingNone">
<ul class="ActionList" id="locale-selector-list" role="menu" aria-labelledby="locale-selector-text">
<li role="none" data-view-component="true" class="ActionList-item">
- <a href="" selected="selected" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="en-us" data-analytics-click="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;select language&quot;,&quot;label&quot;:&quot;locale:en-us&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
+ <a href="" selected="selected" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="en-us" data-analytics-event="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;click_to_select_language&quot;,&quot;label&quot;:&quot;locale:en-us&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
<span class="ActionList-item-label">
<div style="width: 16px; display: inline-block; text-align: center; margin-right: 8px; flex-shrink: 0;">
@@ -1942,7 +1941,7 @@
</span>
</a></li>
<li role="none" data-view-component="true" class="ActionList-item">
- <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="pt-br" data-analytics-click="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;select language&quot;,&quot;label&quot;:&quot;locale:pt-br&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
+ <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="pt-br" data-analytics-event="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;click_to_select_language&quot;,&quot;label&quot;:&quot;locale:pt-br&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
<span class="ActionList-item-label">
<div style="width: 16px; display: inline-block; text-align: center; margin-right: 8px; flex-shrink: 0;">
@@ -1953,7 +1952,7 @@
</span>
</a></li>
<li role="none" data-view-component="true" class="ActionList-item">
- <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="es-419" data-analytics-click="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;select language&quot;,&quot;label&quot;:&quot;locale:es-419&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
+ <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="es-419" data-analytics-event="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;click_to_select_language&quot;,&quot;label&quot;:&quot;locale:es-419&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
<span class="ActionList-item-label">
<div style="width: 16px; display: inline-block; text-align: center; margin-right: 8px; flex-shrink: 0;">
@@ -1964,7 +1963,7 @@
</span>
</a></li>
<li role="none" data-view-component="true" class="ActionList-item">
- <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="ja" data-analytics-click="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;select language&quot;,&quot;label&quot;:&quot;locale:ja&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
+ <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="ja" data-analytics-event="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;click_to_select_language&quot;,&quot;label&quot;:&quot;locale:ja&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
<span class="ActionList-item-label">
<div style="width: 16px; display: inline-block; text-align: center; margin-right: 8px; flex-shrink: 0;">
@@ -1975,7 +1974,7 @@
</span>
</a></li>
<li role="none" data-view-component="true" class="ActionList-item">
- <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="ko-kr" data-analytics-click="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;select language&quot;,&quot;label&quot;:&quot;locale:ko-kr&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
+ <a href="" style="white-space: normal;" data-action="click:locale-selector#handleSelectLocale" data-locale="ko-kr" data-analytics-event="{&quot;category&quot;:&quot;Locale Picker&quot;,&quot;action&quot;:&quot;click_to_select_language&quot;,&quot;label&quot;:&quot;locale:ko-kr&quot;}" role="menuitem" tabindex="-1" data-view-component="true" class="footer-social-locale ActionList-content">
<span class="ActionList-item-label">
<div style="width: 16px; display: inline-block; text-align: center; margin-right: 8px; flex-shrink: 0;">
diff --git a/gemfeed/2022-06-15-sweating-the-small-stuff.html b/gemfeed/2022-06-15-sweating-the-small-stuff.html
index e0f9b4c2..cdb98bf7 100644
--- a/gemfeed/2022-06-15-sweating-the-small-stuff.html
+++ b/gemfeed/2022-06-15-sweating-the-small-stuff.html
@@ -175,7 +175,7 @@ Pos | System | Kernel | Uptime |
<br />
<span>The <span class='inlinecode'>rexfiles</span> project contains all Rex files for my (personal) server setup automation. A <span class='inlinecode'>Rexfile</span> is written in a Perl DSL run by the Rex configuration management system. It&#39;s pretty much KISS and that&#39;s why I love it. It suits my personal needs perfectly. </span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles'>https://codeberg.org/snonux/rexfiles</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf'>https://codeberg.org/snonux/conf</a><br />
<a class='textlink' href='https://www.rexify.org'>https://www.rexify.org</a><br />
<br />
<span>This is an E-Mail I posted to the Rex mailing list:</span><br />
diff --git a/gemfeed/2022-07-30-lets-encrypt-with-openbsd-and-rex.html b/gemfeed/2022-07-30-lets-encrypt-with-openbsd-and-rex.html
index c3f728a7..a6efd632 100644
--- a/gemfeed/2022-07-30-lets-encrypt-with-openbsd-and-rex.html
+++ b/gemfeed/2022-07-30-lets-encrypt-with-openbsd-and-rex.html
@@ -670,7 +670,7 @@ match from local for any action outbound
<br />
<span>For the complete <span class='inlinecode'>Rexfile</span> example and all the templates, please look at the Git repository:</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles'>https://codeberg.org/snonux/rexfiles</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf'>https://codeberg.org/snonux/conf</a><br />
<br />
<span>Besides ACME, other things, such as DNS servers, are also rexified. The following command will run all the Rex tasks and configure everything on my frontend machines automatically:</span><br />
<br />
diff --git a/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html b/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
index a237c543..29d0bfdc 100644
--- a/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
+++ b/gemfeed/2024-04-01-KISS-high-availability-with-OpenBSD.html
@@ -232,7 +232,7 @@ echo <font color="#808080">"Failover of zone $zone to $MASTER completed"</font>
<br />
<span>Check out the whole script here:</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles/src/branch/master/frontends/scripts/dns-failover.ksh'>dns-failover.ksh</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf/src/branch/master/frontends/scripts/dns-failover.ksh'>dns-failover.ksh</a><br />
<br />
<h3 style='display: inline' id='fairly-cheap-and-geo-redundant'>Fairly cheap and geo-redundant</h3><br />
<br />
@@ -295,7 +295,7 @@ http://www.gnu.org/software/src-highlite -->
<br />
<span>Let&#39;s encrypt certificates usually expire after 3 months, so a weekly failover of my VMs is plenty.</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles/src/branch/master/frontends/scripts/acme.sh.tpl'><span class='inlinecode'>acme.sh.tpl</span> - Rex template for the <span class='inlinecode'>acme.sh</span> script of mine.</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf/src/branch/master/frontends/scripts/acme.sh.tpl'><span class='inlinecode'>acme.sh.tpl</span> - Rex template for the <span class='inlinecode'>acme.sh</span> script of mine.</a><br />
<a class='textlink' href='https://man.OpenBSD.org/acme-client.1'>https://man.OpenBSD.org/acme-client.1</a><br />
<a class='textlink' href='./2022-07-30-lets-encrypt-with-openbsd-and-rex.html'>Let&#39;s Encrypt with OpenBSD and Rex</a><br />
<br />
@@ -313,7 +313,7 @@ http://www.gnu.org/software/src-highlite -->
<span>I use Rexify, a friendly configuration management system that allows automatic deployment and configuration.</span><br />
<br />
<a class='textlink' href='https://www.rexify.org'>https://www.rexify.org</a><br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles/src/branch/master/frontends'>codeberg.org/snonux/rexfiles/frontends</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf/src/branch/master/frontends'>codeberg.org/snonux/rexfiles/frontends</a><br />
<br />
<span>Rex isn&#39;t part of the OpenBSD base system, but I didn&#39;t need to install any external software on OpenBSD either as Rex is invoked from my Laptop!</span><br />
<br />
diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml
index 010b9bed..3e56e553 100644
--- a/gemfeed/atom.xml
+++ b/gemfeed/atom.xml
@@ -10358,7 +10358,7 @@ echo <font color="#808080">"Failover of zone $zone to $MASTER completed"</font>
<br />
<span>Check out the whole script here:</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles/src/branch/master/frontends/scripts/dns-failover.ksh'>dns-failover.ksh</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf/src/branch/master/frontends/scripts/dns-failover.ksh'>dns-failover.ksh</a><br />
<br />
<h3 style='display: inline' id='fairly-cheap-and-geo-redundant'>Fairly cheap and geo-redundant</h3><br />
<br />
@@ -10421,7 +10421,7 @@ http://www.gnu.org/software/src-highlite -->
<br />
<span>Let&#39;s encrypt certificates usually expire after 3 months, so a weekly failover of my VMs is plenty.</span><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles/src/branch/master/frontends/scripts/acme.sh.tpl'><span class='inlinecode'>acme.sh.tpl</span> - Rex template for the <span class='inlinecode'>acme.sh</span> script of mine.</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf/src/branch/master/frontends/scripts/acme.sh.tpl'><span class='inlinecode'>acme.sh.tpl</span> - Rex template for the <span class='inlinecode'>acme.sh</span> script of mine.</a><br />
<a class='textlink' href='https://man.OpenBSD.org/acme-client.1'>https://man.OpenBSD.org/acme-client.1</a><br />
<a class='textlink' href='./2022-07-30-lets-encrypt-with-openbsd-and-rex.html'>Let&#39;s Encrypt with OpenBSD and Rex</a><br />
<br />
@@ -10439,7 +10439,7 @@ http://www.gnu.org/software/src-highlite -->
<span>I use Rexify, a friendly configuration management system that allows automatic deployment and configuration.</span><br />
<br />
<a class='textlink' href='https://www.rexify.org'>https://www.rexify.org</a><br />
-<a class='textlink' href='https://codeberg.org/snonux/rexfiles/src/branch/master/frontends'>codeberg.org/snonux/rexfiles/frontends</a><br />
+<a class='textlink' href='https://codeberg.org/snonux/conf/src/branch/master/frontends'>codeberg.org/snonux/rexfiles/frontends</a><br />
<br />
<span>Rex isn&#39;t part of the OpenBSD base system, but I didn&#39;t need to install any external software on OpenBSD either as Rex is invoked from my Laptop!</span><br />
<br />
diff --git a/index.html b/index.html
index 594975c6..556fbc03 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
</p>
<h1 style='display: inline' id='hello'>Hello!</h1><br />
<br />
-<span class='quote'>This site was generated at 2025-08-14T23:30:12+03:00 by <span class='inlinecode'>Gemtexter</span></span><br />
+<span class='quote'>This site was generated at 2025-08-16T09:50:24+03:00 by <span class='inlinecode'>Gemtexter</span></span><br />
<br />
<span>Welcome to the foo.zone!</span><br />
<br />
diff --git a/uptime-stats.html b/uptime-stats.html
index 6fe7f550..55215eb6 100644
--- a/uptime-stats.html
+++ b/uptime-stats.html
@@ -13,7 +13,7 @@
</p>
<h1 style='display: inline' id='my-machine-uptime-stats'>My machine uptime stats</h1><br />
<br />
-<span class='quote'>This site was last updated at 2025-08-14T23:30:11+03:00</span><br />
+<span class='quote'>This site was last updated at 2025-08-16T09:50:23+03:00</span><br />
<br />
<span>The following stats were collected via <span class='inlinecode'>uptimed</span> on all of my personal computers over many years and the output was generated by <span class='inlinecode'>guprecords</span>, the global uptime records stats analyser of mine.</span><br />
<br />
@@ -47,8 +47,8 @@
| 11. | mega15289 | 50 | Darwin 23.4.0 |
| 12. | *t450 | 44 | FreeBSD 14.2-RELEASE |
| 13. | fishfinger | 43 | OpenBSD 7.6 |
-| 14. | phobos | 40 | Linux 3.4.0-CM-g1dd7cdf |
-| 15. | mega8477 | 40 | Darwin 13.4.0 |
+| 14. | mega8477 | 40 | Darwin 13.4.0 |
+| 15. | phobos | 40 | Linux 3.4.0-CM-g1dd7cdf |
| 16. | blowfish | 38 | OpenBSD 7.6 |
| 17. | sun | 33 | FreeBSD 10.3-RELEASE-p24 |
| 18. | f2 | 25 | FreeBSD 14.2-RELEASE-p1 |
@@ -68,7 +68,7 @@
| 1. | vulcan | 4 years, 5 months, 6 days | Linux 3.10.0-1160.81.1.el7.x86_64 |
| 2. | sun | 3 years, 9 months, 26 days | FreeBSD 10.3-RELEASE-p24 |
| 3. | uranus | 3 years, 9 months, 5 days | NetBSD 10.1 |
-| 4. | *earth | 3 years, 8 months, 2 days | Linux 6.15.9-201.fc42.x86_64 |
+| 4. | *earth | 3 years, 8 months, 3 days | Linux 6.15.9-201.fc42.x86_64 |
| 5. | blowfish | 3 years, 5 months, 16 days | OpenBSD 7.6 |
| 6. | uugrn | 3 years, 5 months, 5 days | FreeBSD 11.2-RELEASE-p4 |
| 7. | deltavega | 3 years, 1 months, 21 days | Linux 3.10.0-1160.11.1.el7.x86_64 |
@@ -79,7 +79,7 @@
| 12. | tauceti-f | 1 years, 9 months, 18 days | Linux 3.2.0-3-amd64 |
| 13. | *t450 | 1 years, 7 months, 26 days | FreeBSD 14.2-RELEASE |
| 14. | mega8477 | 1 years, 3 months, 25 days | Darwin 13.4.0 |
-| 15. | *mega-m3-pro | 1 years, 3 months, 9 days | Darwin 24.6.0 |
+| 15. | *mega-m3-pro | 1 years, 3 months, 10 days | Darwin 24.6.0 |
| 16. | host0 | 1 years, 3 months, 9 days | FreeBSD 6.2-RELEASE-p5 |
| 17. | makemake | 1 years, 3 months, 5 days | Linux 6.9.9-200.fc40.x86_64 |
| 18. | tauceti-e | 1 years, 2 months, 20 days | Linux 3.2.0-4-amd64 |
@@ -163,7 +163,7 @@
| 3. | alphacentauri | 6 years, 9 months, 13 days | FreeBSD 11.4-RELEASE-p7 |
| 4. | vulcan | 4 years, 5 months, 6 days | Linux 3.10.0-1160.81.1.el7.x86_64 |
| 5. | makemake | 4 years, 4 months, 7 days | Linux 6.9.9-200.fc40.x86_64 |
-| 6. | *earth | 4 years, 1 months, 20 days | Linux 6.15.9-201.fc42.x86_64 |
+| 6. | *earth | 4 years, 1 months, 21 days | Linux 6.15.9-201.fc42.x86_64 |
| 7. | sun | 3 years, 10 months, 2 days | FreeBSD 10.3-RELEASE-p24 |
| 8. | blowfish | 3 years, 5 months, 17 days | OpenBSD 7.6 |
| 9. | uugrn | 3 years, 5 months, 5 days | FreeBSD 11.2-RELEASE-p4 |
@@ -200,15 +200,15 @@
| 9. | *FreeBSD 14... | 80 |
| 10. | Darwin 13... | 40 |
| 11. | Darwin 23... | 30 |
-| 12. | *Darwin 24... | 25 |
-| 13. | FreeBSD 5... | 25 |
+| 12. | FreeBSD 5... | 25 |
+| 13. | *Darwin 24... | 25 |
| 14. | Linux 2... | 22 |
| 15. | Darwin 21... | 17 |
| 16. | Darwin 15... | 15 |
| 17. | Darwin 22... | 12 |
| 18. | Darwin 18... | 11 |
| 19. | OpenBSD 4... | 10 |
-| 20. | FreeBSD 6... | 10 |
+| 20. | FreeBSD 7... | 10 |
+-----+----------------+-------+
</pre>
<br />
@@ -224,7 +224,7 @@
| 2. | OpenBSD 7... | 6 years, 9 months, 24 days |
| 3. | FreeBSD 10... | 5 years, 9 months, 9 days |
| 4. | Linux 5... | 4 years, 10 months, 21 days |
-| 5. | *Linux 6... | 2 years, 10 months, 29 days |
+| 5. | *Linux 6... | 2 years, 10 months, 31 days |
| 6. | Linux 4... | 2 years, 7 months, 22 days |
| 7. | FreeBSD 11... | 2 years, 4 months, 28 days |
| 8. | Linux 2... | 1 years, 11 months, 21 days |
@@ -234,7 +234,7 @@
| 12. | Darwin 23... | 0 years, 11 months, 9 days |
| 13. | OpenBSD 4... | 0 years, 8 months, 12 days |
| 14. | Darwin 21... | 0 years, 8 months, 2 days |
-| 15. | *Darwin 24... | 0 years, 7 months, 11 days |
+| 15. | *Darwin 24... | 0 years, 7 months, 12 days |
| 16. | Darwin 18... | 0 years, 7 months, 5 days |
| 17. | Darwin 22... | 0 years, 6 months, 22 days |
| 18. | Darwin 15... | 0 years, 6 months, 15 days |
@@ -298,7 +298,7 @@
+-----+------------+------------------------------+
| Pos | KernelName | Uptime |
+-----+------------+------------------------------+
-| 1. | *Linux | 27 years, 11 months, 21 days |
+| 1. | *Linux | 27 years, 11 months, 23 days |
| 2. | *FreeBSD | 11 years, 7 months, 30 days |
| 3. | OpenBSD | 7 years, 5 months, 5 days |
| 4. | *Darwin | 4 years, 10 months, 29 days |
@@ -314,7 +314,7 @@
+-----+------------+-------+
| Pos | KernelName | Score |
+-----+------------+-------+
-| 1. | *Linux | 1855 |
+| 1. | *Linux | 1856 |
| 2. | *FreeBSD | 814 |
| 3. | OpenBSD | 472 |
| 4. | *Darwin | 320 |