summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--about/index.html4
-rw-r--r--about/resources.html189
-rw-r--r--about/showcase.html499
-rw-r--r--about/showcase/debroid/image-1.png135
-rw-r--r--about/technical-books.txt1
-rw-r--r--gemfeed/atom.xml4
-rw-r--r--index.html2
-rw-r--r--uptime-stats.html52
8 files changed, 454 insertions, 432 deletions
diff --git a/about/index.html b/about/index.html
index 3bea1d36..d4f75a84 100644
--- a/about/index.html
+++ b/about/index.html
@@ -46,16 +46,16 @@
<h3 style='display: inline' id='books-i-am-currently-reading'>Books I am currently reading</h3><br />
<br />
<ul>
-<li>Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook</li>
+<li>Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook</li>
<li>Okular; Alastair Reynolds; eBook</li>
<li>The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook</li>
</ul><br />
<h3 style='display: inline' id='unread-books-already-in-my-shelf'>Unread books already in my shelf</h3><br />
<br />
<ul>
-<li>Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook</li>
<li>Inhibitor Phase; Alastair Reynolds; Audiobook</li>
<li>A Fire Upon the Deep (german: Ein Feuer auf der Tiefe); Vernor Vinge; eBook</li>
+<li>Senior Engineer Mindset; Swizec Teller</li>
</ul><br />
<h3 style='display: inline' id='books-i-ve-read'>Books I&#39;ve read</h3><br />
<br />
diff --git a/about/resources.html b/about/resources.html
index bd943e47..17c89e75 100644
--- a/about/resources.html
+++ b/about/resources.html
@@ -50,108 +50,109 @@
<span>In random order:</span><br />
<br />
<ul>
-<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>Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf</li>
<li>Developing Games in Java; David Brackeen and others...; New Riders</li>
-<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li>
<li>Concurrency in Go; Katherine Cox-Buday; O&#39;Reilly</li>
-<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O&#39;Reilly</li>
-<li>Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall &amp; Jon Orwant; O&#39;Reilly</li>
-<li>DNS and BIND; Cricket Liu; O&#39;Reilly</li>
-<li>Effective Java; Joshua Bloch; Addison-Wesley Professional</li>
-<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li>
-<li>Pro Puppet; James Turnbull, Jeffrey McCune; Apress</li>
-<li>The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible</li>
-<li>C++ Programming Language; Bjarne Stroustrup;</li>
<li>Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson</li>
+<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li>
+<li>Modern Perl; Chromatic ; Onyx Neon Press</li>
+<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</li>
+<li>The Pragmatic Programmer; David Thomas; Addison-Wesley</li>
+<li>Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press</li>
+<li>Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook</li>
<li>The Kubernetes Book; Nigel Poulton; Unabridged Audiobook</li>
+<li>C++ Programming Language; Bjarne Stroustrup;</li>
+<li>Pro Puppet; James Turnbull, Jeffrey McCune; Apress</li>
<li>Raku Fundamentals; Moritz Lenz; Apress</li>
-<li>Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press</li>
-<li>Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications</li>
+<li>The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton</li>
+<li>Java ist auch eine Insel; Christian Ullenboom; </li>
+<li>Effective Java; Joshua Bloch; Addison-Wesley Professional</li>
+<li>Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall &amp; Jon Orwant; O&#39;Reilly</li>
<li>Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O&#39;Reilly</li>
+<li>Raku Recipes; J.J. Merelo; Apress</li>
+<li>Terraform Cookbook; Mikael Krief; Packt Publishing</li>
<li>Ultimate Go Notebook; Bill Kennedy</li>
-<li>The Pragmatic Programmer; David Thomas; Addison-Wesley</li>
-<li>Java ist auch eine Insel; Christian Ullenboom; </li>
-<li>Funktionale Programmierung; Peter Pepper; Springer</li>
-<li>Leanring eBPF; Liz Rice; O&#39;Reilly</li>
-<li>Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf</li>
+<li>The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible</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>Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O&#39;Reilly</li>
+<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li>
<li>Systemprogrammierung in Go; Frank Müller; dpunkt</li>
-<li>Raku Recipes; J.J. Merelo; Apress</li>
+<li>Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers </li>
+<li>Polished Ruby Programming; Jeremy Evans; Packt Publishing</li>
+<li>DNS and BIND; Cricket Liu; O&#39;Reilly</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>Leanring eBPF; Liz Rice; O&#39;Reilly</li>
+<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li>
<li>97 things every SRE should know; Emil Stolarsky, Jaime Woo; O&#39;Reilly</li>
-<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li>
-<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li>
+<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li>
+<li>Funktionale Programmierung; Peter Pepper; Springer</li>
+<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O&#39;Reilly</li>
<li>Higher Order Perl; Mark Dominus; Morgan Kaufmann</li>
-<li>Modern Perl; Chromatic ; Onyx Neon Press</li>
-<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</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>Data Science at the Command Line; Jeroen Janssens; O&#39;Reilly</li>
-<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O&#39;Reilly</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>Terraform Cookbook; Mikael Krief; Packt Publishing</li>
<li>The Docker Book; James Turnbull; Kindle</li>
<li>Site Reliability Engineering; How Google runs production systems; O&#39;Reilly</li>
-<li>21st Century C: C Tips from the New School; Ben Klemens; O&#39;Reilly</li>
-<li>Polished Ruby Programming; Jeremy Evans; Packt Publishing</li>
-<li>The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton</li>
-<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li>
-<li>Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press</li>
+<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li>
+<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O&#39;Reilly</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>The Linux Programming Interface; Michael Kerrisk; No Starch Press </li>
-<li>Implementing Service Level Objectives; Alex Hidalgo; O&#39;Reilly</li>
-<li>Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley</li>
<li>Go: Design Patterns for Real-World Projects; Mat Ryer; Packt</li>
-<li>Groovy Kurz &amp; Gut; Joerg Staudemeier; O&#39;Reilly</li>
<li>Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O&#39;Reilly</li>
-<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</li>
<li>Relayd and Httpd Mastery; Michael W Lucas</li>
+<li>Groovy Kurz &amp; Gut; Joerg Staudemeier; O&#39;Reilly</li>
+<li>Implementing Service Level Objectives; Alex Hidalgo; O&#39;Reilly</li>
+<li>The Linux Programming Interface; Michael Kerrisk; No Starch Press </li>
+<li>Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley</li>
+<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</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 Bullet Journal Method; Ryder Carroll; Fourth Estate</li>
<li>Deep Work; Cal Newport; Piatkus</li>
-<li>Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)</li>
-<li>Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook</li>
-<li>Soft Skills; John Sommez; Manning Publications</li>
-<li>Eat That Frog!; Brian Tracy; Hodder Paperbacks</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>Never Split the Difference; Chris Voss, Tahl Raz; Random House Business</li>
+<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li>
+<li>The Complete Software Developer&#39;s Career Guide; John Sonmez; Unabridged Audiobook</li>
<li>The Good Enough Job; Simone Stolzoff; Ebury Edge</li>
-<li>Psycho-Cybernetics; Maxwell Maltz; Perigee Books</li>
-<li>The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd</li>
<li>Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing</li>
+<li>Influence without Authority; A. Cohen, D. Bradford; Wiley</li>
+<li>The Power of Now; Eckhard Tolle; Yellow Kite</li>
+<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li>
+<li>Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)</li>
+<li>Meditation for Mortals, Oliver Burkeman, Audiobook</li>
+<li>Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook</li>
<li>The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)</li>
-<li>Ultralearning; Scott Young; Thorsons</li>
+<li>Soft Skills; John Sommez; Manning Publications</li>
+<li>Atomic Habits; James Clear; Random House Business</li>
<li>101 Essays that change the way you think; Brianna Wiest; Audiobook</li>
-<li>Meditation for Mortals, Oliver Burkeman, Audiobook</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>97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook</li>
-<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li>
-<li>Slow Productivity; Cal Newport; Penguin Random House</li>
-<li>The Complete Software Developer&#39;s Career Guide; John Sonmez; Unabridged Audiobook</li>
+<li>Eat That Frog!; Brian Tracy; Hodder Paperbacks</li>
+<li>Digital Minimalism; Cal Newport; Portofolio Penguin</li>
<li>Stop starting, start finishing; Arne Roock; Lean-Kanban University </li>
-<li>So Good They Can&#39;t Ignore You; Cal Newport; Business Plus</li>
+<li>Slow Productivity; Cal Newport; Penguin Random House</li>
<li>Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook</li>
+<li>97 Things Every Engineering Manager Should Know; Camille Fournier; 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 Bullet Journal Method; Ryder Carroll; Fourth Estate</li>
<li>Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion</li>
-<li>Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press</li>
-<li>Ultralearning; Anna Laurent; Self-published via Amazon</li>
-<li>Digital Minimalism; Cal Newport; Portofolio Penguin</li>
-<li>Atomic Habits; James Clear; Random House Business</li>
-<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li>
+<li>The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd</li>
<li>Eat That Frog; Brian Tracy</li>
-<li>The Power of Now; Eckhard Tolle; Yellow Kite</li>
-<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon &amp; Schuster UK</li>
+<li>The Joy of Missing Out; Christina Crook; New Society Publishers</li>
<li>Getting Things Done; David Allen</li>
+<li>Time Management for System Administrators; Thomas A. Limoncelli; O&#39;Reilly</li>
+<li>So Good They Can&#39;t Ignore You; Cal Newport; Business Plus</li>
+<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon &amp; Schuster UK</li>
+<li>Ultralearning; Anna Laurent; Self-published via Amazon</li>
+<li>Psycho-Cybernetics; Maxwell Maltz; Perigee Books</li>
+<li>Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press</li>
+<li>Ultralearning; Scott Young; Thorsons</li>
</ul><br />
<a class='textlink' href='../notes/index.html'>Here are notes of mine for some of the books</a><br />
<br />
@@ -160,30 +161,30 @@
<span>Some of these were in-person with exams; others were online learning lectures only. In random order:</span><br />
<br />
<ul>
-<li>Functional programming lecture; Remote University of Hagen</li>
-<li>The Ultimate Kubernetes Bootcamp; School of Devops; O&#39;Reilly Online</li>
+<li>Algorithms Video Lectures; Robert Sedgewick; 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>Ultimate Go Programming; Bill Kennedy; O&#39;Reilly Online</li>
-<li>Apache Tomcat Best Practises; 3-day on-site training</li>
-<li>AWS Immersion Day; Amazon; 1-day interactive online training </li>
-<li>Protocol buffers; O&#39;Reilly Online</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>Structure and Interpretation of Computer Programs; Harold Abelson and more...; </li>
-<li>F5 Loadbalancers Training; 2-day on-site training; F5, Inc. </li>
-<li>Developing IaC with Terraform (with Live Lessons); O&#39;Reilly Online</li>
-<li>Algorithms Video Lectures; Robert Sedgewick; O&#39;Reilly Online</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>The Ultimate Kubernetes Bootcamp; School of Devops; O&#39;Reilly Online</li>
+<li>AWS Immersion Day; Amazon; 1-day interactive online training </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>Scripting Vim; Damian Conway; O&#39;Reilly Online</li>
+<li>Protocol buffers; O&#39;Reilly Online</li>
<li>Linux Security and Isolation APIs Training; Michael Kerrisk; 3-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>Structure and Interpretation of Computer Programs; Harold Abelson and more...; </li>
+<li>Functional programming lecture; Remote University of Hagen</li>
+<li>Apache Tomcat Best Practises; 3-day on-site training</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>Advanced Bash-Scripting Guide </li>
<li>How CPUs work at https://cpu.land</li>
+<li>Advanced Bash-Scripting Guide </li>
<li>Raku Guide at https://raku.guide </li>
</ul><br />
<h2 style='display: inline' id='podcasts'>Podcasts</h2><br />
@@ -193,59 +194,59 @@
<span>In random order:</span><br />
<br />
<ul>
-<li>Fallthrough [Golang]</li>
-<li>The Pragmatic Engineer Podcast</li>
-<li>Hidden Brain</li>
-<li>Fork Around And Find Out</li>
-<li>The Changelog Podcast(s)</li>
<li>Maintainable</li>
-<li>The ProdCast (Google SRE Podcast)</li>
-<li>BSD Now [BSD]</li>
<li>Pratical AI</li>
-<li>Cup o&#39; Go [Golang]</li>
+<li>Fork Around And Find Out</li>
+<li>Fallthrough [Golang]</li>
<li>Backend Banter</li>
-<li>Dev Interrupted</li>
+<li>The ProdCast (Google SRE Podcast)</li>
+<li>Hidden Brain</li>
+<li>The Pragmatic Engineer Podcast</li>
<li>Modern Mentor</li>
+<li>Cup o&#39; Go [Golang]</li>
+<li>Dev Interrupted</li>
+<li>The Changelog Podcast(s)</li>
<li>Deep Questions with Cal Newport</li>
+<li>BSD Now [BSD]</li>
</ul><br />
<h3 style='display: inline' id='podcasts-i-liked'>Podcasts I liked</h3><br />
<br />
<span>I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.</span><br />
<br />
<ul>
+<li>Ship It (predecessor of Fork Around And Find Out)</li>
+<li>Modern Mentor</li>
+<li>CRE: Chaosradio Express [german]</li>
<li>Java Pub House</li>
<li>Go Time (predecessor of fallthrough)</li>
<li>FLOSS weekly</li>
-<li>Ship It (predecessor of Fork Around And Find Out)</li>
-<li>CRE: Chaosradio Express [german]</li>
-<li>Modern Mentor</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>VK Newsletter</li>
+<li>The Imperfectionist</li>
<li>Changelog News</li>
-<li>The Valuable Dev</li>
-<li>Golang Weekly</li>
+<li>VK Newsletter</li>
<li>The Pragmatic Engineer</li>
+<li>Golang Weekly</li>
+<li>The Valuable Dev</li>
+<li>Applied Go Weekly Newsletter</li>
+<li>byteSizeGo</li>
<li>Register Spill</li>
<li>Ruby Weekly</li>
-<li>The Imperfectionist</li>
-<li>Monospace Mentor</li>
-<li>byteSizeGo</li>
<li>Andreas Brandhorst Newsletter (Sci-Fi author)</li>
+<li>Monospace Mentor</li>
</ul><br />
<h2 style='display: inline' id='magazines-i-liked'>Magazines I like(d)</h2><br />
<br />
<span>This is a mix of tech I like(d). I may not be a current subscriber, but now and then, I buy an issue. In random order:</span><br />
<br />
<ul>
-<li>Linux Magazine</li>
<li>Linux User</li>
<li>freeX (not published anymore)</li>
+<li>Linux Magazine</li>
<li>LWN (online only)</li>
</ul><br />
<h1 style='display: inline' id='formal-education'>Formal education</h1><br />
diff --git a/about/showcase.html b/about/showcase.html
index cee63c1f..366769e2 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-09-11</span><br />
+<span>Generated on: 2025-09-18</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 />
@@ -25,21 +25,22 @@
<li>⇢ <a href='#projects'>Projects</a></li>
<li>⇢ ⇢ <a href='#hexai'>hexai</a></li>
<li>⇢ ⇢ <a href='#conf'>conf</a></li>
+<li>⇢ ⇢ <a href='#foozone'>foo.zone</a></li>
<li>⇢ ⇢ <a href='#gitsyncer'>gitsyncer</a></li>
<li>⇢ ⇢ <a href='#totalrecall'>totalrecall</a></li>
+<li>⇢ ⇢ <a href='#dtail'>dtail</a></li>
<li>⇢ ⇢ <a href='#timr'>timr</a></li>
<li>⇢ ⇢ <a href='#tasksamurai'>tasksamurai</a></li>
<li>⇢ ⇢ <a href='#ior'>ior</a></li>
-<li>⇢ ⇢ <a href='#dtail'>dtail</a></li>
<li>⇢ ⇢ <a href='#foostats'>foostats</a></li>
<li>⇢ ⇢ <a href='#wireguardmeshgenerator'>wireguardmeshgenerator</a></li>
-<li>⇢ ⇢ <a href='#ds-sim'>ds-sim</a></li>
<li>⇢ ⇢ <a href='#gos'>gos</a></li>
+<li>⇢ ⇢ <a href='#ds-sim'>ds-sim</a></li>
<li>⇢ ⇢ <a href='#sillybench'>sillybench</a></li>
<li>⇢ ⇢ <a href='#rcm'>rcm</a></li>
<li>⇢ ⇢ <a href='#gemtexter'>gemtexter</a></li>
-<li>⇢ ⇢ <a href='#docker-radicale-server'>docker-radicale-server</a></li>
<li>⇢ ⇢ <a href='#quicklogger'>quicklogger</a></li>
+<li>⇢ ⇢ <a href='#docker-radicale-server'>docker-radicale-server</a></li>
<li>⇢ ⇢ <a href='#terraform'>terraform</a></li>
<li>⇢ ⇢ <a href='#gogios'>gogios</a></li>
<li>⇢ ⇢ <a href='#gorum'>gorum</a></li>
@@ -49,7 +50,6 @@
<li>⇢ ⇢ <a href='#photoalbum'>photoalbum</a></li>
<li>⇢ ⇢ <a href='#geheim'>geheim</a></li>
<li>⇢ ⇢ <a href='#algorithms'>algorithms</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>
@@ -64,30 +64,30 @@
<li>⇢ ⇢ <a href='#template'>template</a></li>
<li>⇢ ⇢ <a href='#muttdelay'>muttdelay</a></li>
<li>⇢ ⇢ <a href='#netdiff'>netdiff</a></li>
-<li>⇢ ⇢ <a href='#pwgrep'>pwgrep</a></li>
<li>⇢ ⇢ <a href='#japi'>japi</a></li>
<li>⇢ ⇢ <a href='#perl-poetry'>perl-poetry</a></li>
<li>⇢ ⇢ <a href='#ipv6test'>ipv6test</a></li>
<li>⇢ ⇢ <a href='#cpuinfo'>cpuinfo</a></li>
<li>⇢ ⇢ <a href='#loadbars'>loadbars</a></li>
+<li>⇢ ⇢ <a href='#pwgrep'>pwgrep</a></li>
<li>⇢ ⇢ <a href='#perldaemon'>perldaemon</a></li>
<li>⇢ ⇢ <a href='#awksite'>awksite</a></li>
<li>⇢ ⇢ <a href='#jsmstrade'>jsmstrade</a></li>
-<li>⇢ ⇢ <a href='#netcalendar'>netcalendar</a></li>
<li>⇢ ⇢ <a href='#ychat'>ychat</a></li>
-<li>⇢ ⇢ <a href='#hsbot'>hsbot</a></li>
+<li>⇢ ⇢ <a href='#netcalendar'>netcalendar</a></li>
<li>⇢ ⇢ <a href='#vs-sim'>vs-sim</a></li>
+<li>⇢ ⇢ <a href='#hsbot'>hsbot</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: 55</li>
-<li>📊 Total Commits: 11,028</li>
-<li>📈 Total Lines of Code: 284,649</li>
-<li>📄 Total Lines of Documentation: 23,038</li>
-<li>💻 Languages: Go (26.5%), Java (14.2%), C++ (13.1%), C/C++ (7.2%), C (6.7%), Perl (6.2%), CSS (6.1%), HTML (5.4%), Shell (5.2%), Python (2.3%), Config (1.7%), Ruby (1.0%), JSON (1.0%), HCL (1.0%), Make (0.7%), YAML (0.6%), Raku (0.3%), XML (0.2%), Haskell (0.2%), TOML (0.1%)</li>
-<li>📚 Documentation: Text (48.8%), Markdown (48.7%), LaTeX (2.5%)</li>
+<li>📊 Total Commits: 11,075</li>
+<li>📈 Total Lines of Code: 294,461</li>
+<li>📄 Total Lines of Documentation: 240,909</li>
+<li>💻 Languages: Go (28.5%), Java (18.6%), HTML (15.0%), C (6.4%), C++ (6.0%), Perl (5.6%), XML (4.8%), Shell (4.6%), C/C++ (4.2%), Config (1.2%), Ruby (1.0%), HCL (0.9%), YAML (0.6%), Python (0.6%), Make (0.5%), CSS (0.5%), Raku (0.3%), JSON (0.3%), Haskell (0.2%), TOML (0.1%)</li>
+<li>📚 Documentation: Text (92.8%), Markdown (5.8%), LaTeX (1.4%)</li>
<li>🎵 Vibe-Coded Projects: 4 out of 55 (7.3%)</li>
<li>🤖 AI-Assisted Projects (including vibe-coded): 10 out of 55 (18.2% AI-assisted, 81.8% human-only)</li>
<li>🚀 Release Status: 35 released, 20 experimental (63.6% with releases, 36.4% experimental)</li>
@@ -97,15 +97,15 @@
<h3 style='display: inline' id='hexai'>hexai</h3><br />
<br />
<ul>
-<li>💻 Languages: Go (66.6%), HTML (33.4%)</li>
+<li>💻 Languages: Go (66.1%), HTML (33.9%)</li>
<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 193</li>
-<li>📈 Lines of Code: 19021</li>
-<li>📄 Lines of Documentation: 369</li>
-<li>📅 Development Period: 2025-08-01 to 2025-09-08</li>
-<li>🔥 Recent Activity: 3.9 days (avg. age of last 42 commits)</li>
+<li>📊 Commits: 208</li>
+<li>📈 Lines of Code: 22125</li>
+<li>📄 Lines of Documentation: 546</li>
+<li>📅 Development Period: 2025-08-01 to 2025-09-17</li>
+<li>🔥 Recent Activity: 7.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
-<li>🏷️ Latest Release: v0.9.0 (2025-09-08)</li>
+<li>🏷️ Latest Release: v0.11.3 (2025-09-17)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
</ul><br />
<br />
@@ -123,13 +123,13 @@
<h3 style='display: inline' id='conf'>conf</h3><br />
<br />
<ul>
-<li>💻 Languages: Perl (31.4%), YAML (23.1%), Shell (23.0%), Config (5.6%), CSS (5.4%), TOML (4.8%), Ruby (4.1%), Lua (1.2%), Docker (0.7%), JSON (0.6%), INI (0.1%)</li>
+<li>💻 Languages: Perl (31.3%), Shell (23.2%), YAML (23.0%), Config (5.6%), CSS (5.4%), TOML (4.8%), Ruby (4.2%), Lua (1.2%), Docker (0.6%), JSON (0.5%)</li>
<li>📚 Documentation: Text (69.9%), Markdown (30.1%)</li>
-<li>📊 Commits: 980</li>
-<li>📈 Lines of Code: 5994</li>
+<li>📊 Commits: 995</li>
+<li>📈 Lines of Code: 6017</li>
<li>📄 Lines of Documentation: 1188</li>
-<li>📅 Development Period: 2021-12-28 to 2025-09-10</li>
-<li>🔥 Recent Activity: 16.6 days (avg. age of last 42 commits)</li>
+<li>📅 Development Period: 2021-12-28 to 2025-09-17</li>
+<li>🔥 Recent Activity: 12.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -142,6 +142,30 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='foozone'>foo.zone</h3><br />
+<br />
+<ul>
+<li>💻 Languages: HTML (70.5%), XML (28.8%), Shell (0.3%), CSS (0.2%), Go (0.1%)</li>
+<li>📚 Documentation: Text (75.5%), Markdown (24.5%)</li>
+<li>📊 Commits: 3072</li>
+<li>📈 Lines of Code: 46613</li>
+<li>📄 Lines of Documentation: 298</li>
+<li>📅 Development Period: 2021-04-29 to 2025-09-13</li>
+<li>🔥 Recent Activity: 42.0 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 project hosts the static files for the foo.zone website, which is accessible via both the Gemini protocol (gemini://foo.zone) and the web (https://foo.zone). The repository is organized with separate branches for each content format—such as Gemtext, HTML, and Markdown—allowing the site to be served in multiple formats tailored to different protocols and user preferences. This structure makes it easy to maintain and update content across platforms, ensuring consistency and flexibility.</span><br />
+<br />
+<span>The site is maintained using a suite of open-source tools, including Neovim for editing, GNU Bash for scripting, and ShellCheck for shell script linting. It is deployed on OpenBSD, utilizing the vger Gemini server (managed via relayd and inetd) for Gemini content and the native httpd server for the HTML site. Source code and hosting are managed through Codeberg. The static content is generated with the help of the gemtexter tool, which streamlines the process of converting and managing content in various formats. This architecture emphasizes simplicity, security, and portability, making it a robust solution for multi-protocol static site hosting.</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='gitsyncer'>gitsyncer</h3><br />
<br />
<ul>
@@ -151,7 +175,7 @@
<li>📈 Lines of Code: 10036</li>
<li>📄 Lines of Documentation: 2433</li>
<li>📅 Development Period: 2025-06-23 to 2025-09-08</li>
-<li>🔥 Recent Activity: 48.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 55.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: BSD-2-Clause</li>
<li>🏷️ Latest Release: v0.9.2 (2025-09-08)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -175,7 +199,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: 50.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 58.3 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>
@@ -196,6 +220,34 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='dtail'>dtail</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Go (91.0%), Shell (4.1%), JSON (2.1%), C (1.4%), Make (0.9%), C/C++ (0.2%), Config (0.1%)</li>
+<li>📚 Documentation: Text (98.3%), Markdown (1.7%)</li>
+<li>📊 Commits: 1046</li>
+<li>📈 Lines of Code: 27726</li>
+<li>📄 Lines of Documentation: 220214</li>
+<li>📅 Development Period: 2020-01-09 to 2025-07-04</li>
+<li>🔥 Recent Activity: 78.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>
+</ul><br />
+<br />
+<a href='showcase/dtail/image-1.png'><img alt='dtail screenshot' title='dtail screenshot' src='showcase/dtail/image-1.png' /></a><br />
+<br />
+<span>DTail is an open-source distributed log management tool designed for DevOps engineers to efficiently tail, cat, and grep log files across thousands of servers simultaneously. Written in Go, it supports advanced features such as on-the-fly decompression (gzip, zstd) and distributed MapReduce-style aggregations, making it highly useful for large-scale log analysis and troubleshooting in complex environments. By leveraging SSH for secure communication and adhering to UNIX file permission models, DTail ensures both security and compatibility with existing infrastructure.</span><br />
+<br />
+<a href='showcase/dtail/image-2.gif'><img alt='dtail screenshot' title='dtail screenshot' src='showcase/dtail/image-2.gif' /></a><br />
+<br />
+<span>The architecture consists of a client-server model: DTail servers run on each target machine, while a DTail client—typically on an engineer’s workstation—connects to all servers concurrently to aggregate and process logs in real time. This design enables scalable, parallel log operations and can be extended to a serverless mode for added flexibility. DTail’s implementation emphasizes performance, security, and ease of use, making it a valuable tool for organizations needing to monitor and analyze distributed logs efficiently.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/dtail'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/dtail'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='timr'>timr</h3><br />
<br />
<ul>
@@ -205,7 +257,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: 74.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 82.2 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>
@@ -231,7 +283,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: 76.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 84.0 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>
@@ -259,7 +311,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: 114.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 122.0 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>
@@ -278,34 +330,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='dtail'>dtail</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Go (93.9%), JSON (2.8%), C (2.0%), Make (0.5%), C/C++ (0.3%), Config (0.2%), Shell (0.2%), Docker (0.1%)</li>
-<li>📚 Documentation: Text (79.4%), Markdown (20.6%)</li>
-<li>📊 Commits: 1046</li>
-<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: 116.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>
-</ul><br />
-<br />
-<a href='showcase/dtail/image-1.png'><img alt='dtail screenshot' title='dtail screenshot' src='showcase/dtail/image-1.png' /></a><br />
-<br />
-<span>DTail is an open-source distributed log management tool designed for DevOps engineers to efficiently tail, cat, and grep log files across thousands of servers simultaneously. Written in Go, it supports advanced features such as on-the-fly decompression (gzip, zstd) and distributed MapReduce-style aggregations, making it highly useful for large-scale log analysis and troubleshooting in complex environments. By leveraging SSH for secure communication and adhering to UNIX file permission models, DTail ensures both security and compatibility with existing infrastructure.</span><br />
-<br />
-<a href='showcase/dtail/image-2.gif'><img alt='dtail screenshot' title='dtail screenshot' src='showcase/dtail/image-2.gif' /></a><br />
-<br />
-<span>The architecture consists of a client-server model: DTail servers run on each target machine, while a DTail client—typically on an engineer’s workstation—connects to all servers concurrently to aggregate and process logs in real time. This design enables scalable, parallel log operations and can be extended to a serverless mode for added flexibility. DTail’s implementation emphasizes performance, security, and ease of use, making it a valuable tool for organizations needing to monitor and analyze distributed logs efficiently.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/dtail'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/dtail'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='foostats'>foostats</h3><br />
<br />
<ul>
@@ -315,7 +339,7 @@
<li>📈 Lines of Code: 1887</li>
<li>📄 Lines of Documentation: 240</li>
<li>📅 Development Period: 2023-01-02 to 2025-09-03</li>
-<li>🔥 Recent Activity: 120.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 128.2 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 />
@@ -338,7 +362,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: 135.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 142.9 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 />
@@ -352,6 +376,33 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='gos'>gos</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Go (98.6%), YAML (1.1%), JSON (0.3%)</li>
+<li>📚 Documentation: Markdown (100.0%)</li>
+<li>📊 Commits: 389</li>
+<li>📈 Lines of Code: 3996</li>
+<li>📄 Lines of Documentation: 352</li>
+<li>📅 Development Period: 2024-05-04 to 2025-09-16</li>
+<li>🔥 Recent Activity: 146.8 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: Custom License</li>
+<li>🏷️ Latest Release: v1.1.0 (2025-09-16)</li>
+</ul><br />
+<br />
+<a href='showcase/gos/image-1.png'><img alt='gos screenshot' title='gos screenshot' src='showcase/gos/image-1.png' /></a><br />
+<br />
+<span>**Gos (Go Social Media)** is a command-line tool written in Go that serves as a self-hosted, scriptable alternative to Buffer.com for scheduling and managing social media posts. Designed for users who prefer automation, privacy, and control, Gos enables posting to Mastodon and LinkedIn (with OAuth2 authentication for LinkedIn) directly from the terminal. It supports features like dry-run mode for safe testing, flexible configuration via flags and environment variables, image previews for LinkedIn, and a pseudo-platform ("Noop") for tracking posts without publishing. Gos is particularly useful for developers, power users, or anyone who wants to automate their social media workflow, avoid third-party service limitations, and integrate posting into their own scripts or shell startup routines.</span><br />
+<br />
+<a href='showcase/gos/image-2.png'><img alt='gos screenshot' title='gos screenshot' src='showcase/gos/image-2.png' /></a><br />
+<br />
+<span>**Architecturally**, Gos operates on a file-based queueing system: users compose posts as text files (optionally using the companion <span class='inlinecode'>gosc</span> composer tool) in a designated directory. Posts are tagged via filenames or inline tags to control target platforms, priorities, and behaviors (e.g., immediate posting, pausing, or requiring confirmation). When Gos runs, it processes these files, moves them through platform-specific queues, and posts them according to user-defined cadence, priorities, and pause intervals. The configuration is managed via a JSON file storing API credentials and scheduling preferences. Gos also supports generating Gemini Gemtext summaries of posted content for blogging or archival purposes. The system is highly scriptable, easy to integrate into automated workflows, and can be synced or backed up using tools like Syncthing, making it a robust, extensible solution for personal or small-team social media management.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/gos'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/gos'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='ds-sim'>ds-sim</h3><br />
<br />
<ul>
@@ -361,7 +412,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: 148.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 156.2 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>
@@ -378,33 +429,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='gos'>gos</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Go (98.6%), YAML (1.1%), JSON (0.2%)</li>
-<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 387</li>
-<li>📈 Lines of Code: 3978</li>
-<li>📄 Lines of Documentation: 342</li>
-<li>📅 Development Period: 2024-05-04 to 2025-09-07</li>
-<li>🔥 Recent Activity: 149.7 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: Custom License</li>
-<li>🏷️ Latest Release: v1.0.3 (2025-09-07)</li>
-</ul><br />
-<br />
-<a href='showcase/gos/image-1.png'><img alt='gos screenshot' title='gos screenshot' src='showcase/gos/image-1.png' /></a><br />
-<br />
-<span>**Gos (Go Social Media)** is a command-line tool written in Go that serves as a self-hosted, scriptable alternative to Buffer.com for scheduling and managing social media posts. Designed for users who prefer automation, privacy, and control, Gos enables posting to Mastodon and LinkedIn (with OAuth2 authentication for LinkedIn) directly from the terminal. It supports features like dry-run mode for safe testing, flexible configuration via flags and environment variables, image previews for LinkedIn, and a pseudo-platform ("Noop") for tracking posts without publishing. Gos is particularly useful for developers, power users, or anyone who wants to automate their social media workflow, avoid third-party service limitations, and integrate posting into their own scripts or shell startup routines.</span><br />
-<br />
-<a href='showcase/gos/image-2.png'><img alt='gos screenshot' title='gos screenshot' src='showcase/gos/image-2.png' /></a><br />
-<br />
-<span>**Architecturally**, Gos operates on a file-based queueing system: users compose posts as text files (optionally using the companion <span class='inlinecode'>gosc</span> composer tool) in a designated directory. Posts are tagged via filenames or inline tags to control target platforms, priorities, and behaviors (e.g., immediate posting, pausing, or requiring confirmation). When Gos runs, it processes these files, moves them through platform-specific queues, and posts them according to user-defined cadence, priorities, and pause intervals. The configuration is managed via a JSON file storing API credentials and scheduling preferences. Gos also supports generating Gemini Gemtext summaries of posted content for blogging or archival purposes. The system is highly scriptable, easy to integrate into automated workflows, and can be synced or backed up using tools like Syncthing, making it a robust, extensible solution for personal or small-team social media management.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/gos'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/gos'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='sillybench'>sillybench</h3><br />
<br />
<ul>
@@ -414,7 +438,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: 161.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 168.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -437,7 +461,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: 202.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 209.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -454,16 +478,15 @@
<h3 style='display: inline' id='gemtexter'>gemtexter</h3><br />
<br />
<ul>
-<li>💻 Languages: CSS (55.3%), Python (16.1%), HTML (15.3%), JSON (6.6%), Shell (5.3%), Config (1.5%)</li>
-<li>📚 Documentation: Text (70.2%), Markdown (29.8%)</li>
+<li>💻 Languages: Shell (68.3%), CSS (28.4%), Config (1.9%), HTML (1.3%)</li>
+<li>📚 Documentation: Text (76.1%), Markdown (23.9%)</li>
<li>📊 Commits: 466</li>
-<li>📈 Lines of Code: 30319</li>
-<li>📄 Lines of Documentation: 1280</li>
-<li>📅 Development Period: 2021-05-21 to 2025-06-22</li>
-<li>🔥 Recent Activity: 266.0 days (avg. age of last 42 commits)</li>
+<li>📈 Lines of Code: 2285</li>
+<li>📄 Lines of Documentation: 1180</li>
+<li>📅 Development Period: 2021-05-21 to 2025-08-31</li>
+<li>🔥 Recent Activity: 254.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-3.0</li>
<li>🏷️ Latest Release: 3.0.0 (2024-10-01)</li>
-<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
</ul><br />
<br />
<span>**Summary of the Gemtexter Project**</span><br />
@@ -477,6 +500,33 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='quicklogger'>quicklogger</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Go (96.1%), XML (1.9%), Shell (1.2%), TOML (0.7%)</li>
+<li>📚 Documentation: Markdown (100.0%)</li>
+<li>📊 Commits: 35</li>
+<li>📈 Lines of Code: 1133</li>
+<li>📄 Lines of Documentation: 78</li>
+<li>📅 Development Period: 2024-01-20 to 2025-09-13</li>
+<li>🔥 Recent Activity: 475.4 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: MIT</li>
+<li>🏷️ Latest Release: v0.0.4 (2025-09-13)</li>
+</ul><br />
+<br />
+<a href='showcase/quicklogger/image-1.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-1.png' /></a><br />
+<br />
+<span>Quick Logger is a lightweight graphical application designed for quickly capturing and saving ideas or notes as plain text files, primarily targeting Android devices but also runnable on Linux desktops. Built with the Go programming language and the Fyne GUI framework, the app provides a simple interface where users can enter a message, which is then saved to a designated folder. This folder can be synchronized across devices using tools like Syncthing, ensuring that notes taken on a mobile device are automatically available on a home computer.</span><br />
+<br />
+<a href='showcase/quicklogger/image-2.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-2.png' /></a><br />
+<br />
+<span>The project’s key features include its minimalistic design, cross-platform compatibility (Android and Linux), and seamless integration with file synchronization workflows. Architecturally, Quick Logger leverages Fyne for its user interface, enabling a consistent look and feel across platforms, and uses Go’s standard library for file operations. The build process supports both direct compilation and containerized cross-compilation (using fyne-cross and Podman/Docker), making it accessible to developers on different systems. This combination of simplicity, portability, and easy synchronization makes Quick Logger a practical tool for quickly jotting down ideas on the go.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/quicklogger'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/quicklogger'>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>
@@ -486,7 +536,7 @@
<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: 501.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 509.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -500,33 +550,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='quicklogger'>quicklogger</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Go (97.6%), Shell (1.5%), TOML (0.9%)</li>
-<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 32</li>
-<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: 512.0 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: MIT</li>
-<li>🏷️ Latest Release: v0.0.3 (2025-07-06)</li>
-</ul><br />
-<br />
-<a href='showcase/quicklogger/image-1.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-1.png' /></a><br />
-<br />
-<span>Quick Logger is a lightweight graphical application designed for quickly capturing and saving ideas or notes as plain text files, primarily targeting Android devices but also runnable on Linux desktops. Built with the Go programming language and the Fyne GUI framework, the app provides a simple interface where users can enter a message, which is then saved to a designated folder. This folder can be synchronized across devices using tools like Syncthing, ensuring that notes taken on a mobile device are automatically available on a home computer.</span><br />
-<br />
-<a href='showcase/quicklogger/image-2.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-2.png' /></a><br />
-<br />
-<span>The project’s key features include its minimalistic design, cross-platform compatibility (Android and Linux), and seamless integration with file synchronization workflows. Architecturally, Quick Logger leverages Fyne for its user interface, enabling a consistent look and feel across platforms, and uses Go’s standard library for file operations. The build process supports both direct compilation and containerized cross-compilation (using fyne-cross and Podman/Docker), making it accessible to developers on different systems. This combination of simplicity, portability, and easy synchronization makes Quick Logger a practical tool for quickly jotting down ideas on the go.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/quicklogger'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/quicklogger'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='terraform'>terraform</h3><br />
<br />
<ul>
@@ -536,7 +559,7 @@
<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: 537.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 545.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -559,7 +582,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: 578.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 586.2 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>
@@ -585,7 +608,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: 764.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 772.2 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -609,7 +632,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: 814.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 822.3 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 />
@@ -632,7 +655,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: 829.5 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 837.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -656,7 +679,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: 1123.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1130.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-3.0</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -679,7 +702,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: 1342.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1350.1 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 />
@@ -705,7 +728,7 @@
<li>📈 Lines of Code: 671</li>
<li>📄 Lines of Documentation: 26</li>
<li>📅 Development Period: 2018-05-26 to 2025-09-04</li>
-<li>🔥 Recent Activity: 1437.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1444.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -732,7 +755,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: 1493.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1501.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -747,29 +770,6 @@
<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: 3060</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: 1509.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 project hosts the static files for the foo.zone website, which is accessible via both the Gemini protocol (gemini://foo.zone) and the web (https://foo.zone). The repository is organized with separate branches for each content format—such as Gemtext, HTML, and Markdown—allowing the site to be served in multiple formats tailored to different protocols and user preferences. This structure makes it easy to maintain and update content across platforms, ensuring consistency and flexibility.</span><br />
-<br />
-<span>The site is maintained using a suite of open-source tools, including Neovim for editing, GNU Bash for scripting, and ShellCheck for shell script linting. It is deployed on OpenBSD, utilizing the vger Gemini server (managed via relayd and inetd) for Gemini content and the native httpd server for the HTML site. Source code and hosting are managed through Codeberg. The static content is generated with the help of the gemtexter tool, which streamlines the process of converting and managing content in various formats. This architecture emphasizes simplicity, security, and portability, making it a robust solution for multi-protocol static site hosting.</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>
@@ -779,7 +779,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: 1974.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1982.2 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -801,7 +801,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: 2516.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 2523.7 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 />
@@ -827,7 +827,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: 3025.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3032.4 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 />
@@ -851,7 +851,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: 3260.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3268.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -882,7 +882,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: 3527.5 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3535.0 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 />
@@ -910,7 +910,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: 3531.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3539.2 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 +940,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: 3611.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3618.8 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 />
@@ -968,7 +968,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: 3622.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3629.5 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 />
@@ -990,7 +990,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: 3677.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3685.2 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 />
@@ -1014,7 +1014,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: 3725.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3733.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1040,7 +1040,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: 4003.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4011.3 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 />
@@ -1068,7 +1068,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: 4058.2 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4065.7 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 />
@@ -1092,7 +1092,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: 4071.2 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4078.7 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 />
@@ -1120,7 +1120,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: 4078.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4086.2 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 />
@@ -1137,30 +1137,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='pwgrep'>pwgrep</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Shell (85.0%), Make (15.0%)</li>
-<li>📚 Documentation: Text (80.8%), Markdown (19.2%)</li>
-<li>📊 Commits: 142</li>
-<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: 4122.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 />
-<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>**pwgrep** is a lightweight password manager designed for Unix-like systems, implemented primarily in Bash and GNU AWK. It securely stores and retrieves passwords by encrypting them with GPG (GNU Privacy Guard), ensuring that sensitive information remains protected. Version control for password files is handled using an RCS (Revision Control System) such as Git, allowing users to track changes, revert to previous versions, and maintain an audit trail of password updates. This approach leverages familiar command-line tools, making it accessible to users comfortable with shell environments.</span><br />
-<br />
-<span>The core features of pwgrep include encrypted password storage, easy retrieval and search functionality (using AWK for pattern matching), and robust version control integration. The architecture is modular and script-based: Bash scripts orchestrate user interactions and file management, AWK handles efficient searching within password files, GPG provides encryption/decryption, and Git (or another RCS) manages version history. This combination offers a secure, auditable, and scriptable solution for password management without relying on heavyweight external applications or GUIs.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/pwgrep'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/pwgrep'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='japi'>japi</h3><br />
<br />
<ul>
@@ -1170,7 +1146,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: 4127.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4134.5 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 />
@@ -1196,7 +1172,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: 4188.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4195.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1218,7 +1194,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: 4268.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4275.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1242,7 +1218,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: 4309.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4316.5 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 />
@@ -1266,7 +1242,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: 4339.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4346.6 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 />
@@ -1279,6 +1255,30 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='pwgrep'>pwgrep</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Shell (85.0%), Make (15.0%)</li>
+<li>📚 Documentation: Text (72.4%), Markdown (27.6%)</li>
+<li>📊 Commits: 142</li>
+<li>📈 Lines of Code: 493</li>
+<li>📄 Lines of Documentation: 29</li>
+<li>📅 Development Period: 2009-09-27 to 2015-05-23</li>
+<li>🔥 Recent Activity: 4360.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 />
+<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>**pwgrep** is a lightweight password manager designed for Unix-like systems, implemented primarily in Bash and GNU AWK. It securely stores and retrieves passwords by encrypting them with GPG (GNU Privacy Guard), ensuring that sensitive information remains protected. Version control for password files is handled using an RCS (Revision Control System) such as Git, allowing users to track changes, revert to previous versions, and maintain an audit trail of password updates. This approach leverages familiar command-line tools, making it accessible to users comfortable with shell environments.</span><br />
+<br />
+<span>The core features of pwgrep include encrypted password storage, easy retrieval and search functionality (using AWK for pattern matching), and robust version control integration. The architecture is modular and script-based: Bash scripts orchestrate user interactions and file management, AWK handles efficient searching within password files, GPG provides encryption/decryption, and Git (or another RCS) manages version history. This combination offers a secure, auditable, and scriptable solution for password management without relying on heavyweight external applications or GUIs.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/pwgrep'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/pwgrep'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='perldaemon'>perldaemon</h3><br />
<br />
<ul>
@@ -1286,7 +1286,7 @@
<li>📊 Commits: 110</li>
<li>📈 Lines of Code: 614</li>
<li>📅 Development Period: 2011-02-05 to 2022-04-21</li>
-<li>🔥 Recent Activity: 4388.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4396.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.4 (2022-04-29)</li>
</ul><br />
@@ -1312,7 +1312,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: 4719.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4727.1 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 />
@@ -1336,7 +1336,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: 4782.2 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4789.7 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v0.3 (2009-02-08)</li>
</ul><br />
@@ -1353,6 +1353,30 @@
<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: 5344.6 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>**yChat** is a free, open-source, HTTP-based chat server written in C++ that allows users to communicate in real time using only a standard web browser—no special client software is required. Designed for portability and performance, yChat runs as a standalone web server (with its own lightweight HTTP engine, yhttpd) and supports POSIX-compliant operating systems like Linux and BSD. Key features include multi-threading (using POSIX threads), modular architecture with dynamically loadable modules, MySQL-based user management, customizable HTML and language templates, and an ncurses-based administration interface. The system is highly configurable via XML-based config files and supports advanced features like session management, logging (including Apache-style logs), and a smart garbage collection engine for efficient resource handling.</span><br />
+<br />
+<span>yChat’s architecture is built around a core C++ engine that handles HTTP requests directly, bypassing the need for external web servers like Apache. It uses hash maps for fast data access, supports CGI scripting, and allows for easy customization of both appearance and functionality through templates and modules. The project is organized into several branches (CURRENT, STABLE, BASIC, LEGACY) to balance stability and feature development, and it provides tools for easy installation, configuration, and administration. Its modular design, performance optimizations, and ease of customization make it a practical solution for organizations or communities seeking a lightweight, browser-accessible chat platform that is easy to deploy and extend.</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>
@@ -1362,7 +1386,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: 5412.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 5420.4 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 />
@@ -1381,27 +1405,29 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='ychat'>ychat</h3><br />
+<h3 style='display: inline' id='vs-sim'>vs-sim</h3><br />
<br />
<ul>
-<li>💻 Languages: C++ (54.9%), C/C++ (23.0%), Shell (13.8%), Perl (2.5%), HTML (2.5%), Config (2.3%), Make (0.8%), CSS (0.2%)</li>
-<li>📚 Documentation: Text (100.0%)</li>
-<li>📊 Commits: 67</li>
-<li>📈 Lines of Code: 67884</li>
-<li>📄 Lines of Documentation: 127</li>
-<li>📅 Development Period: 2008-05-15 to 2014-06-30</li>
-<li>🔥 Recent Activity: 5433.2 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>
+<li>💻 Languages: Java (98.6%), Shell (0.8%), XML (0.4%)</li>
+<li>📚 Documentation: LaTeX (98.4%), Text (1.4%), Markdown (0.2%)</li>
+<li>📊 Commits: 411</li>
+<li>📈 Lines of Code: 14582</li>
+<li>📄 Lines of Documentation: 2903</li>
+<li>📅 Development Period: 2008-05-15 to 2022-04-03</li>
+<li>🔥 Recent Activity: 5456.7 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: Custom License</li>
+<li>🏷️ Latest Release: v1.0 (2008-08-24)</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>**yChat** is a free, open-source, HTTP-based chat server written in C++ that allows users to communicate in real time using only a standard web browser—no special client software is required. Designed for portability and performance, yChat runs as a standalone web server (with its own lightweight HTTP engine, yhttpd) and supports POSIX-compliant operating systems like Linux and BSD. Key features include multi-threading (using POSIX threads), modular architecture with dynamically loadable modules, MySQL-based user management, customizable HTML and language templates, and an ncurses-based administration interface. The system is highly configurable via XML-based config files and supports advanced features like session management, logging (including Apache-style logs), and a smart garbage collection engine for efficient resource handling.</span><br />
+<a href='showcase/vs-sim/image-1.jpg'><img alt='vs-sim screenshot' title='vs-sim screenshot' src='showcase/vs-sim/image-1.jpg' /></a><br />
<br />
-<span>yChat’s architecture is built around a core C++ engine that handles HTTP requests directly, bypassing the need for external web servers like Apache. It uses hash maps for fast data access, supports CGI scripting, and allows for easy customization of both appearance and functionality through templates and modules. The project is organized into several branches (CURRENT, STABLE, BASIC, LEGACY) to balance stability and feature development, and it provides tools for easy installation, configuration, and administration. Its modular design, performance optimizations, and ease of customization make it a practical solution for organizations or communities seeking a lightweight, browser-accessible chat platform that is easy to deploy and extend.</span><br />
+<span>VS-Sim is an open-source Java-based simulator designed to model and analyze distributed systems. Its primary purpose is to provide a virtual environment where users can create, configure, and observe the behavior of distributed algorithms and networked components without the need for physical hardware. This makes it a valuable tool for researchers, educators, and students who want to experiment with distributed system concepts, test fault tolerance mechanisms, or visualize communication protocols in a controlled and repeatable manner.</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 />
+<span>The simulator features a modular architecture, allowing users to define custom network topologies, node behaviors, and communication protocols. Key components include a graphical user interface for system configuration and visualization, an event-driven simulation engine to manage the timing and sequencing of distributed events, and extensible APIs for integrating new algorithms or system models. By abstracting the complexities of real-world distributed environments, VS-Sim enables rapid prototyping and debugging, making it an effective platform for both teaching and research in distributed computing.</span><br />
+<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 />
@@ -1412,7 +1438,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: 5508.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 5516.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1427,39 +1453,16 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='vs-sim'>vs-sim</h3><br />
-<br />
-<ul>
-<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 411</li>
-<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: 5869.5 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 />
-<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>VS-Sim is an open-source Java-based simulator designed to model and analyze distributed systems. Its primary purpose is to provide a virtual environment where users can create, configure, and observe the behavior of distributed algorithms and networked components without the need for physical hardware. This makes it a valuable tool for researchers, educators, and students who want to experiment with distributed system concepts, test fault tolerance mechanisms, or visualize communication protocols in a controlled and repeatable manner.</span><br />
-<br />
-<span>The simulator features a modular architecture, allowing users to define custom network topologies, node behaviors, and communication protocols. Key components include a graphical user interface for system configuration and visualization, an event-driven simulation engine to manage the timing and sequencing of distributed events, and extensible APIs for integrating new algorithms or system models. By abstracting the complexities of real-world distributed environments, VS-Sim enables rapid prototyping and debugging, making it an effective platform for both teaching and research in distributed computing.</span><br />
-<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>💻 Languages: C (67.9%), C/C++ (23.6%), HTML (6.9%), Make (1.6%)</li>
+<li>📚 Documentation: Text (61.4%), LaTeX (38.6%)</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: 5915.4 days (avg. age of last 42 commits)</li>
+<li>📈 Lines of Code: 8622</li>
+<li>📄 Lines of Documentation: 1474</li>
+<li>📅 Development Period: 2008-05-15 to 2014-06-30</li>
+<li>🔥 Recent Activity: 5840.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
diff --git a/about/showcase/debroid/image-1.png b/about/showcase/debroid/image-1.png
index d6f2a286..f62b0f61 100644
--- a/about/showcase/debroid/image-1.png
+++ b/about/showcase/debroid/image-1.png
@@ -47,39 +47,41 @@
<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-f96b923db733.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-2744ca59d025.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-f7128b22e253.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-efdc4f8b5091.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","codespaces_prebuild_region_target_update","contact_requests_implicit_opt_in","contentful_lp_enterprise","contentful_lp_footnotes","copilot_agent_task_caching","copilot_api_agentic_issue_marshal_yaml","copilot_api_draft_issue_with_mixed_trees","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_group_notifications","copilot_chat_no_header","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_coding_agent_diff_stats","copilot_custom_copilots_feature_preview","copilot_custom_copilots_images","copilot_disable_generated_commit_description","copilot_duplicate_thread","copilot_features_raycast_logo","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_global_overlay_v2","copilot_immersive_agent_branch_selection","copilot_immersive_draft_issue_tree","copilot_immersive_structured_model_picker","copilot_loops_share_button","copilot_no_floating_button","copilot_read_shared_conversation","copilot_spaces_input_menu_select","copilot_spark_allow_empty_commit","copilot_spark_single_user_iteration","copilot_spark_use_billing_headers","copilot_spark_write_iteration_history_to_git","copilot_stable_conversation_view","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_capi_mode","dashboard_public_preview","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","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_diff_view","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","loops_versioning","marketing_pages_search_explore_provider","mcp_registry_all_featured_cards","memex_mwl_filter_field_delimiter","migrate_toasts_to_banners_web_notifications","new_insights_rulesets_filter","new_traffic_page_banner","override_pulse_legacy_url","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","record_sso_banner_metrics","releases_update_ref_selector","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","show_edit_on_default_option","site_homepage_contentful","site_msbuild_webgl_hero","spark_commit_on_default_branch","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_default_sonnet4","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</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","billing_show_top_100_users_usage_table","client_version_header","codespaces_prebuild_region_target_update","contact_requests_implicit_opt_in","contentful_lp_enterprise","contentful_lp_footnotes","copilot_agent_prefetch_tasks","copilot_agent_task_caching","copilot_api_agentic_issue_marshal_yaml","copilot_api_draft_issue_code_search","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_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_coding_agent_diff_stats","copilot_custom_copilots_feature_preview","copilot_custom_copilots_images","copilot_duplicate_thread","copilot_features_raycast_logo","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_global_overlay_v2","copilot_immersive_agent_branch_selection","copilot_immersive_structured_model_picker","copilot_loops_share_button","copilot_no_floating_button","copilot_read_shared_conversation","copilot_show_copilot_sub_issues_button_on_issues_page","copilot_spaces_input_menu_select","copilot_spark_allow_empty_commit","copilot_spark_progressive_error_handling","copilot_spark_single_user_iteration","copilot_spark_use_billing_headers","copilot_spark_write_iteration_history_to_git","copilot_stable_conversation_view","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_capi_mode","dashboard_public_preview","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","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_diff_view","insert_before_patch","issue_fields_report_usage","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_sticky_sidebar","item_picker_branch_relay_migration","item_picker_issue_type_relay_migration","item_picker_label_relay_migration","item_picker_mutations_relay_migration","item_picker_project_relay_migration","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_mwl_filter_field_delimiter","migrate_toasts_to_banners_web_notifications","new_traffic_page_banner","org_repos_page_route","override_pulse_legacy_url","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","record_sso_banner_metrics","releases_update_ref_selector","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","show_edit_on_default_option","site_homepage_contentful","site_msbuild_webgl_hero","spark_commit_on_default_branch","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_default_sonnet4","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-f3788027bd8d.js"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-348f92aa0e8a.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-6c47ad9ad251.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-468bf7cab607.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-25523f4ee061.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_failbot_failbot_ts-7cdfcb8274ec.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-472a04f0328f.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_stacktrace-parser_dist_stack-trace-parser_esm_js-node_modules_github_bro-2f4e04-280c10ec004d.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-c8eeba-690858154b11.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-5244438a76a9.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-7e8c9c5d642d.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-7e4d99c9171d.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-c98257dc79a7.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-9ac2b374b638.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-754f5b5e9e7e.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-a5590c456d33.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-fd008e5636c7.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-d41270eb61be.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-337f60509a95.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-39310fffdcee.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-c5eae246e80a.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-c63e9a-b1f4633cac7f.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-379275813036.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-a4a8a5aca339.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_github_hydro-analytics-c-2a6094-2f3b5bfd7e3b.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-4e90f1d1076c.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-06c8637a6071.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-5c587dccb470.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-8eb9b2209bcd.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-cd5d89ebdb50.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-9bd182333410.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_-590a09-91fdc8802bfa.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_document-metadata_document-metadata_ts-packages_failbot_failbot_ts-75c1bcfb5bf5.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_updatable-content_updatable-content_ts-a743e72edcf2.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_details-884c01-e22717ec4ab6.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_throttled-input_ts-047775-251a6ef52573.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_details-6493f1-5af0195d8874.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_throttled-input_ts-047775-82bfe789bb2f.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-6bc7a8849328.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-97ac2c14d80f.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-913d8cc551d2.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-641e2ed302b3.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-e0009afb39c7.js" defer="defer"></script>
@@ -91,13 +93,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:62ee94e6-664d-176f-a3f1-7e64243bdf13">
+ <meta name="fetch-nonce" content="v2:9f57eaa2-4017-933a-c623-1fb2e923987f">
<meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">
- <meta name="request-id" content="E6D0:3D1167:ADD76C:940F05:68C262FE" data-pjax-transient="true"/><meta name="html-safe-nonce" content="f2c052b6532433989dda7fe8e162c22055fd43b10b0cbc46a4eafda2e06a5ab9" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNkQwOjNEMTE2NzpBREQ3NkM6OTQwRjA1OjY4QzI2MkZFIiwidmlzaXRvcl9pZCI6IjIzMTE2Mjk4MTc5Nzc2NjAxNTgiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="839871bb9b2106b884b622214c8196b69bbdbf459aea810ede7a48f69de3ee33" data-pjax-transient="true"/>
+ <meta name="request-id" content="80CA:21348F:86ACCA:6E3C2A:68CC3C82" data-pjax-transient="true"/><meta name="html-safe-nonce" content="02b56533e09eb79caff0081e9c94309bbd2d949f8cbc6c2118af1cfde9a53b51" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MENBOjIxMzQ4Rjo4NkFDQ0E6NkUzQzJBOjY4Q0MzQzgyIiwidmlzaXRvcl9pZCI6IjQ2MTExNTE0OTg2MjA3MTQxMTQiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="85f63cd2a77ee16ab215b934c8b8bb2779313fb50a91ba23bb8477fec1e33f64" data-pjax-transient="true"/>
@@ -173,14 +175,14 @@
<meta name="expected-hostname" content="github.com">
- <meta http-equiv="x-pjax-version" content="f460ebb80aa113e5fe2b03477dcebed0d6a3de8949cf28f49ee9eb1b1ed39496" data-turbo-track="reload">
- <meta http-equiv="x-pjax-csp-version" content="7a8d2a325eda0ce8231fb01635a57c5af49cef72457e9682233c3f4927e7b224" data-turbo-track="reload">
- <meta http-equiv="x-pjax-css-version" content="8a0735d016089f8354c8d1451df9eae2b267023d238471fb203c0d53f7f745e1" data-turbo-track="reload">
- <meta http-equiv="x-pjax-js-version" content="fc44e8be738d24ea978a612015424cbbdadc5f7adb7373ee8e620a701a25c1be" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-version" content="ad8bb9e20b26558b390bbaa7f8d115448c7fe08b520aa3b75eabd21f05923724" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-csp-version" content="c922ef32c4ab94f8b870c62883f3e41755ec705db76ec4efb0d343458f1e28c7" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-css-version" content="0bc51a290919c52cc62b3d8b4eed96609edf264f742d0409c975553b0cdc84a8" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-js-version" content="56c08ab2d04523fd3ef5229f176ac1f86d092b5e48ba8b126e87f46bceb48f95" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-65a0225e4d0f.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-32febde4054e.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/error-3bfb6168c7d5.css" />
<meta name="is_logged_out_page" content="true">
<meta name="octolytics-page-type" content="marketing">
@@ -200,7 +202,7 @@
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <meta name="release" content="ed4becda7e590493a3eb351d9ef96da3f7e36888">
+ <meta name="release" content="79147b255a4de6477bf167741fd55c0ecccc4105">
<meta name="ui-target" content="full">
<link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
@@ -228,7 +230,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.bde96664bd5edb566a4a.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.1376d83c759fa3dd6e71.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.2de9c7d6456a311fce49.module.css" />
<react-partial
@@ -293,14 +295,14 @@
</a>
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-ad8020ce-bead-4080-a636-9c8a6487b5d0" aria-labelledby="tooltip-3d96610d-8679-4fc1-9b25-ef34fe7b602d" 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-661c7831-f0b1-4e98-8442-e233b1c71026" aria-labelledby="tooltip-a81c5bfc-7b4f-4ab3-a564-2a59abcc1473" 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-3d96610d-8679-4fc1-9b25-ef34fe7b602d" for="icon-button-ad8020ce-bead-4080-a636-9c8a6487b5d0" 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-a81c5bfc-7b4f-4ab3-a564-2a59abcc1473" for="icon-button-661c7831-f0b1-4e98-8442-e233b1c71026" 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.bde96664bd5edb566a4a.module.css" />
-<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.c82a4db79200850fb016.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.1376d83c759fa3dd6e71.module.css" />
+<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
<react-partial
partial-name="appearance-settings"
@@ -580,7 +582,13 @@
</a></li>
-
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;mcp_registry&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}" href="https://github.com/mcp">
+ MCP Registry
+
+
+</a></li>
+
</ul>
</div>
</div>
@@ -650,6 +658,7 @@
<span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span>
<ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading">
+
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devsecops&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}" href="/solutions/use-case/devsecops">
DevSecOps
@@ -1048,7 +1057,7 @@
-<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="NmyWkafZQhCv2ZvHrqFCE6PbUPSitlZMo1gqFfW7BjmX8d1roRlRAITf7MUxg425jMOlHFri8scjwICIYSmqHA" 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="Ir-Xa7XN8bhPcnP_UBy4s3jnmzPG3byOTmzDGnq4V1HVFojAJiquscP45tp5k7PxLiaVvOOIxOKmMMCfKh6QUA" 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"
@@ -1112,7 +1121,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-34dd41b7-0d22-4bff-822e-204a80368b1a" 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-946e0dd9-d0b6-4f35-b719-cd4cb6b45f2c" data-target="query-builder.input" data-action="
input:query-builder#inputChange
blur:query-builder#inputBlur
keydown:query-builder#inputKeydown
@@ -1350,7 +1359,7 @@
tabindex="-1"
></ul>
</div>
- <div class="FormControl-inlineValidation" id="validation-34dd41b7-0d22-4bff-822e-204a80368b1a" hidden="hidden">
+ <div class="FormControl-inlineValidation" id="validation-946e0dd9-d0b6-4f35-b719-cd4cb6b45f2c" 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>
@@ -1391,7 +1400,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="y+4bXsJrKbNmgX1msc4W2YeEES+3GWSBXHv5hE0JAtr1NKs08qnRG6m8+vLzXNDSxcoTi1FMfKS1oeWTLLdXGg==" />
+ <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="9YGYyFZGSsyhDtf2wpS39+xmf2iejz/FnzPCF7w2AybVX6sLYqXK2y2uHVH4IgymWbViVtSKJQPQeFfHuCio9w==" />
<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">
@@ -1429,7 +1438,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="pTrssuoYbReq+2IRhrBGcoPS23ld73k4+/V9M1W108yLm+C+jzv48/XP83DXX2pMP85n2HAemnknEwoWiNFsOQ==" />
+ <!-- '"` --><!-- </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="qRnJH9Wt/Hmsl6fxcr0u6LltzwyIiuQ0XEVfW3EaFFmrsEM02OKNH7BkF7VX8onV/mYGsGfYJ91gRg6M8AgNOA==" />
<div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
@@ -1447,7 +1456,7 @@
placeholder="github-ruby"
required
maxlength="50">
- <input type="hidden" data-csrf="true" value="A3CEDjCroexh7WP03UPAyJjRWGZfPOC2HGjE5KlLUPVxpbFBacRLTWhDMnxZHr4L3v6WQ2BFV+0i4eGC1ZLY/A==" />
+ <input type="hidden" data-csrf="true" value="V5ru9RDKByxuvwzSqIWyW6ka70doTU2e5lNjs31N2cN8eFvgIOqm60yVX9E+dD71u3wDaQ2sUiS92Yd509RDxQ==" />
</auto-check>
</div>
@@ -1502,7 +1511,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="9Gm695OSIVX5gYH8esTWA3YExmjW8b6i1AyL0MaNwja8sssgnNbEecmsOuLrUF3h8UCLqc1Bxd7WL1crB3ygvA==" /> <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="7zI0wxjU/rCnNtgRM+x1sXmT72XTOxBtoms1jPIjZFoabwoBJCFLcG16qTjhb/o4GHaBvX+9RdCVNzes4v+YDQ==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
<label for="login_field">
Username or email address
@@ -1524,9 +1533,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_6ca2" hidden="hidden" />
-<input class="form-control" type="hidden" name="timestamp" value="1757569791012" />
-<input class="form-control" type="hidden" name="timestamp_secret" value="f7407f05bf7c25cd0e2f76a706d90ff9c710df97a56d9efc7db5b16def7a1e63" />
+<input class="form-control" type="text" name="required_field_03cd" hidden="hidden" />
+<input class="form-control" type="hidden" name="timestamp" value="1758215298328" />
+<input class="form-control" type="hidden" name="timestamp_secret" value="413a0b9367a4ca3d6489ead9c2211b9c4dc13bd559635b9fdafd16e926f4b548" />
<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" />
@@ -1553,14 +1562,14 @@
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-96a8807c-3a67-43e4-9422-e62399a25b20" aria-labelledby="tooltip-a87248ab-cf8c-4a0d-aab3-8526c71a99eb" 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-e903bcff-12d6-4055-8257-932f1dda8fc9" aria-labelledby="tooltip-e44ac6ea-0089-458b-8740-b394710e1157" 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-a87248ab-cf8c-4a0d-aab3-8526c71a99eb" for="icon-button-96a8807c-3a67-43e4-9422-e62399a25b20" 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-e44ac6ea-0089-458b-8740-b394710e1157" for="icon-button-e903bcff-12d6-4055-8257-932f1dda8fc9" 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.bde96664bd5edb566a4a.module.css" />
-<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.c82a4db79200850fb016.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.1376d83c759fa3dd6e71.module.css" />
+<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
<react-partial
partial-name="appearance-settings"
@@ -1594,10 +1603,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-3c7798aa-e4c1-4963-94a4-28405f4b498d" aria-labelledby="tooltip-0d51e273-d7b9-4377-a627-704b006829df" 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-50a18150-b7d7-4cac-953a-54edc1ede1b8" aria-labelledby="tooltip-02b363dd-387d-4a4e-8bed-e79c6196a154" 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-0d51e273-d7b9-4377-a627-704b006829df" for="icon-button-3c7798aa-e4c1-4963-94a4-28405f4b498d" 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-02b363dd-387d-4a4e-8bed-e79c6196a154" for="icon-button-50a18150-b7d7-4cac-953a-54edc1ede1b8" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
@@ -1731,34 +1740,34 @@
<ul class="list-style-none color-fg-muted f5">
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;features&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;features_link_product_footer&quot;}" href="/features">Features</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;features&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;features_link_platform_footer&quot;}" href="/features">Features</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;enterprise&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprise_link_product_footer&quot;}" href="/enterprise">Enterprise</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;enterprise&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprise_link_platform_footer&quot;}" href="/enterprise">Enterprise</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;copilot&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_link_product_footer&quot;}" href="/features/copilot">Copilot</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;copilot&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_link_platform_footer&quot;}" href="/features/copilot">Copilot</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;ai&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ai_link_product_footer&quot;}" href="/features/ai">AI</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;ai&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ai_link_platform_footer&quot;}" href="/features/ai">AI</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_product_footer&quot;}" href="/security">Security</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_platform_footer&quot;}" href="/security">Security</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;pricing_link_product_footer&quot;}" href="/pricing">Pricing</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;pricing_link_platform_footer&quot;}" href="/pricing">Pricing</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;team&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;team_link_product_footer&quot;}" href="/team">Team</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;team&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;team_link_platform_footer&quot;}" href="/team">Team</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;resources&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;resources_link_product_footer&quot;}" href="https://resources.github.com">Resources</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;resources&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;resources_link_platform_footer&quot;}" href="https://resources.github.com">Resources</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;roadmap&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;roadmap_link_product_footer&quot;}" href="https://github.com/github/roadmap">Roadmap</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;roadmap&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;roadmap_link_platform_footer&quot;}" href="https://github.com/github/roadmap">Roadmap</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;compare&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;compare_link_product_footer&quot;}" href="https://resources.github.com/devops/tools/compare">Compare GitHub</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;compare&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;compare_link_platform_footer&quot;}" href="https://resources.github.com/devops/tools/compare">Compare GitHub</a>
</li>
</ul>
</nav>
@@ -1770,22 +1779,28 @@
<ul class="list-style-none f5">
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dev-api&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dev-api_link_platform_footer&quot;}" href="https://docs.github.com/get-started/exploring-integrations/about-building-integrations">Developer API</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dev-api&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dev-api_link_ecosystem_footer&quot;}" href="https://docs.github.com/get-started/exploring-integrations/about-building-integrations">Developer API</a>
+ </li>
+ <li class="lh-condensed mb-3">
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;partners_link_ecosystem_footer&quot;}" href="https://partner.github.com">Partners</a>
+ </li>
+ <li class="lh-condensed mb-3">
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;edu&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;edu_link_ecosystem_footer&quot;}" href="https://github.com/edu">Education</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;partners_link_platform_footer&quot;}" href="https://partner.github.com">Partners</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cli&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cli_link_ecosystem_footer&quot;}" href="https://cli.github.com">GitHub CLI</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;edu&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;edu_link_platform_footer&quot;}" href="https://github.com/edu">Education</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;desktop&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;desktop_link_ecosystem_footer&quot;}" href="https://desktop.github.com">GitHub Desktop</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cli&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cli_link_platform_footer&quot;}" href="https://cli.github.com">GitHub CLI</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;mobile&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mobile_link_ecosystem_footer&quot;}" href="https://github.com/mobile">GitHub Mobile</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;desktop&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;desktop_link_platform_footer&quot;}" href="https://desktop.github.com">GitHub Desktop</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;marketplace&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;marketplace_link_ecosystem_footer&quot;}" href="https://github.com/marketplace">GitHub Marketplace</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;mobile&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mobile_link_platform_footer&quot;}" href="https://github.com/mobile">GitHub Mobile</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;mcp_registry&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mcp_registry_link_ecosystem_footer&quot;}" href="https://github.com/mcp">MCP Registry</a>
</li>
</ul>
</nav>
diff --git a/about/technical-books.txt b/about/technical-books.txt
index da745eea..dc02365d 100644
--- a/about/technical-books.txt
+++ b/about/technical-books.txt
@@ -1,3 +1,4 @@
+* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml
index 0cccf072..ba2bfa40 100644
--- a/gemfeed/atom.xml
+++ b/gemfeed/atom.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
- <updated>2025-09-13T12:04:03+03:00</updated>
+ <updated>2025-09-18T20:39:02+03:00</updated>
<title>foo.zone feed</title>
<subtitle>To be in the .zone!</subtitle>
<link href="https://foo.zone/gemfeed/atom.xml" rel="self" />
@@ -20,6 +20,8 @@
<div xmlns="http://www.w3.org/1999/xhtml">
<h1 style='display: inline' id='bash-golf-part-4'>Bash Golf Part 4</h1><br />
<br />
+<span class='quote'>Published at 2025-09-13T12:04:03+03:00</span><br />
+<br />
<span>This is the fourth blog post about my Bash Golf series. This series is random Bash tips, tricks, and weirdnesses I have encountered over time. </span><br />
<br />
<a class='textlink' href='./2021-11-29-bash-golf-part-1.html'>2021-11-29 Bash Golf Part 1</a><br />
diff --git a/index.html b/index.html
index 20a7d978..614e76c1 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-09-13T12:04:03+03:00 by <span class='inlinecode'>Gemtexter</span></span><br />
+<span class='quote'>This site was generated at 2025-09-18T20:39:02+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 70a5ffc8..d6ed5aa3 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-09-13T12:04:03+03:00</span><br />
+<span class='quote'>This site was last updated at 2025-09-18T20:39:02+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 />
@@ -52,8 +52,8 @@
| 16. | blowfish | 38 | OpenBSD 7.6 |
| 17. | sun | 33 | FreeBSD 10.3-RELEASE-p24 |
| 18. | f2 | 25 | FreeBSD 14.2-RELEASE-p1 |
-| 19. | moon | 20 | FreeBSD 14.0-RELEASE-p3 |
-| 20. | f1 | 20 | FreeBSD 14.2-RELEASE-p1 |
+| 19. | f1 | 20 | FreeBSD 14.2-RELEASE-p1 |
+| 20. | moon | 20 | FreeBSD 14.0-RELEASE-p3 |
+-----+----------------+-------+------------------------------+
</pre>
<br />
@@ -67,8 +67,8 @@
+-----+----------------+-----------------------------+-----------------------------------+
| 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, 29 days | Linux 6.15.9-201.fc42.x86_64 |
+| 3. | *earth | 3 years, 9 months, 6 days | Linux 6.15.9-201.fc42.x86_64 |
+| 4. | uranus | 3 years, 9 months, 5 days | NetBSD 10.1 |
| 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 |
@@ -78,8 +78,8 @@
| 11. | mega15289 | 1 years, 12 months, 17 days | Darwin 23.4.0 |
| 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, 15 days | Darwin 24.6.0 |
+| 14. | *mega-m3-pro | 1 years, 4 months, 10 days | Darwin 24.6.0 |
+| 15. | mega8477 | 1 years, 3 months, 25 days | Darwin 13.4.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 |
@@ -98,7 +98,7 @@
+-----+----------------+-------+-----------------------------------+
| 1. | uranus | 340 | NetBSD 10.1 |
| 2. | vulcan | 275 | Linux 3.10.0-1160.81.1.el7.x86_64 |
-| 3. | *earth | 257 | Linux 6.15.9-201.fc42.x86_64 |
+| 3. | *earth | 259 | Linux 6.15.9-201.fc42.x86_64 |
| 4. | sun | 238 | FreeBSD 10.3-RELEASE-p24 |
| 5. | blowfish | 216 | OpenBSD 7.6 |
| 6. | uugrn | 211 | FreeBSD 11.2-RELEASE-p4 |
@@ -113,8 +113,8 @@
| 15. | *t450 | 122 | FreeBSD 14.2-RELEASE |
| 16. | tauceti-f | 108 | Linux 3.2.0-3-amd64 |
| 17. | tauceti-e | 96 | Linux 3.2.0-4-amd64 |
-| 18. | callisto | 86 | Linux 4.0.4-303.fc22.x86_64 |
-| 19. | *mega-m3-pro | 82 | Darwin 24.6.0 |
+| 18. | *mega-m3-pro | 87 | Darwin 24.6.0 |
+| 19. | callisto | 86 | Linux 4.0.4-303.fc22.x86_64 |
| 20. | mega8477 | 80 | Darwin 13.4.0 |
+-----+----------------+-------+-----------------------------------+
</pre>
@@ -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, 2 months, 16 days | Linux 6.15.9-201.fc42.x86_64 |
+| 6. | *earth | 4 years, 2 months, 24 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,14 +200,14 @@
| 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. | FreeBSD 6... | 10 |
+| 19. | OpenBSD 4... | 10 |
| 20. | FreeBSD 7... | 10 |
+-----+----------------+-------+
</pre>
@@ -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, 11 months, 25 days |
+| 5. | *Linux 6... | 2 years, 12 months, 3 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 |
@@ -233,8 +233,8 @@
| 11. | FreeBSD 6... | 1 years, 3 months, 9 days |
| 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, 17 days |
+| 14. | *Darwin 24... | 0 years, 8 months, 11 days |
+| 15. | Darwin 21... | 0 years, 8 months, 2 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 |
@@ -255,7 +255,7 @@
| 2. | OpenBSD 7... | 432 |
| 3. | FreeBSD 10... | 406 |
| 4. | Linux 5... | 317 |
-| 5. | *Linux 6... | 201 |
+| 5. | *Linux 6... | 202 |
| 6. | Linux 4... | 175 |
| 7. | FreeBSD 11... | 159 |
| 8. | Linux 2... | 121 |
@@ -263,14 +263,14 @@
| 10. | Darwin 13... | 80 |
| 11. | FreeBSD 6... | 75 |
| 12. | Darwin 23... | 56 |
-| 13. | OpenBSD 4... | 39 |
-| 14. | *Darwin 24... | 38 |
+| 13. | *Darwin 24... | 43 |
+| 14. | OpenBSD 4... | 39 |
| 15. | Darwin 21... | 38 |
| 16. | Darwin 18... | 32 |
| 17. | Darwin 22... | 30 |
| 18. | Darwin 15... | 29 |
-| 19. | FreeBSD 13... | 25 |
-| 20. | FreeBSD 5... | 25 |
+| 19. | FreeBSD 5... | 25 |
+| 20. | FreeBSD 13... | 25 |
+-----+----------------+-------+
</pre>
<br />
@@ -298,10 +298,10 @@
+-----+------------+------------------------------+
| Pos | KernelName | Uptime |
+-----+------------+------------------------------+
-| 1. | *Linux | 27 years, 12 months, 18 days |
+| 1. | *Linux | 27 years, 12 months, 26 days |
| 2. | *FreeBSD | 11 years, 7 months, 30 days |
| 3. | OpenBSD | 7 years, 5 months, 5 days |
-| 4. | *Darwin | 4 years, 11 months, 4 days |
+| 4. | *Darwin | 4 years, 11 months, 29 days |
| 5. | NetBSD | 0 years, 1 months, 1 days |
+-----+------------+------------------------------+
</pre>
@@ -314,10 +314,10 @@
+-----+------------+-------+
| Pos | KernelName | Score |
+-----+------------+-------+
-| 1. | *Linux | 1860 |
+| 1. | *Linux | 1861 |
| 2. | *FreeBSD | 814 |
| 3. | OpenBSD | 472 |
-| 4. | *Darwin | 321 |
+| 4. | *Darwin | 325 |
| 5. | NetBSD | 0 |
+-----+------------+-------+
</pre>