summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--about/index.gmi8
-rw-r--r--about/resources.gmi195
-rw-r--r--about/showcase.gmi385
-rw-r--r--about/showcase.gmi.tpl375
-rw-r--r--about/showcase/debroid/image-1.png130
-rw-r--r--gemfeed/atom.xml81
-rw-r--r--index.gmi2
-rw-r--r--uptime-stats.gmi74
8 files changed, 590 insertions, 660 deletions
diff --git a/about/index.gmi b/about/index.gmi
index bebc64fa..396745f8 100644
--- a/about/index.gmi
+++ b/about/index.gmi
@@ -29,23 +29,25 @@
## Books
-### Books I am currently reading / listening
+### Books I am currently reading / listening (4)
* 97 Things Every Cloud Engineer Should Know: Collective Wisdom from the Experts; Emily Freeman, Nathen Harvey; eBook (ePub)
* How to talk so kids will listen & Listen so kids will talk; Audiobook (Audible)
* 2005 - Okular; Alastair Reynolds; eBook (Kobo kePub)
* 2021 - Inhibitor Phase; Alastair Reynolds; Audiobook (Libro.fm)
-### Next books already in my shelf
+### Next books already in my shelf (8)
* Clean Code; Audiobook (Audible)
* Bash it out
+* Positiv Wirkt: Wie du mit positivem Denken und Handeln aktiv dein Leben gestaltest (german); Armin Schubert; Paperback
+* The Courage To Be Happy; Ichiro Kishimi and Fumitake Koga; Paperback
* 1992 - A Fire Upon the Deep (german: Ein Feuer auf der Tiefe); Vernor Vinge; eBook (buecher.de)
* 2025 - Origin: Die Entdecknug (german); Andreas Brandhorst; eBook (buecher.de)
* 2025 - Origin: Die Erweckung (german); Joschua Tree; eBook (buecher.de)
* 2025 - Origin: Die Erloesung (german); Brandon Q. Morris; eBook (buecher.de)
-### Book wishlist
+### Book wishlist (3)
* 2025 - Gateway - Frederik Pohl (german)
* Bozo Loop - https://rachelbythebay.gumroad.com/l/bozo-loop-epub
diff --git a/about/resources.gmi b/about/resources.gmi
index 14476e79..54ff2685 100644
--- a/about/resources.gmi
+++ b/about/resources.gmi
@@ -35,109 +35,110 @@ You won't find any links on this site because, over time, the links will break.
In random order:
+* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
+* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
+* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
* Higher Order Perl; Mark Dominus; Morgan Kaufmann
+* Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook
+* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
-* Polished Ruby Programming; Jeremy Evans; Packt Publishing
-* Developing Games in Java; David Brackeen and others...; New Riders
-* C++ Programming Language; Bjarne Stroustrup;
* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
-* Effective Java; Joshua Bloch; Addison-Wesley Professional
-* Java ist auch eine Insel; Christian Ullenboom;
-* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-* Effective awk programming; Arnold Robbins; O'Reilly
-* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
-* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
-* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
-* The Docker Book; James Turnbull; Kindle
-* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-* Systemprogrammierung in Go; Frank Müller; dpunkt
-* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
-* Funktionale Programmierung; Peter Pepper; Springer
-* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* DNS and BIND; Cricket Liu; O'Reilly
* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
-* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
+* The Pragmatic Programmer; David Thomas; Addison-Wesley
+* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
* Raku Fundamentals; Moritz Lenz; Apress
-* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
+* Modern Perl; Chromatic ; Onyx Neon Press
* Raku Recipes; J.J. Merelo; Apress
+* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
-* Perl New Features; Joshua McAdams, brian d foy; Perl School
-* Modern Perl; Chromatic ; Onyx Neon Press
-* Terraform Cookbook; Mikael Krief; Packt Publishing
+* The Docker Book; James Turnbull; Kindle
+* Data Science at the Command Line; Jeroen Janssens; O'Reilly
+* Effective Java; Joshua Bloch; Addison-Wesley Professional
+* Systemprogrammierung in Go; Frank Müller; dpunkt
+* Concurrency in Go; Katherine Cox-Buday; O'Reilly
* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
-* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+* Perl New Features; Joshua McAdams, brian d foy; Perl School
* Leanring eBPF; Liz Rice; O'Reilly
-* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
-* DNS and BIND; Cricket Liu; O'Reilly
-* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
-* Ultimate Go Notebook; Bill Kennedy
-* Site Reliability Engineering; How Google runs production systems; O'Reilly
-* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
-* The Pragmatic Programmer; David Thomas; Addison-Wesley
-* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
-* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
+* Funktionale Programmierung; Peter Pepper; Springer
+* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
+* Terraform Cookbook; Mikael Krief; Packt Publishing
+* Site Reliability Engineering; How Google runs production systems; O'Reilly
+* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+* Ultimate Go Notebook; Bill Kennedy
+* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
-* Data Science at the Command Line; Jeroen Janssens; O'Reilly
-* Concurrency in Go; Katherine Cox-Buday; O'Reilly
+* Polished Ruby Programming; Jeremy Evans; Packt Publishing
+* Java ist auch eine Insel; Christian Ullenboom;
+* Effective awk programming; Arnold Robbins; O'Reilly
* The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress
-* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+* C++ Programming Language; Bjarne Stroustrup;
+* Developing Games in Java; David Brackeen and others...; New Riders
* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
+* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
+* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
## Technical references
I didn't read them from the beginning to the end, but I am using them to look up things. The books are in random order:
* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
+* Relayd and Httpd Mastery; Michael W Lucas
+* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
* Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
-* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
-* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
* The Linux Programming Interface; Michael Kerrisk; No Starch Press
-* Relayd and Httpd Mastery; Michael W Lucas
+* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
## Self-development and soft-skills books
In random order:
+* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
* The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook
-* Digital Minimalism; Cal Newport; Portofolio Penguin
-* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
* Slow Productivity; Cal Newport; Penguin Random House
-* So Good They Can't Ignore You; Cal Newport; Business Plus
+* Influence without Authority; A. Cohen, D. Bradford; Wiley
+* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
* Soft Skills; John Sommez; Manning Publications
-* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
-* The Good Enough Job; Simone Stolzoff; Ebury Edge
-* The Joy of Missing Out; Christina Crook; New Society Publishers
-* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
-* Ultralearning; Scott Young; Thorsons
+* Meditation for Mortals, Oliver Burkeman, Audiobook
+* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
+* Getting Things Done; David Allen
+* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+* Stop starting, start finishing; Arne Roock; Lean-Kanban University
* Eat That Frog!; Brian Tracy; Hodder Paperbacks
-* The Power of Now; Eckhard Tolle; Yellow Kite
-* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
+* The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
+* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
+* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
+* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
-* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* Ultralearning; Scott Young; Thorsons
* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
-* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
+* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
+* The Bullet Journal Method; Ryder Carroll; Fourth Estate
+* Atomic Habits; James Clear; Random House Business
+* Digital Minimalism; Cal Newport; Portofolio Penguin
* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
+* Ultralearning; Anna Laurent; Self-published via Amazon
* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
-* Eat That Frog; Brian Tracy
-* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
-* Stop starting, start finishing; Arne Roock; Lean-Kanban University
-* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
-* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
-* Influence without Authority; A. Cohen, D. Bradford; Wiley
+* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
+* 101 Essays that change the way you think; Brianna Wiest; Audiobook
+* So Good They Can't Ignore You; Cal Newport; Business Plus
+* The Power of Now; Eckhard Tolle; Yellow Kite
+* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
* Deep Work; Cal Newport; Piatkus
-* Atomic Habits; James Clear; Random House Business
-* Ultralearning; Anna Laurent; Self-published via Amazon
-* Meditation for Mortals, Oliver Burkeman, Audiobook
-* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
-* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
-* 101 Essays that change the way you think; Brianna Wiest; Audiobook
-* The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
-* The Bullet Journal Method; Ryder Carroll; Fourth Estate
* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
-* Getting Things Done; David Allen
+* Eat That Frog; Brian Tracy
+* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
+* The Joy of Missing Out; Christina Crook; New Society Publishers
+* The Good Enough Job; Simone Stolzoff; Ebury Edge
=> ../notes/index.gmi Here are notes of mine for some of the books
@@ -145,30 +146,30 @@ In random order:
Some of these were in-person with exams; others were online learning lectures only. In random order:
-* 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)
-* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
-* Scripting Vim; Damian Conway; O'Reilly Online
-* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
-* AWS Immersion Day; Amazon; 1-day interactive online training
-* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
-* Apache Tomcat Best Practises; 3-day on-site training
-* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
+* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
+* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
+* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
* Protocol buffers; O'Reilly Online
+* Scripting Vim; Damian Conway; O'Reilly Online
+* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
+* Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
+* AWS Immersion Day; Amazon; 1-day interactive online training
* Functional programming lecture; Remote University of Hagen
+* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
+* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
-* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
-* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
+* Apache Tomcat Best Practises; 3-day on-site training
* MySQL Deep Dive Workshop; 2-day on-site training
## Technical guides
These are not whole books, but guides (smaller or larger) which I found very useful. in random order:
-* Advanced Bash-Scripting Guide
-* How CPUs work at https://cpu.land
* Raku Guide at https://raku.guide
+* How CPUs work at https://cpu.land
+* Advanced Bash-Scripting Guide
## Podcasts
@@ -176,49 +177,49 @@ These are not whole books, but guides (smaller or larger) which I found very use
In random order:
-* Cup o' Go [Golang]
+* Fork Around And Find Out
+* Fallthrough [Golang]
+* Deep Questions with Cal Newport
+* BSD Now [BSD]
+* Dev Interrupted
+* Pratical AI
+* Modern Mentor
* The Pragmatic Engineer Podcast
* Wednesday Wisdom
* Backend Banter
-* Fallthrough [Golang]
-* Deep Questions with Cal Newport
* Maintainable
+* The Changelog Podcast(s)
+* Cup o' Go [Golang]
* The ProdCast (Google SRE Podcast)
-* Dev Interrupted
* Hidden Brain
-* The Changelog Podcast(s)
-* BSD Now [BSD]
-* Fork Around And Find Out
-* Modern Mentor
-* Pratical AI
### Podcasts I liked
I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.
-* Modern Mentor
-* Go Time (predecessor of fallthrough)
-* Java Pub House
* FLOSS weekly
-* CRE: Chaosradio Express [german]
+* Java Pub House
* Ship It (predecessor of Fork Around And Find Out)
+* Go Time (predecessor of fallthrough)
+* CRE: Chaosradio Express [german]
+* Modern Mentor
## Newsletters I like
This is a mix of tech and non-tech newsletters I am subscribed to. In random order:
* The Imperfectionist
-* Andreas Brandhorst Newsletter (Sci-Fi author)
-* Applied Go Weekly Newsletter
-* Register Spill
-* The Pragmatic Engineer
-* byteSizeGo
* Monospace Mentor
+* The Valuable Dev
+* byteSizeGo
+* Applied Go Weekly Newsletter
* Golang Weekly
* Changelog News
-* VK Newsletter
-* The Valuable Dev
* Ruby Weekly
+* Andreas Brandhorst Newsletter (Sci-Fi author)
+* VK Newsletter
+* Register Spill
+* The Pragmatic Engineer
## Magazines I like(d)
@@ -226,8 +227,8 @@ This is a mix of tech I like(d). I may not be a current subscriber, but now and
* LWN (online only)
* freeX (not published anymore)
-* Linux Magazine
* Linux User
+* Linux Magazine
# Formal education
diff --git a/about/showcase.gmi b/about/showcase.gmi
index df24a882..dcaba107 100644
--- a/about/showcase.gmi
+++ b/about/showcase.gmi
@@ -1,6 +1,6 @@
# Project Showcase
-Generated on: 2025-11-03
+Generated on: 2025-11-16
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.
@@ -13,9 +13,9 @@ This page showcases my side projects, providing an overview of what each project
* ⇢ ⇢ ⇢ yoga
* ⇢ ⇢ ⇢ hexai
* ⇢ ⇢ ⇢ foostats
+* ⇢ ⇢ ⇢ timr
* ⇢ ⇢ ⇢ gitsyncer
* ⇢ ⇢ ⇢ totalrecall
-* ⇢ ⇢ ⇢ timr
* ⇢ ⇢ ⇢ tasksamurai
* ⇢ ⇢ ⇢ ior
* ⇢ ⇢ ⇢ gos
@@ -34,8 +34,8 @@ This page showcases my side projects, providing an overview of what each project
* ⇢ ⇢ ⇢ geheim
* ⇢ ⇢ ⇢ sway-autorotate
* ⇢ ⇢ ⇢ photoalbum
-* ⇢ ⇢ ⇢ algorithms
* ⇢ ⇢ ⇢ foo.zone
+* ⇢ ⇢ ⇢ algorithms
* ⇢ ⇢ ⇢ perl-c-fibonacci
* ⇢ ⇢ ⇢ guprecords
* ⇢ ⇢ ⇢ ioriot
@@ -53,27 +53,27 @@ This page showcases my side projects, providing an overview of what each project
* ⇢ ⇢ ⇢ netdiff
* ⇢ ⇢ ⇢ pwgrep
* ⇢ ⇢ ⇢ japi
+* ⇢ ⇢ ⇢ loadbars
* ⇢ ⇢ ⇢ perl-poetry
* ⇢ ⇢ ⇢ ipv6test
* ⇢ ⇢ ⇢ cpuinfo
-* ⇢ ⇢ ⇢ loadbars
* ⇢ ⇢ ⇢ perldaemon
* ⇢ ⇢ ⇢ awksite
* ⇢ ⇢ ⇢ jsmstrade
-* ⇢ ⇢ ⇢ ychat
* ⇢ ⇢ ⇢ netcalendar
+* ⇢ ⇢ ⇢ ychat
* ⇢ ⇢ ⇢ hsbot
-* ⇢ ⇢ ⇢ fype
* ⇢ ⇢ ⇢ vs-sim
+* ⇢ ⇢ ⇢ fype
## Overall Statistics
* 📦 Total Projects: 56
-* 📊 Total Commits: 11,329
-* 📈 Total Lines of Code: 225,638
-* 📄 Total Lines of Documentation: 22,247
-* 💻 Languages: Go (38.0%), Java (17.9%), C (7.6%), C++ (7.5%), Perl (7.3%), C/C++ (5.4%), HTML (5.2%), Shell (2.7%), Config (1.6%), Ruby (1.3%), HCL (1.2%), YAML (0.8%), Python (0.7%), Make (0.6%), CSS (0.6%), Raku (0.3%), JSON (0.3%), XML (0.3%), Haskell (0.3%), TOML (0.1%)
-* 📚 Documentation: Text (50.5%), Markdown (49.5%)
+* 📊 Total Commits: 11,370
+* 📈 Total Lines of Code: 287,019
+* 📄 Total Lines of Documentation: 25,503
+* 💻 Languages: Go (29.8%), Java (19.7%), C++ (13.0%), C/C++ (7.2%), C (6.7%), Perl (6.2%), Shell (5.3%), HTML (5.0%), Config (1.6%), Ruby (1.0%), HCL (1.0%), Make (0.7%), YAML (0.6%), Python (0.6%), CSS (0.5%), Raku (0.3%), JSON (0.3%), XML (0.2%), Haskell (0.2%), TOML (0.1%)
+* 📚 Documentation: Text (43.5%), Markdown (43.1%), LaTeX (13.4%)
* 🎵 Vibe-Coded Projects: 5 out of 56 (8.9%)
* 🤖 AI-Assisted Projects (including vibe-coded): 9 out of 56 (16.1% AI-assisted, 83.9% human-only)
* 🚀 Release Status: 37 released, 19 experimental (66.1% with releases, 33.9% experimental)
@@ -82,13 +82,13 @@ This page showcases my side projects, providing an overview of what each project
### conf
-* 💻 Languages: Perl (30.5%), YAML (25.3%), Shell (22.6%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
-* 📚 Documentation: Text (69.4%), Markdown (30.6%)
-* 📊 Commits: 1031
-* 📈 Lines of Code: 6270
-* 📄 Lines of Documentation: 1440
-* 📅 Development Period: 2021-12-28 to 2025-11-02
-* 🔥 Recent Activity: 20.9 days (avg. age of last 42 commits)
+* 💻 Languages: Perl (30.4%), YAML (25.2%), Shell (22.8%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
+* 📚 Documentation: Markdown (69.8%), Text (30.2%)
+* 📊 Commits: 1045
+* 📈 Lines of Code: 6284
+* 📄 Lines of Documentation: 632
+* 📅 Development Period: 2021-12-28 to 2025-11-15
+* 🔥 Recent Activity: 20.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -110,7 +110,7 @@ The project is organized into distinct subdirectories: `dotfiles/` contains shel
* 📈 Lines of Code: 3408
* 📄 Lines of Documentation: 82
* 📅 Development Period: 2025-10-01 to 2025-10-24
-* 🔥 Recent Activity: 26.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 40.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.3.0 (2025-10-24)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -129,15 +129,15 @@ The implementation follows clean Go architecture with domain logic organized und
### hexai
-* 💻 Languages: Go (69.5%), HTML (30.5%)
+* 💻 Languages: Go (65.3%), HTML (34.7%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 238
-* 📈 Lines of Code: 26565
-* 📄 Lines of Documentation: 564
-* 📅 Development Period: 2025-08-01 to 2025-10-04
-* 🔥 Recent Activity: 40.9 days (avg. age of last 42 commits)
+* 📊 Commits: 240
+* 📈 Lines of Code: 28331
+* 📄 Lines of Documentation: 562
+* 📅 Development Period: 2025-08-01 to 2025-11-03
+* 🔥 Recent Activity: 52.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
-* 🏷️ Latest Release: v0.15.1 (2025-10-03)
+* 🏷️ Latest Release: v0.15.3 (2025-11-03)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -160,7 +160,7 @@ The project is implemented as an LSP server written in Go, with a TUI component
* 📈 Lines of Code: 1902
* 📄 Lines of Documentation: 423
* 📅 Development Period: 2023-01-02 to 2025-11-01
-* 🔥 Recent Activity: 72.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 86.3 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.2.0 (2025-10-21)
@@ -174,6 +174,29 @@ The implementation uses a modular Perl architecture with specialized components:
---
+### timr
+
+* 💻 Languages: Go (94.5%), Shell (5.5%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 31
+* 📈 Lines of Code: 991
+* 📄 Lines of Documentation: 50
+* 📅 Development Period: 2025-06-25 to 2025-11-08
+* 🔥 Recent Activity: 104.8 days (avg. age of last 42 commits)
+* ⚖️ License: BSD-2-Clause
+* 🏷️ Latest Release: v0.3.0 (2025-11-08)
+* 🎵 Vibe-Coded: This project has been vibe coded
+
+
+`timr` is a minimalist command-line stopwatch timer written in Go that helps developers track time spent on tasks. It provides a persistent timer that saves state to disk, allowing you to start, stop, pause, and resume time tracking across terminal sessions. The tool supports multiple viewing modes including a standard status display (with formatted or raw output in seconds/minutes), a live full-screen view with keyboard controls, and specialized output for shell prompt integration.
+
+The architecture is straightforward: it's a Go-based CLI application that persists timer state to the filesystem, enabling continuous tracking even when the program isn't actively running. Key features include basic timer controls (start/stop/continue/reset), flexible status reporting formats for automation, and fish shell integration that displays a color-coded timer icon and elapsed time directly in your prompt—making it effortless to keep track of how long you've been working without context switching.
+
+=> https://codeberg.org/snonux/timr View on Codeberg
+=> https://github.com/snonux/timr View on GitHub
+
+---
+
### gitsyncer
* 💻 Languages: Go (92.3%), Shell (7.3%), JSON (0.4%)
@@ -182,7 +205,7 @@ The implementation uses a modular Perl architecture with specialized components:
* 📈 Lines of Code: 10152
* 📄 Lines of Documentation: 2431
* 📅 Development Period: 2025-06-23 to 2025-10-31
-* 🔥 Recent Activity: 91.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 105.2 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.10.1 (2025-10-31)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -205,7 +228,7 @@ The implementation uses a git remotes approach: it clones from one organization,
* 📈 Lines of Code: 12003
* 📄 Lines of Documentation: 361
* 📅 Development Period: 2025-07-14 to 2025-08-02
-* 🔥 Recent Activity: 103.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 117.2 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.7.5 (2025-08-02)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -224,29 +247,6 @@ The project offers both a keyboard-driven GUI for interactive use and a CLI for
---
-### timr
-
-* 💻 Languages: Go (100.0%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 27
-* 📈 Lines of Code: 931
-* 📄 Lines of Documentation: 81
-* 📅 Development Period: 2025-06-25 to 2025-10-18
-* 🔥 Recent Activity: 105.6 days (avg. age of last 42 commits)
-* ⚖️ License: BSD-2-Clause
-* 🏷️ Latest Release: v0.2.0 (2025-10-18)
-* 🎵 Vibe-Coded: This project has been vibe coded
-
-
-`timr` is a minimalist command-line stopwatch timer written in Go that helps developers track time spent on tasks. It provides a persistent timer that saves state to disk, allowing you to start, stop, pause, and resume time tracking across terminal sessions. The tool supports multiple viewing modes including a standard status display (with formatted or raw output in seconds/minutes), a live full-screen view with keyboard controls, and specialized output for shell prompt integration.
-
-The architecture is straightforward: it's a Go-based CLI application that persists timer state to the filesystem, enabling continuous tracking even when the program isn't actively running. Key features include basic timer controls (start/stop/continue/reset), flexible status reporting formats for automation, and fish shell integration that displays a color-coded timer icon and elapsed time directly in your prompt—making it effortless to keep track of how long you've been working without context switching.
-
-=> https://codeberg.org/snonux/timr View on Codeberg
-=> https://github.com/snonux/timr View on GitHub
-
----
-
### tasksamurai
* 💻 Languages: Go (99.8%), YAML (0.2%)
@@ -255,7 +255,7 @@ The architecture is straightforward: it's a Go-based CLI application that persis
* 📈 Lines of Code: 6168
* 📄 Lines of Documentation: 164
* 📅 Development Period: 2025-06-19 to 2025-11-02
-* 🔥 Recent Activity: 123.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 137.3 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.9.3 (2025-10-05)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -282,7 +282,7 @@ Under the hood, Task Samurai acts as a front-end wrapper that invokes the native
* 📈 Lines of Code: 13072
* 📄 Lines of Documentation: 680
* 📅 Development Period: 2024-01-18 to 2025-10-09
-* 🔥 Recent Activity: 142.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 155.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -309,7 +309,7 @@ The tool is implemented in Go and C, leveraging libbpfgo for BPF interaction. It
* 📈 Lines of Code: 4102
* 📄 Lines of Documentation: 357
* 📅 Development Period: 2024-05-04 to 2025-09-24
-* 🔥 Recent Activity: 165.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 178.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.2.0 (2025-09-24)
@@ -335,7 +335,7 @@ The implementation uses OAuth2 for LinkedIn authentication, stores configuration
* 📈 Lines of Code: 20091
* 📄 Lines of Documentation: 5674
* 📅 Development Period: 2020-01-09 to 2025-06-20
-* 🔥 Recent Activity: 168.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 182.5 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: v4.3.3 (2024-08-23)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -362,7 +362,7 @@ The architecture follows a client-server model where DTail servers run on target
* 📈 Lines of Code: 396
* 📄 Lines of Documentation: 24
* 📅 Development Period: 2025-04-18 to 2025-05-11
-* 🔥 Recent Activity: 188.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 201.8 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2025-05-11)
@@ -384,7 +384,7 @@ The tool reads host definitions from a YAML file specifying network interfaces (
* 📈 Lines of Code: 25762
* 📄 Lines of Documentation: 3101
* 📅 Development Period: 2008-05-15 to 2025-06-27
-* 🔥 Recent Activity: 201.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 215.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -409,7 +409,7 @@ The implementation follows a modular Java architecture with clear separation bet
* 📈 Lines of Code: 33
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2025-04-03 to 2025-04-03
-* 🔥 Recent Activity: 214.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 227.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -431,7 +431,7 @@ The implementation is intentionally straightforward, using Go's built-in testing
* 📈 Lines of Code: 1373
* 📄 Lines of Documentation: 48
* 📅 Development Period: 2024-12-05 to 2025-02-28
-* 🔥 Recent Activity: 254.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 268.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -449,11 +449,11 @@ The implementation centers around a DSL module that provides keywords like `file
* 💻 Languages: Shell (68.3%), CSS (28.4%), Config (1.9%), HTML (1.3%)
* 📚 Documentation: Text (76.1%), Markdown (23.9%)
-* 📊 Commits: 466
+* 📊 Commits: 468
* 📈 Lines of Code: 2285
* 📄 Lines of Documentation: 1180
-* 📅 Development Period: 2021-05-21 to 2025-08-31
-* 🔥 Recent Activity: 300.2 days (avg. age of last 42 commits)
+* 📅 Development Period: 2021-05-21 to 2025-11-06
+* 🔥 Recent Activity: 293.0 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🏷️ Latest Release: 3.0.0 (2024-10-01)
@@ -475,7 +475,7 @@ The architecture leverages GNU utilities (sed, grep, date) and optional tools li
* 📈 Lines of Code: 1246
* 📄 Lines of Documentation: 211
* 📅 Development Period: 2023-04-17 to 2025-10-28
-* 🔥 Recent Activity: 500.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 514.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.2.1 (2025-10-27)
@@ -499,7 +499,7 @@ The architecture is straightforward: JSON configuration defines checks (plugin p
* 📈 Lines of Code: 1133
* 📄 Lines of Documentation: 78
* 📅 Development Period: 2024-01-20 to 2025-09-13
-* 🔥 Recent Activity: 520.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 534.3 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.0.4 (2025-09-13)
@@ -525,7 +525,7 @@ The implementation leverages Go's cross-compilation capabilities and Fyne's UI a
* 📈 Lines of Code: 40
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2023-12-31 to 2025-08-11
-* 🔥 Recent Activity: 554.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 568.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -547,7 +547,7 @@ The implementation uses Alpine Linux as the base image for a minimal footprint,
* 📈 Lines of Code: 2851
* 📄 Lines of Documentation: 52
* 📅 Development Period: 2023-08-27 to 2025-08-08
-* 🔥 Recent Activity: 590.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 604.2 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🧪 Status: Experimental (no releases yet)
@@ -569,7 +569,7 @@ The infrastructure uses a **modular, layered architecture** with separate Terraf
* 📈 Lines of Code: 1525
* 📄 Lines of Documentation: 15
* 📅 Development Period: 2023-04-17 to 2023-11-19
-* 🔥 Recent Activity: 817.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 831.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -592,7 +592,7 @@ The architecture consists of client/server components for inter-node communicati
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2022-06-02 to 2024-04-20
-* 🔥 Recent Activity: 882.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 895.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -615,7 +615,7 @@ The implementation is a straightforward bash script using `qpdf` for PDF extract
* 📈 Lines of Code: 822
* 📄 Lines of Documentation: 106
* 📅 Development Period: 2018-05-26 to 2025-11-01
-* 🔥 Recent Activity: 1093.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1107.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.3.1 (2025-11-01)
@@ -637,7 +637,7 @@ The architecture leverages Git for storage and synchronization across multiple r
* 📈 Lines of Code: 41
* 📄 Lines of Documentation: 17
* 📅 Development Period: 2020-01-30 to 2025-04-30
-* 🔥 Recent Activity: 1175.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1189.4 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🧪 Status: Experimental (no releases yet)
@@ -659,7 +659,7 @@ The implementation uses a bash script that continuously monitors the `monitor-se
* 📈 Lines of Code: 342
* 📄 Lines of Documentation: 39
* 📅 Development Period: 2011-11-19 to 2022-04-02
-* 🔥 Recent Activity: 1395.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1409.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.5.0 (2022-02-21)
@@ -674,46 +674,46 @@ The architecture is straightforward and Unix-philosophy driven: users configure
---
-### algorithms
+### foo.zone
-* 💻 Languages: Go (99.2%), Make (0.8%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 82
-* 📈 Lines of Code: 1728
-* 📄 Lines of Documentation: 18
-* 📅 Development Period: 2020-07-12 to 2023-04-09
-* 🔥 Recent Activity: 1546.6 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
+* 📊 Commits: 3214
+* 📈 Lines of Code: 0
+* 📄 Lines of Documentation: 23
+* 📅 Development Period: 2021-05-21 to 2022-04-02
+* 🔥 Recent Activity: 1575.7 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
⚠️ **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.
-This is a Go-based algorithms refresher repository implementing fundamental computer science data structures and algorithms. It serves as educational practice material covering four main areas: sorting (insertion, selection, shell, merge, quicksort with 3-way partitioning, and parallel variants), searching (binary search trees, red-black trees, hash tables, and elementary search), priority queues (heap-based and elementary implementations), and basic data structures like array lists.
-
-The project is implemented in Go 1.19+ with comprehensive unit tests and benchmarking capabilities via Make targets, allowing developers to validate correctness and compare performance characteristics of different algorithmic approaches (e.g., parallel vs sequential sorting, heap vs elementary priority queues). The Makefile also includes profiling support for deeper performance analysis of specific algorithms.
+foo.zone: source code repository.
-=> https://codeberg.org/snonux/algorithms View on Codeberg
-=> https://github.com/snonux/algorithms View on GitHub
+=> https://codeberg.org/snonux/foo.zone View on Codeberg
+=> https://github.com/snonux/foo.zone View on GitHub
---
-### foo.zone
+### algorithms
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 3195
-* 📈 Lines of Code: 0
-* 📄 Lines of Documentation: 23
-* 📅 Development Period: 2021-05-21 to 2022-04-02
-* 🔥 Recent Activity: 1562.2 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
+* 💻 Languages: Go (99.2%), Make (0.8%)
+* 📚 Documentation: Text (90.3%), Markdown (9.7%)
+* 📊 Commits: 82
+* 📈 Lines of Code: 1682
+* 📄 Lines of Documentation: 185
+* 📅 Development Period: 2020-07-12 to 2023-04-02
+* 🔥 Recent Activity: 1696.5 days (avg. age of last 42 commits)
+* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
⚠️ **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.
-foo.zone: source code repository.
+This is a Go-based algorithms refresher repository implementing fundamental computer science data structures and algorithms. It serves as educational practice material covering four main areas: sorting (insertion, selection, shell, merge, quicksort with 3-way partitioning, and parallel variants), searching (binary search trees, red-black trees, hash tables, and elementary search), priority queues (heap-based and elementary implementations), and basic data structures like array lists.
-=> https://codeberg.org/snonux/foo.zone View on Codeberg
-=> https://github.com/snonux/foo.zone View on GitHub
+The project is implemented in Go 1.19+ with comprehensive unit tests and benchmarking capabilities via Make targets, allowing developers to validate correctness and compare performance characteristics of different algorithmic approaches (e.g., parallel vs sequential sorting, heap vs elementary priority queues). The Makefile also includes profiling support for deeper performance analysis of specific algorithms.
+
+=> https://codeberg.org/snonux/algorithms View on Codeberg
+=> https://github.com/snonux/algorithms View on GitHub
---
@@ -725,7 +725,7 @@ foo.zone: source code repository.
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 69
* 📅 Development Period: 2014-03-24 to 2022-04-23
-* 🔥 Recent Activity: 2027.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2041.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -744,7 +744,7 @@ perl-c-fibonacci: source code repository.
* 📊 Commits: 95
* 📈 Lines of Code: 195
* 📅 Development Period: 2013-03-22 to 2023-03-09
-* 🔥 Recent Activity: 2242.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2256.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v1.0.0 (2023-04-29)
@@ -767,7 +767,7 @@ The implementation uses an object-oriented architecture with specialized classes
* 📈 Lines of Code: 12420
* 📄 Lines of Documentation: 610
* 📅 Development Period: 2018-03-01 to 2020-01-22
-* 🔥 Recent Activity: 2569.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2582.6 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0.5.1 (2019-01-04)
@@ -792,7 +792,7 @@ The key advantage over traditional benchmarking tools is that it reproduces actu
* 📈 Lines of Code: 919
* 📄 Lines of Documentation: 12
* 📅 Development Period: 2015-01-02 to 2021-11-04
-* 🔥 Recent Activity: 3077.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3091.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.1.3 (2015-01-02)
@@ -815,7 +815,7 @@ Both handlers are implemented as Perl modules using Apache2's mod_perl API, conf
* 📈 Lines of Code: 18
* 📄 Lines of Documentation: 49
* 📅 Development Period: 2014-03-24 to 2021-11-05
-* 🔥 Recent Activity: 3313.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3327.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -838,7 +838,7 @@ The implementation uses a two-tier security architecture: SSH public key authent
* 📈 Lines of Code: 5360
* 📄 Lines of Documentation: 789
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3580.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3593.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.1 (2015-01-02)
@@ -861,7 +861,7 @@ Implemented in Perl, `mon` features automatic JSON backup before modifications (
* 📈 Lines of Code: 273
* 📄 Lines of Documentation: 32
* 📅 Development Period: 2015-09-29 to 2021-11-05
-* 🔥 Recent Activity: 3584.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3598.1 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0 (2015-10-26)
@@ -884,7 +884,7 @@ The tool is implemented as a lightweight Ruby script that prioritizes simplicity
* 📈 Lines of Code: 1839
* 📄 Lines of Documentation: 412
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3664.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3677.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2015-01-02)
@@ -907,7 +907,7 @@ The tool is implemented around a hierarchical configuration system (`/etc/pingdo
* 📈 Lines of Code: 499
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2015-05-24 to 2021-11-03
-* 🔥 Recent Activity: 3674.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3688.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1 (2015-06-01)
@@ -928,7 +928,7 @@ The implementation uses a concurrent architecture with goroutines for data colle
* 📊 Commits: 670
* 📈 Lines of Code: 1675
* 📅 Development Period: 2011-03-06 to 2018-12-22
-* 🔥 Recent Activity: 3730.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3744.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2018-12-22)
@@ -951,7 +951,7 @@ The implementation follows strict OO Perl conventions with explicit typing and p
* 📈 Lines of Code: 88
* 📄 Lines of Documentation: 148
* 📅 Development Period: 2015-06-18 to 2015-12-05
-* 🔥 Recent Activity: 3778.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3792.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -976,7 +976,7 @@ The implementation uses a two-stage debootstrap process: first creating a Debian
* 📈 Lines of Code: 1681
* 📄 Lines of Documentation: 539
* 📅 Development Period: 2014-03-10 to 2021-11-03
-* 🔥 Recent Activity: 4056.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4070.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-11-17)
@@ -999,7 +999,7 @@ The tool is implemented in Python and depends on the bigsuds library (F5's iCont
* 📈 Lines of Code: 65
* 📄 Lines of Documentation: 228
* 📅 Development Period: 2013-03-22 to 2021-11-04
-* 🔥 Recent Activity: 4111.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4124.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.0.0.0 (2013-03-22)
@@ -1022,7 +1022,7 @@ The implementation uses a **Makefile-based build system** with targets for compi
* 📈 Lines of Code: 136
* 📄 Lines of Documentation: 96
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4124.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4137.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.2.0 (2014-07-05)
@@ -1045,7 +1045,7 @@ The architecture uses three components working together: a Vim plugin that provi
* 📈 Lines of Code: 134
* 📄 Lines of Documentation: 106
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4131.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4145.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1.5 (2014-06-22)
@@ -1068,7 +1068,7 @@ The tool uses a clever client-server architecture where you run the identical co
* 📈 Lines of Code: 493
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2009-09-27 to 2021-11-02
-* 🔥 Recent Activity: 4174.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4188.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.9.3 (2014-06-14)
@@ -1091,7 +1091,7 @@ The architecture is lightweight and Unix-philosophy driven: password databases a
* 📈 Lines of Code: 286
* 📄 Lines of Documentation: 144
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4179.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4193.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.4.3 (2014-06-16)
@@ -1106,6 +1106,27 @@ Implemented in Perl using the JIRA::REST CPAN module, japi supports flexible con
---
+### loadbars
+
+* 💻 Languages: Perl (97.4%), Make (2.6%)
+* 📚 Documentation: Text (100.0%)
+* 📊 Commits: 527
+* 📈 Lines of Code: 1828
+* 📄 Lines of Documentation: 200
+* 📅 Development Period: 2010-11-05 to 2021-11-03
+* 🔥 Recent Activity: 4213.7 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🏷️ Latest Release: 0.7.5 (2014-06-22)
+
+⚠️ **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.
+
+loadbars: source code repository.
+
+=> https://codeberg.org/snonux/loadbars View on Codeberg
+=> https://github.com/snonux/loadbars View on GitHub
+
+---
+
### perl-poetry
* 💻 Languages: Perl (100.0%)
@@ -1114,7 +1135,7 @@ Implemented in Perl using the JIRA::REST CPAN module, japi supports flexible con
* 📈 Lines of Code: 191
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2014-03-24 to 2014-03-24
-* 🔥 Recent Activity: 4241.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4254.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -1135,7 +1156,7 @@ This project exemplifies creative coding where Perl keywords and constructs are
* 📊 Commits: 7
* 📈 Lines of Code: 80
* 📅 Development Period: 2011-07-09 to 2015-01-13
-* 🔥 Recent Activity: 4321.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4334.7 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1158,7 +1179,7 @@ The implementation uses a simple CGI script ([index.pl](file:///home/paul/git/gi
* 📈 Lines of Code: 124
* 📄 Lines of Documentation: 75
* 📅 Development Period: 2010-11-05 to 2021-11-05
-* 🔥 Recent Activity: 4361.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4375.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-06-22)
@@ -1173,34 +1194,13 @@ The implementation is remarkably simple: a shell script wrapper that invokes GNU
---
-### loadbars
-
-* 💻 Languages: Perl (97.4%), Make (2.6%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 527
-* 📈 Lines of Code: 1828
-* 📄 Lines of Documentation: 100
-* 📅 Development Period: 2010-11-05 to 2015-05-23
-* 🔥 Recent Activity: 4391.9 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ Latest Release: 0.7.5 (2014-06-22)
-
-⚠️ **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.
-
-loadbars: source code repository.
-
-=> https://codeberg.org/snonux/loadbars View on Codeberg
-=> https://github.com/snonux/loadbars View on GitHub
-
----
-
### perldaemon
* 💻 Languages: Perl (72.3%), Shell (23.8%), Config (3.9%)
* 📊 Commits: 110
* 📈 Lines of Code: 614
* 📅 Development Period: 2011-02-05 to 2022-04-21
-* 🔥 Recent Activity: 4441.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4454.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.4 (2022-04-29)
@@ -1223,7 +1223,7 @@ The implementation centers around an event loop with configurable intervals that
* 📈 Lines of Code: 122
* 📄 Lines of Documentation: 10
* 📅 Development Period: 2011-01-27 to 2014-06-22
-* 🔥 Recent Activity: 4772.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4785.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.2 (2011-01-27)
@@ -1246,7 +1246,7 @@ The architecture is remarkably simple: a single AWK script ([index.cgi](file:///
* 📈 Lines of Code: 720
* 📄 Lines of Documentation: 6
* 📅 Development Period: 2008-06-21 to 2021-11-03
-* 🔥 Recent Activity: 4835.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4848.6 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.3 (2009-02-08)
@@ -1263,29 +1263,6 @@ The implementation is minimalistic, consisting of just three main Java classes (
---
-### ychat
-
-* 💻 Languages: C++ (62.8%), C/C++ (27.1%), HTML (3.1%), Config (2.5%), Perl (1.9%), Shell (1.9%), Make (0.4%), CSS (0.2%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 67
-* 📈 Lines of Code: 27104
-* 📄 Lines of Documentation: 109
-* 📅 Development Period: 2008-05-15 to 2014-07-01
-* 🔥 Recent Activity: 5436.1 days (avg. age of last 42 commits)
-* ⚖️ License: GPL-2.0
-* 🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)
-
-⚠️ **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.
-
-yChat is a high-performance, web-based chat server written in C++ that allows users to connect through standard web browsers without requiring special client software. It functions as a standalone HTTP server on a customizable port (default 2000), eliminating the need for Apache or other web servers, and uses only HTML, CSS, and JavaScript on the client side. The project was developed under the GNU GPL and designed for portability across POSIX-compliant systems including Linux, FreeBSD, and other UNIX variants.
-
-The architecture emphasizes speed and scalability through several key design choices: multi-threaded POSIX implementation with thread pooling to efficiently handle concurrent users, hash maps for O(1) data lookups, and a smart garbage collection system that caches inactive user and room objects for quick reuse. It features MySQL database support for registered users, a modular plugin system through dynamically loadable modules, HTML template-based customization, XML configuration, and an ncurses-based administration interface with CLI support. The codebase can also be converted to yhttpd, a standalone web server subset. Performance benchmarks show it handling over 1000 requests/second while using minimal CPU resources, with the system supporting comprehensive logging, multi-language support, and Apache-compatible log formats.
-
-=> https://codeberg.org/snonux/ychat View on Codeberg
-=> https://github.com/snonux/ychat View on GitHub
-
----
-
### netcalendar
* 💻 Languages: Java (83.0%), HTML (12.9%), XML (3.0%), CSS (0.8%), Make (0.2%)
@@ -1294,7 +1271,7 @@ The architecture emphasizes speed and scalability through several key design cho
* 📈 Lines of Code: 17380
* 📄 Lines of Documentation: 947
* 📅 Development Period: 2009-02-07 to 2021-05-01
-* 🔥 Recent Activity: 5465.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5479.3 days (avg. age of last 42 commits)
* ⚖️ License: GPL-2.0
* 🏷️ Latest Release: v0.1 (2009-02-08)
@@ -1313,13 +1290,36 @@ The key feature is its intelligent color-coded event visualization system that h
---
+### ychat
+
+* 💻 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%)
+* 📚 Documentation: Text (100.0%)
+* 📊 Commits: 67
+* 📈 Lines of Code: 67884
+* 📄 Lines of Documentation: 127
+* 📅 Development Period: 2008-05-15 to 2014-06-30
+* 🔥 Recent Activity: 5499.6 days (avg. age of last 42 commits)
+* ⚖️ License: GPL-2.0
+* 🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)
+
+⚠️ **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.
+
+yChat is a high-performance, web-based chat server written in C++ that allows users to connect through standard web browsers without requiring special client software. It functions as a standalone HTTP server on a customizable port (default 2000), eliminating the need for Apache or other web servers, and uses only HTML, CSS, and JavaScript on the client side. The project was developed under the GNU GPL and designed for portability across POSIX-compliant systems including Linux, FreeBSD, and other UNIX variants.
+
+The architecture emphasizes speed and scalability through several key design choices: multi-threaded POSIX implementation with thread pooling to efficiently handle concurrent users, hash maps for O(1) data lookups, and a smart garbage collection system that caches inactive user and room objects for quick reuse. It features MySQL database support for registered users, a modular plugin system through dynamically loadable modules, HTML template-based customization, XML configuration, and an ncurses-based administration interface with CLI support. The codebase can also be converted to yhttpd, a standalone web server subset. Performance benchmarks show it handling over 1000 requests/second while using minimal CPU resources, with the system supporting comprehensive logging, multi-language support, and Apache-compatible log formats.
+
+=> https://codeberg.org/snonux/ychat View on Codeberg
+=> https://github.com/snonux/ychat View on GitHub
+
+---
+
### hsbot
* 💻 Languages: Haskell (98.5%), Make (1.5%)
* 📊 Commits: 80
* 📈 Lines of Code: 601
* 📅 Development Period: 2009-11-22 to 2011-10-17
-* 🔥 Recent Activity: 5561.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5574.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1334,45 +1334,48 @@ The implementation uses a modular design with core components separated into Bas
---
-### fype
+### vs-sim
-* 💻 Languages: C (63.7%), C/C++ (25.3%), HTML (9.2%), Make (1.8%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 99
-* 📈 Lines of Code: 6450
-* 📄 Lines of Documentation: 516
-* 📅 Development Period: 2008-05-15 to 2014-06-30
-* 🔥 Recent Activity: 5691.8 days (avg. age of last 42 commits)
+* 💻 Languages: Java (98.8%), Shell (0.7%), XML (0.4%)
+* 📚 Documentation: LaTeX (98.4%), Text (1.4%), Markdown (0.2%)
+* 📊 Commits: 411
+* 📈 Lines of Code: 16303
+* 📄 Lines of Documentation: 2903
+* 📅 Development Period: 2008-05-15 to 2021-05-01
+* 🔥 Recent Activity: 5871.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
-* 🧪 Status: Experimental (no releases yet)
+* 🏷️ Latest Release: v1.0 (2008-08-24)
⚠️ **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.
-Fype is a 32-bit scripting language designed as a fun, AWK-inspired alternative with a simpler syntax. It supports variables with automatic type conversion, functions, loops, control structures, and built-in operations for math, I/O, and system calls. A notable feature is its support for "synonyms" (references/aliases to variables and functions), along with both procedures (using the caller's namespace) and functions (with lexical scoping). The language uses a straightforward syntax with single-character comments (#) and statement-based execution terminated by semicolons.
+=> showcase/vs-sim/image-1.jpg vs-sim screenshot
-The implementation uses a simple top-down parser with maximum lookahead of 1, interpreting code simultaneously as it parses, which means syntax errors are only caught at runtime. Written in C and compiled with GCC, it's designed for BSD systems (tested on FreeBSD 7.0) and uses NetBSD Make for building. The project is still unreleased and incomplete, but aims to eventually match AWK's capabilities while potentially adding modern features like function pointers and closures, though explicitly avoiding complexity like OOP, Unicode, or threading.
+VS-Sim is a Java-based open source simulator for distributed systems, designed to help students and researchers visualize and understand distributed computing concepts. Based on the roadmap, it appears to support simulating various distributed systems protocols including Lamport and vector clocks for logical time management, and potentially distributed file systems like NFS and AFS. The simulator features event-based simulation, logging capabilities, and a plugin architecture.
-=> https://codeberg.org/snonux/fype View on Codeberg
-=> https://github.com/snonux/fype View on GitHub
+The project appears to be currently inactive, with the repository containing minimal source code at present. It was originally developed as part of academic work (referenced as "diplomarbeit.pdf" in the roadmap), likely for teaching distributed systems concepts through interactive simulation and protocol visualization.
+
+=> https://codeberg.org/snonux/vs-sim View on Codeberg
+=> https://github.com/snonux/vs-sim View on GitHub
---
-### vs-sim
+### fype
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 411
-* 📈 Lines of Code: 0
-* 📄 Lines of Documentation: 7
-* 📅 Development Period: 2008-05-15 to 2015-05-23
-* 🔥 Recent Activity: 5922.4 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ Latest Release: v1.0 (2008-08-24)
+* 💻 Languages: C (71.2%), C/C++ (20.7%), HTML (6.6%), Make (1.5%)
+* 📚 Documentation: Text (60.3%), LaTeX (39.7%)
+* 📊 Commits: 99
+* 📈 Lines of Code: 8954
+* 📄 Lines of Documentation: 1432
+* 📅 Development Period: 2008-05-15 to 2014-06-30
+* 🔥 Recent Activity: 5961.6 days (avg. age of last 42 commits)
+* ⚖️ License: Custom License
+* 🧪 Status: Experimental (no releases yet)
⚠️ **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.
-VS-Sim is a Java-based open source simulator for distributed systems, designed to help students and researchers visualize and understand distributed computing concepts. Based on the roadmap, it appears to support simulating various distributed systems protocols including Lamport and vector clocks for logical time management, and potentially distributed file systems like NFS and AFS. The simulator features event-based simulation, logging capabilities, and a plugin architecture.
+Fype is a 32-bit scripting language designed as a fun, AWK-inspired alternative with a simpler syntax. It supports variables with automatic type conversion, functions, loops, control structures, and built-in operations for math, I/O, and system calls. A notable feature is its support for "synonyms" (references/aliases to variables and functions), along with both procedures (using the caller's namespace) and functions (with lexical scoping). The language uses a straightforward syntax with single-character comments (#) and statement-based execution terminated by semicolons.
-The project appears to be currently inactive, with the repository containing minimal source code at present. It was originally developed as part of academic work (referenced as "diplomarbeit.pdf" in the roadmap), likely for teaching distributed systems concepts through interactive simulation and protocol visualization.
+The implementation uses a simple top-down parser with maximum lookahead of 1, interpreting code simultaneously as it parses, which means syntax errors are only caught at runtime. Written in C and compiled with GCC, it's designed for BSD systems (tested on FreeBSD 7.0) and uses NetBSD Make for building. The project is still unreleased and incomplete, but aims to eventually match AWK's capabilities while potentially adding modern features like function pointers and closures, though explicitly avoiding complexity like OOP, Unicode, or threading.
-=> https://codeberg.org/snonux/vs-sim View on Codeberg
-=> https://github.com/snonux/vs-sim View on GitHub
+=> https://codeberg.org/snonux/fype View on Codeberg
+=> https://github.com/snonux/fype View on GitHub
diff --git a/about/showcase.gmi.tpl b/about/showcase.gmi.tpl
index b76a60fd..008eb5cd 100644
--- a/about/showcase.gmi.tpl
+++ b/about/showcase.gmi.tpl
@@ -1,6 +1,6 @@
# Project Showcase
-Generated on: 2025-11-03
+Generated on: 2025-11-16
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.
@@ -9,11 +9,11 @@ This page showcases my side projects, providing an overview of what each project
## Overall Statistics
* 📦 Total Projects: 56
-* 📊 Total Commits: 11,329
-* 📈 Total Lines of Code: 225,638
-* 📄 Total Lines of Documentation: 22,247
-* 💻 Languages: Go (38.0%), Java (17.9%), C (7.6%), C++ (7.5%), Perl (7.3%), C/C++ (5.4%), HTML (5.2%), Shell (2.7%), Config (1.6%), Ruby (1.3%), HCL (1.2%), YAML (0.8%), Python (0.7%), Make (0.6%), CSS (0.6%), Raku (0.3%), JSON (0.3%), XML (0.3%), Haskell (0.3%), TOML (0.1%)
-* 📚 Documentation: Text (50.5%), Markdown (49.5%)
+* 📊 Total Commits: 11,370
+* 📈 Total Lines of Code: 287,019
+* 📄 Total Lines of Documentation: 25,503
+* 💻 Languages: Go (29.8%), Java (19.7%), C++ (13.0%), C/C++ (7.2%), C (6.7%), Perl (6.2%), Shell (5.3%), HTML (5.0%), Config (1.6%), Ruby (1.0%), HCL (1.0%), Make (0.7%), YAML (0.6%), Python (0.6%), CSS (0.5%), Raku (0.3%), JSON (0.3%), XML (0.2%), Haskell (0.2%), TOML (0.1%)
+* 📚 Documentation: Text (43.5%), Markdown (43.1%), LaTeX (13.4%)
* 🎵 Vibe-Coded Projects: 5 out of 56 (8.9%)
* 🤖 AI-Assisted Projects (including vibe-coded): 9 out of 56 (16.1% AI-assisted, 83.9% human-only)
* 🚀 Release Status: 37 released, 19 experimental (66.1% with releases, 33.9% experimental)
@@ -22,13 +22,13 @@ This page showcases my side projects, providing an overview of what each project
### conf
-* 💻 Languages: Perl (30.5%), YAML (25.3%), Shell (22.6%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
-* 📚 Documentation: Text (69.4%), Markdown (30.6%)
-* 📊 Commits: 1031
-* 📈 Lines of Code: 6270
-* 📄 Lines of Documentation: 1440
-* 📅 Development Period: 2021-12-28 to 2025-11-02
-* 🔥 Recent Activity: 20.9 days (avg. age of last 42 commits)
+* 💻 Languages: Perl (30.4%), YAML (25.2%), Shell (22.8%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
+* 📚 Documentation: Markdown (69.8%), Text (30.2%)
+* 📊 Commits: 1045
+* 📈 Lines of Code: 6284
+* 📄 Lines of Documentation: 632
+* 📅 Development Period: 2021-12-28 to 2025-11-15
+* 🔥 Recent Activity: 20.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -50,7 +50,7 @@ The project is organized into distinct subdirectories: `dotfiles/` contains shel
* 📈 Lines of Code: 3408
* 📄 Lines of Documentation: 82
* 📅 Development Period: 2025-10-01 to 2025-10-24
-* 🔥 Recent Activity: 26.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 40.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.3.0 (2025-10-24)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -69,15 +69,15 @@ The implementation follows clean Go architecture with domain logic organized und
### hexai
-* 💻 Languages: Go (69.5%), HTML (30.5%)
+* 💻 Languages: Go (65.3%), HTML (34.7%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 238
-* 📈 Lines of Code: 26565
-* 📄 Lines of Documentation: 564
-* 📅 Development Period: 2025-08-01 to 2025-10-04
-* 🔥 Recent Activity: 40.9 days (avg. age of last 42 commits)
+* 📊 Commits: 240
+* 📈 Lines of Code: 28331
+* 📄 Lines of Documentation: 562
+* 📅 Development Period: 2025-08-01 to 2025-11-03
+* 🔥 Recent Activity: 52.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
-* 🏷️ Latest Release: v0.15.1 (2025-10-03)
+* 🏷️ Latest Release: v0.15.3 (2025-11-03)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -100,7 +100,7 @@ The project is implemented as an LSP server written in Go, with a TUI component
* 📈 Lines of Code: 1902
* 📄 Lines of Documentation: 423
* 📅 Development Period: 2023-01-02 to 2025-11-01
-* 🔥 Recent Activity: 72.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 86.3 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.2.0 (2025-10-21)
@@ -114,6 +114,29 @@ The implementation uses a modular Perl architecture with specialized components:
---
+### timr
+
+* 💻 Languages: Go (94.5%), Shell (5.5%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 31
+* 📈 Lines of Code: 991
+* 📄 Lines of Documentation: 50
+* 📅 Development Period: 2025-06-25 to 2025-11-08
+* 🔥 Recent Activity: 104.8 days (avg. age of last 42 commits)
+* ⚖️ License: BSD-2-Clause
+* 🏷️ Latest Release: v0.3.0 (2025-11-08)
+* 🎵 Vibe-Coded: This project has been vibe coded
+
+
+`timr` is a minimalist command-line stopwatch timer written in Go that helps developers track time spent on tasks. It provides a persistent timer that saves state to disk, allowing you to start, stop, pause, and resume time tracking across terminal sessions. The tool supports multiple viewing modes including a standard status display (with formatted or raw output in seconds/minutes), a live full-screen view with keyboard controls, and specialized output for shell prompt integration.
+
+The architecture is straightforward: it's a Go-based CLI application that persists timer state to the filesystem, enabling continuous tracking even when the program isn't actively running. Key features include basic timer controls (start/stop/continue/reset), flexible status reporting formats for automation, and fish shell integration that displays a color-coded timer icon and elapsed time directly in your prompt—making it effortless to keep track of how long you've been working without context switching.
+
+=> https://codeberg.org/snonux/timr View on Codeberg
+=> https://github.com/snonux/timr View on GitHub
+
+---
+
### gitsyncer
* 💻 Languages: Go (92.3%), Shell (7.3%), JSON (0.4%)
@@ -122,7 +145,7 @@ The implementation uses a modular Perl architecture with specialized components:
* 📈 Lines of Code: 10152
* 📄 Lines of Documentation: 2431
* 📅 Development Period: 2025-06-23 to 2025-10-31
-* 🔥 Recent Activity: 91.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 105.2 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.10.1 (2025-10-31)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -145,7 +168,7 @@ The implementation uses a git remotes approach: it clones from one organization,
* 📈 Lines of Code: 12003
* 📄 Lines of Documentation: 361
* 📅 Development Period: 2025-07-14 to 2025-08-02
-* 🔥 Recent Activity: 103.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 117.2 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.7.5 (2025-08-02)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -164,29 +187,6 @@ The project offers both a keyboard-driven GUI for interactive use and a CLI for
---
-### timr
-
-* 💻 Languages: Go (100.0%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 27
-* 📈 Lines of Code: 931
-* 📄 Lines of Documentation: 81
-* 📅 Development Period: 2025-06-25 to 2025-10-18
-* 🔥 Recent Activity: 105.6 days (avg. age of last 42 commits)
-* ⚖️ License: BSD-2-Clause
-* 🏷️ Latest Release: v0.2.0 (2025-10-18)
-* 🎵 Vibe-Coded: This project has been vibe coded
-
-
-`timr` is a minimalist command-line stopwatch timer written in Go that helps developers track time spent on tasks. It provides a persistent timer that saves state to disk, allowing you to start, stop, pause, and resume time tracking across terminal sessions. The tool supports multiple viewing modes including a standard status display (with formatted or raw output in seconds/minutes), a live full-screen view with keyboard controls, and specialized output for shell prompt integration.
-
-The architecture is straightforward: it's a Go-based CLI application that persists timer state to the filesystem, enabling continuous tracking even when the program isn't actively running. Key features include basic timer controls (start/stop/continue/reset), flexible status reporting formats for automation, and fish shell integration that displays a color-coded timer icon and elapsed time directly in your prompt—making it effortless to keep track of how long you've been working without context switching.
-
-=> https://codeberg.org/snonux/timr View on Codeberg
-=> https://github.com/snonux/timr View on GitHub
-
----
-
### tasksamurai
* 💻 Languages: Go (99.8%), YAML (0.2%)
@@ -195,7 +195,7 @@ The architecture is straightforward: it's a Go-based CLI application that persis
* 📈 Lines of Code: 6168
* 📄 Lines of Documentation: 164
* 📅 Development Period: 2025-06-19 to 2025-11-02
-* 🔥 Recent Activity: 123.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 137.3 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.9.3 (2025-10-05)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -222,7 +222,7 @@ Under the hood, Task Samurai acts as a front-end wrapper that invokes the native
* 📈 Lines of Code: 13072
* 📄 Lines of Documentation: 680
* 📅 Development Period: 2024-01-18 to 2025-10-09
-* 🔥 Recent Activity: 142.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 155.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -249,7 +249,7 @@ The tool is implemented in Go and C, leveraging libbpfgo for BPF interaction. It
* 📈 Lines of Code: 4102
* 📄 Lines of Documentation: 357
* 📅 Development Period: 2024-05-04 to 2025-09-24
-* 🔥 Recent Activity: 165.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 178.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.2.0 (2025-09-24)
@@ -275,7 +275,7 @@ The implementation uses OAuth2 for LinkedIn authentication, stores configuration
* 📈 Lines of Code: 20091
* 📄 Lines of Documentation: 5674
* 📅 Development Period: 2020-01-09 to 2025-06-20
-* 🔥 Recent Activity: 168.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 182.5 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: v4.3.3 (2024-08-23)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -302,7 +302,7 @@ The architecture follows a client-server model where DTail servers run on target
* 📈 Lines of Code: 396
* 📄 Lines of Documentation: 24
* 📅 Development Period: 2025-04-18 to 2025-05-11
-* 🔥 Recent Activity: 188.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 201.8 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2025-05-11)
@@ -324,7 +324,7 @@ The tool reads host definitions from a YAML file specifying network interfaces (
* 📈 Lines of Code: 25762
* 📄 Lines of Documentation: 3101
* 📅 Development Period: 2008-05-15 to 2025-06-27
-* 🔥 Recent Activity: 201.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 215.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -349,7 +349,7 @@ The implementation follows a modular Java architecture with clear separation bet
* 📈 Lines of Code: 33
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2025-04-03 to 2025-04-03
-* 🔥 Recent Activity: 214.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 227.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -371,7 +371,7 @@ The implementation is intentionally straightforward, using Go's built-in testing
* 📈 Lines of Code: 1373
* 📄 Lines of Documentation: 48
* 📅 Development Period: 2024-12-05 to 2025-02-28
-* 🔥 Recent Activity: 254.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 268.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -389,11 +389,11 @@ The implementation centers around a DSL module that provides keywords like `file
* 💻 Languages: Shell (68.3%), CSS (28.4%), Config (1.9%), HTML (1.3%)
* 📚 Documentation: Text (76.1%), Markdown (23.9%)
-* 📊 Commits: 466
+* 📊 Commits: 468
* 📈 Lines of Code: 2285
* 📄 Lines of Documentation: 1180
-* 📅 Development Period: 2021-05-21 to 2025-08-31
-* 🔥 Recent Activity: 300.2 days (avg. age of last 42 commits)
+* 📅 Development Period: 2021-05-21 to 2025-11-06
+* 🔥 Recent Activity: 293.0 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🏷️ Latest Release: 3.0.0 (2024-10-01)
@@ -415,7 +415,7 @@ The architecture leverages GNU utilities (sed, grep, date) and optional tools li
* 📈 Lines of Code: 1246
* 📄 Lines of Documentation: 211
* 📅 Development Period: 2023-04-17 to 2025-10-28
-* 🔥 Recent Activity: 500.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 514.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.2.1 (2025-10-27)
@@ -439,7 +439,7 @@ The architecture is straightforward: JSON configuration defines checks (plugin p
* 📈 Lines of Code: 1133
* 📄 Lines of Documentation: 78
* 📅 Development Period: 2024-01-20 to 2025-09-13
-* 🔥 Recent Activity: 520.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 534.3 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.0.4 (2025-09-13)
@@ -465,7 +465,7 @@ The implementation leverages Go's cross-compilation capabilities and Fyne's UI a
* 📈 Lines of Code: 40
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2023-12-31 to 2025-08-11
-* 🔥 Recent Activity: 554.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 568.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -487,7 +487,7 @@ The implementation uses Alpine Linux as the base image for a minimal footprint,
* 📈 Lines of Code: 2851
* 📄 Lines of Documentation: 52
* 📅 Development Period: 2023-08-27 to 2025-08-08
-* 🔥 Recent Activity: 590.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 604.2 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🧪 Status: Experimental (no releases yet)
@@ -509,7 +509,7 @@ The infrastructure uses a **modular, layered architecture** with separate Terraf
* 📈 Lines of Code: 1525
* 📄 Lines of Documentation: 15
* 📅 Development Period: 2023-04-17 to 2023-11-19
-* 🔥 Recent Activity: 817.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 831.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -532,7 +532,7 @@ The architecture consists of client/server components for inter-node communicati
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2022-06-02 to 2024-04-20
-* 🔥 Recent Activity: 882.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 895.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -555,7 +555,7 @@ The implementation is a straightforward bash script using `qpdf` for PDF extract
* 📈 Lines of Code: 822
* 📄 Lines of Documentation: 106
* 📅 Development Period: 2018-05-26 to 2025-11-01
-* 🔥 Recent Activity: 1093.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1107.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.3.1 (2025-11-01)
@@ -577,7 +577,7 @@ The architecture leverages Git for storage and synchronization across multiple r
* 📈 Lines of Code: 41
* 📄 Lines of Documentation: 17
* 📅 Development Period: 2020-01-30 to 2025-04-30
-* 🔥 Recent Activity: 1175.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1189.4 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🧪 Status: Experimental (no releases yet)
@@ -599,7 +599,7 @@ The implementation uses a bash script that continuously monitors the `monitor-se
* 📈 Lines of Code: 342
* 📄 Lines of Documentation: 39
* 📅 Development Period: 2011-11-19 to 2022-04-02
-* 🔥 Recent Activity: 1395.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1409.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.5.0 (2022-02-21)
@@ -614,46 +614,46 @@ The architecture is straightforward and Unix-philosophy driven: users configure
---
-### algorithms
+### foo.zone
-* 💻 Languages: Go (99.2%), Make (0.8%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 82
-* 📈 Lines of Code: 1728
-* 📄 Lines of Documentation: 18
-* 📅 Development Period: 2020-07-12 to 2023-04-09
-* 🔥 Recent Activity: 1546.6 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
+* 📊 Commits: 3214
+* 📈 Lines of Code: 0
+* 📄 Lines of Documentation: 23
+* 📅 Development Period: 2021-05-21 to 2022-04-02
+* 🔥 Recent Activity: 1575.7 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
⚠️ **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.
-This is a Go-based algorithms refresher repository implementing fundamental computer science data structures and algorithms. It serves as educational practice material covering four main areas: sorting (insertion, selection, shell, merge, quicksort with 3-way partitioning, and parallel variants), searching (binary search trees, red-black trees, hash tables, and elementary search), priority queues (heap-based and elementary implementations), and basic data structures like array lists.
-
-The project is implemented in Go 1.19+ with comprehensive unit tests and benchmarking capabilities via Make targets, allowing developers to validate correctness and compare performance characteristics of different algorithmic approaches (e.g., parallel vs sequential sorting, heap vs elementary priority queues). The Makefile also includes profiling support for deeper performance analysis of specific algorithms.
+foo.zone: source code repository.
-=> https://codeberg.org/snonux/algorithms View on Codeberg
-=> https://github.com/snonux/algorithms View on GitHub
+=> https://codeberg.org/snonux/foo.zone View on Codeberg
+=> https://github.com/snonux/foo.zone View on GitHub
---
-### foo.zone
+### algorithms
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 3195
-* 📈 Lines of Code: 0
-* 📄 Lines of Documentation: 23
-* 📅 Development Period: 2021-05-21 to 2022-04-02
-* 🔥 Recent Activity: 1562.2 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
+* 💻 Languages: Go (99.2%), Make (0.8%)
+* 📚 Documentation: Text (90.3%), Markdown (9.7%)
+* 📊 Commits: 82
+* 📈 Lines of Code: 1682
+* 📄 Lines of Documentation: 185
+* 📅 Development Period: 2020-07-12 to 2023-04-02
+* 🔥 Recent Activity: 1696.5 days (avg. age of last 42 commits)
+* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
⚠️ **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.
-foo.zone: source code repository.
+This is a Go-based algorithms refresher repository implementing fundamental computer science data structures and algorithms. It serves as educational practice material covering four main areas: sorting (insertion, selection, shell, merge, quicksort with 3-way partitioning, and parallel variants), searching (binary search trees, red-black trees, hash tables, and elementary search), priority queues (heap-based and elementary implementations), and basic data structures like array lists.
-=> https://codeberg.org/snonux/foo.zone View on Codeberg
-=> https://github.com/snonux/foo.zone View on GitHub
+The project is implemented in Go 1.19+ with comprehensive unit tests and benchmarking capabilities via Make targets, allowing developers to validate correctness and compare performance characteristics of different algorithmic approaches (e.g., parallel vs sequential sorting, heap vs elementary priority queues). The Makefile also includes profiling support for deeper performance analysis of specific algorithms.
+
+=> https://codeberg.org/snonux/algorithms View on Codeberg
+=> https://github.com/snonux/algorithms View on GitHub
---
@@ -665,7 +665,7 @@ foo.zone: source code repository.
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 69
* 📅 Development Period: 2014-03-24 to 2022-04-23
-* 🔥 Recent Activity: 2027.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2041.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -684,7 +684,7 @@ perl-c-fibonacci: source code repository.
* 📊 Commits: 95
* 📈 Lines of Code: 195
* 📅 Development Period: 2013-03-22 to 2023-03-09
-* 🔥 Recent Activity: 2242.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2256.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v1.0.0 (2023-04-29)
@@ -707,7 +707,7 @@ The implementation uses an object-oriented architecture with specialized classes
* 📈 Lines of Code: 12420
* 📄 Lines of Documentation: 610
* 📅 Development Period: 2018-03-01 to 2020-01-22
-* 🔥 Recent Activity: 2569.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2582.6 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0.5.1 (2019-01-04)
@@ -732,7 +732,7 @@ The key advantage over traditional benchmarking tools is that it reproduces actu
* 📈 Lines of Code: 919
* 📄 Lines of Documentation: 12
* 📅 Development Period: 2015-01-02 to 2021-11-04
-* 🔥 Recent Activity: 3077.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3091.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.1.3 (2015-01-02)
@@ -755,7 +755,7 @@ Both handlers are implemented as Perl modules using Apache2's mod_perl API, conf
* 📈 Lines of Code: 18
* 📄 Lines of Documentation: 49
* 📅 Development Period: 2014-03-24 to 2021-11-05
-* 🔥 Recent Activity: 3313.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3327.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -778,7 +778,7 @@ The implementation uses a two-tier security architecture: SSH public key authent
* 📈 Lines of Code: 5360
* 📄 Lines of Documentation: 789
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3580.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3593.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.1 (2015-01-02)
@@ -801,7 +801,7 @@ Implemented in Perl, `mon` features automatic JSON backup before modifications (
* 📈 Lines of Code: 273
* 📄 Lines of Documentation: 32
* 📅 Development Period: 2015-09-29 to 2021-11-05
-* 🔥 Recent Activity: 3584.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3598.1 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0 (2015-10-26)
@@ -824,7 +824,7 @@ The tool is implemented as a lightweight Ruby script that prioritizes simplicity
* 📈 Lines of Code: 1839
* 📄 Lines of Documentation: 412
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3664.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3677.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2015-01-02)
@@ -847,7 +847,7 @@ The tool is implemented around a hierarchical configuration system (`/etc/pingdo
* 📈 Lines of Code: 499
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2015-05-24 to 2021-11-03
-* 🔥 Recent Activity: 3674.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3688.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1 (2015-06-01)
@@ -868,7 +868,7 @@ The implementation uses a concurrent architecture with goroutines for data colle
* 📊 Commits: 670
* 📈 Lines of Code: 1675
* 📅 Development Period: 2011-03-06 to 2018-12-22
-* 🔥 Recent Activity: 3730.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3744.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2018-12-22)
@@ -891,7 +891,7 @@ The implementation follows strict OO Perl conventions with explicit typing and p
* 📈 Lines of Code: 88
* 📄 Lines of Documentation: 148
* 📅 Development Period: 2015-06-18 to 2015-12-05
-* 🔥 Recent Activity: 3778.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3792.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -916,7 +916,7 @@ The implementation uses a two-stage debootstrap process: first creating a Debian
* 📈 Lines of Code: 1681
* 📄 Lines of Documentation: 539
* 📅 Development Period: 2014-03-10 to 2021-11-03
-* 🔥 Recent Activity: 4056.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4070.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-11-17)
@@ -939,7 +939,7 @@ The tool is implemented in Python and depends on the bigsuds library (F5's iCont
* 📈 Lines of Code: 65
* 📄 Lines of Documentation: 228
* 📅 Development Period: 2013-03-22 to 2021-11-04
-* 🔥 Recent Activity: 4111.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4124.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.0.0.0 (2013-03-22)
@@ -962,7 +962,7 @@ The implementation uses a **Makefile-based build system** with targets for compi
* 📈 Lines of Code: 136
* 📄 Lines of Documentation: 96
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4124.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4137.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.2.0 (2014-07-05)
@@ -985,7 +985,7 @@ The architecture uses three components working together: a Vim plugin that provi
* 📈 Lines of Code: 134
* 📄 Lines of Documentation: 106
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4131.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4145.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1.5 (2014-06-22)
@@ -1008,7 +1008,7 @@ The tool uses a clever client-server architecture where you run the identical co
* 📈 Lines of Code: 493
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2009-09-27 to 2021-11-02
-* 🔥 Recent Activity: 4174.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4188.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.9.3 (2014-06-14)
@@ -1031,7 +1031,7 @@ The architecture is lightweight and Unix-philosophy driven: password databases a
* 📈 Lines of Code: 286
* 📄 Lines of Documentation: 144
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4179.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4193.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.4.3 (2014-06-16)
@@ -1046,6 +1046,27 @@ Implemented in Perl using the JIRA::REST CPAN module, japi supports flexible con
---
+### loadbars
+
+* 💻 Languages: Perl (97.4%), Make (2.6%)
+* 📚 Documentation: Text (100.0%)
+* 📊 Commits: 527
+* 📈 Lines of Code: 1828
+* 📄 Lines of Documentation: 200
+* 📅 Development Period: 2010-11-05 to 2021-11-03
+* 🔥 Recent Activity: 4213.7 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🏷️ Latest Release: 0.7.5 (2014-06-22)
+
+⚠️ **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.
+
+loadbars: source code repository.
+
+=> https://codeberg.org/snonux/loadbars View on Codeberg
+=> https://github.com/snonux/loadbars View on GitHub
+
+---
+
### perl-poetry
* 💻 Languages: Perl (100.0%)
@@ -1054,7 +1075,7 @@ Implemented in Perl using the JIRA::REST CPAN module, japi supports flexible con
* 📈 Lines of Code: 191
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2014-03-24 to 2014-03-24
-* 🔥 Recent Activity: 4241.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4254.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -1075,7 +1096,7 @@ This project exemplifies creative coding where Perl keywords and constructs are
* 📊 Commits: 7
* 📈 Lines of Code: 80
* 📅 Development Period: 2011-07-09 to 2015-01-13
-* 🔥 Recent Activity: 4321.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4334.7 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1098,7 +1119,7 @@ The implementation uses a simple CGI script ([index.pl](file:///home/paul/git/gi
* 📈 Lines of Code: 124
* 📄 Lines of Documentation: 75
* 📅 Development Period: 2010-11-05 to 2021-11-05
-* 🔥 Recent Activity: 4361.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4375.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-06-22)
@@ -1113,34 +1134,13 @@ The implementation is remarkably simple: a shell script wrapper that invokes GNU
---
-### loadbars
-
-* 💻 Languages: Perl (97.4%), Make (2.6%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 527
-* 📈 Lines of Code: 1828
-* 📄 Lines of Documentation: 100
-* 📅 Development Period: 2010-11-05 to 2015-05-23
-* 🔥 Recent Activity: 4391.9 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ Latest Release: 0.7.5 (2014-06-22)
-
-⚠️ **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.
-
-loadbars: source code repository.
-
-=> https://codeberg.org/snonux/loadbars View on Codeberg
-=> https://github.com/snonux/loadbars View on GitHub
-
----
-
### perldaemon
* 💻 Languages: Perl (72.3%), Shell (23.8%), Config (3.9%)
* 📊 Commits: 110
* 📈 Lines of Code: 614
* 📅 Development Period: 2011-02-05 to 2022-04-21
-* 🔥 Recent Activity: 4441.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4454.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.4 (2022-04-29)
@@ -1163,7 +1163,7 @@ The implementation centers around an event loop with configurable intervals that
* 📈 Lines of Code: 122
* 📄 Lines of Documentation: 10
* 📅 Development Period: 2011-01-27 to 2014-06-22
-* 🔥 Recent Activity: 4772.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4785.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.2 (2011-01-27)
@@ -1186,7 +1186,7 @@ The architecture is remarkably simple: a single AWK script ([index.cgi](file:///
* 📈 Lines of Code: 720
* 📄 Lines of Documentation: 6
* 📅 Development Period: 2008-06-21 to 2021-11-03
-* 🔥 Recent Activity: 4835.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4848.6 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.3 (2009-02-08)
@@ -1203,29 +1203,6 @@ The implementation is minimalistic, consisting of just three main Java classes (
---
-### ychat
-
-* 💻 Languages: C++ (62.8%), C/C++ (27.1%), HTML (3.1%), Config (2.5%), Perl (1.9%), Shell (1.9%), Make (0.4%), CSS (0.2%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 67
-* 📈 Lines of Code: 27104
-* 📄 Lines of Documentation: 109
-* 📅 Development Period: 2008-05-15 to 2014-07-01
-* 🔥 Recent Activity: 5436.1 days (avg. age of last 42 commits)
-* ⚖️ License: GPL-2.0
-* 🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)
-
-⚠️ **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.
-
-yChat is a high-performance, web-based chat server written in C++ that allows users to connect through standard web browsers without requiring special client software. It functions as a standalone HTTP server on a customizable port (default 2000), eliminating the need for Apache or other web servers, and uses only HTML, CSS, and JavaScript on the client side. The project was developed under the GNU GPL and designed for portability across POSIX-compliant systems including Linux, FreeBSD, and other UNIX variants.
-
-The architecture emphasizes speed and scalability through several key design choices: multi-threaded POSIX implementation with thread pooling to efficiently handle concurrent users, hash maps for O(1) data lookups, and a smart garbage collection system that caches inactive user and room objects for quick reuse. It features MySQL database support for registered users, a modular plugin system through dynamically loadable modules, HTML template-based customization, XML configuration, and an ncurses-based administration interface with CLI support. The codebase can also be converted to yhttpd, a standalone web server subset. Performance benchmarks show it handling over 1000 requests/second while using minimal CPU resources, with the system supporting comprehensive logging, multi-language support, and Apache-compatible log formats.
-
-=> https://codeberg.org/snonux/ychat View on Codeberg
-=> https://github.com/snonux/ychat View on GitHub
-
----
-
### netcalendar
* 💻 Languages: Java (83.0%), HTML (12.9%), XML (3.0%), CSS (0.8%), Make (0.2%)
@@ -1234,7 +1211,7 @@ The architecture emphasizes speed and scalability through several key design cho
* 📈 Lines of Code: 17380
* 📄 Lines of Documentation: 947
* 📅 Development Period: 2009-02-07 to 2021-05-01
-* 🔥 Recent Activity: 5465.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5479.3 days (avg. age of last 42 commits)
* ⚖️ License: GPL-2.0
* 🏷️ Latest Release: v0.1 (2009-02-08)
@@ -1253,13 +1230,36 @@ The key feature is its intelligent color-coded event visualization system that h
---
+### ychat
+
+* 💻 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%)
+* 📚 Documentation: Text (100.0%)
+* 📊 Commits: 67
+* 📈 Lines of Code: 67884
+* 📄 Lines of Documentation: 127
+* 📅 Development Period: 2008-05-15 to 2014-06-30
+* 🔥 Recent Activity: 5499.6 days (avg. age of last 42 commits)
+* ⚖️ License: GPL-2.0
+* 🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)
+
+⚠️ **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.
+
+yChat is a high-performance, web-based chat server written in C++ that allows users to connect through standard web browsers without requiring special client software. It functions as a standalone HTTP server on a customizable port (default 2000), eliminating the need for Apache or other web servers, and uses only HTML, CSS, and JavaScript on the client side. The project was developed under the GNU GPL and designed for portability across POSIX-compliant systems including Linux, FreeBSD, and other UNIX variants.
+
+The architecture emphasizes speed and scalability through several key design choices: multi-threaded POSIX implementation with thread pooling to efficiently handle concurrent users, hash maps for O(1) data lookups, and a smart garbage collection system that caches inactive user and room objects for quick reuse. It features MySQL database support for registered users, a modular plugin system through dynamically loadable modules, HTML template-based customization, XML configuration, and an ncurses-based administration interface with CLI support. The codebase can also be converted to yhttpd, a standalone web server subset. Performance benchmarks show it handling over 1000 requests/second while using minimal CPU resources, with the system supporting comprehensive logging, multi-language support, and Apache-compatible log formats.
+
+=> https://codeberg.org/snonux/ychat View on Codeberg
+=> https://github.com/snonux/ychat View on GitHub
+
+---
+
### hsbot
* 💻 Languages: Haskell (98.5%), Make (1.5%)
* 📊 Commits: 80
* 📈 Lines of Code: 601
* 📅 Development Period: 2009-11-22 to 2011-10-17
-* 🔥 Recent Activity: 5561.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5574.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1274,45 +1274,48 @@ The implementation uses a modular design with core components separated into Bas
---
-### fype
+### vs-sim
-* 💻 Languages: C (63.7%), C/C++ (25.3%), HTML (9.2%), Make (1.8%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 99
-* 📈 Lines of Code: 6450
-* 📄 Lines of Documentation: 516
-* 📅 Development Period: 2008-05-15 to 2014-06-30
-* 🔥 Recent Activity: 5691.8 days (avg. age of last 42 commits)
+* 💻 Languages: Java (98.8%), Shell (0.7%), XML (0.4%)
+* 📚 Documentation: LaTeX (98.4%), Text (1.4%), Markdown (0.2%)
+* 📊 Commits: 411
+* 📈 Lines of Code: 16303
+* 📄 Lines of Documentation: 2903
+* 📅 Development Period: 2008-05-15 to 2021-05-01
+* 🔥 Recent Activity: 5871.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
-* 🧪 Status: Experimental (no releases yet)
+* 🏷️ Latest Release: v1.0 (2008-08-24)
⚠️ **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.
-Fype is a 32-bit scripting language designed as a fun, AWK-inspired alternative with a simpler syntax. It supports variables with automatic type conversion, functions, loops, control structures, and built-in operations for math, I/O, and system calls. A notable feature is its support for "synonyms" (references/aliases to variables and functions), along with both procedures (using the caller's namespace) and functions (with lexical scoping). The language uses a straightforward syntax with single-character comments (#) and statement-based execution terminated by semicolons.
+=> showcase/vs-sim/image-1.jpg vs-sim screenshot
-The implementation uses a simple top-down parser with maximum lookahead of 1, interpreting code simultaneously as it parses, which means syntax errors are only caught at runtime. Written in C and compiled with GCC, it's designed for BSD systems (tested on FreeBSD 7.0) and uses NetBSD Make for building. The project is still unreleased and incomplete, but aims to eventually match AWK's capabilities while potentially adding modern features like function pointers and closures, though explicitly avoiding complexity like OOP, Unicode, or threading.
+VS-Sim is a Java-based open source simulator for distributed systems, designed to help students and researchers visualize and understand distributed computing concepts. Based on the roadmap, it appears to support simulating various distributed systems protocols including Lamport and vector clocks for logical time management, and potentially distributed file systems like NFS and AFS. The simulator features event-based simulation, logging capabilities, and a plugin architecture.
-=> https://codeberg.org/snonux/fype View on Codeberg
-=> https://github.com/snonux/fype View on GitHub
+The project appears to be currently inactive, with the repository containing minimal source code at present. It was originally developed as part of academic work (referenced as "diplomarbeit.pdf" in the roadmap), likely for teaching distributed systems concepts through interactive simulation and protocol visualization.
+
+=> https://codeberg.org/snonux/vs-sim View on Codeberg
+=> https://github.com/snonux/vs-sim View on GitHub
---
-### vs-sim
+### fype
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 411
-* 📈 Lines of Code: 0
-* 📄 Lines of Documentation: 7
-* 📅 Development Period: 2008-05-15 to 2015-05-23
-* 🔥 Recent Activity: 5922.4 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ Latest Release: v1.0 (2008-08-24)
+* 💻 Languages: C (71.2%), C/C++ (20.7%), HTML (6.6%), Make (1.5%)
+* 📚 Documentation: Text (60.3%), LaTeX (39.7%)
+* 📊 Commits: 99
+* 📈 Lines of Code: 8954
+* 📄 Lines of Documentation: 1432
+* 📅 Development Period: 2008-05-15 to 2014-06-30
+* 🔥 Recent Activity: 5961.6 days (avg. age of last 42 commits)
+* ⚖️ License: Custom License
+* 🧪 Status: Experimental (no releases yet)
⚠️ **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.
-VS-Sim is a Java-based open source simulator for distributed systems, designed to help students and researchers visualize and understand distributed computing concepts. Based on the roadmap, it appears to support simulating various distributed systems protocols including Lamport and vector clocks for logical time management, and potentially distributed file systems like NFS and AFS. The simulator features event-based simulation, logging capabilities, and a plugin architecture.
+Fype is a 32-bit scripting language designed as a fun, AWK-inspired alternative with a simpler syntax. It supports variables with automatic type conversion, functions, loops, control structures, and built-in operations for math, I/O, and system calls. A notable feature is its support for "synonyms" (references/aliases to variables and functions), along with both procedures (using the caller's namespace) and functions (with lexical scoping). The language uses a straightforward syntax with single-character comments (#) and statement-based execution terminated by semicolons.
-The project appears to be currently inactive, with the repository containing minimal source code at present. It was originally developed as part of academic work (referenced as "diplomarbeit.pdf" in the roadmap), likely for teaching distributed systems concepts through interactive simulation and protocol visualization.
+The implementation uses a simple top-down parser with maximum lookahead of 1, interpreting code simultaneously as it parses, which means syntax errors are only caught at runtime. Written in C and compiled with GCC, it's designed for BSD systems (tested on FreeBSD 7.0) and uses NetBSD Make for building. The project is still unreleased and incomplete, but aims to eventually match AWK's capabilities while potentially adding modern features like function pointers and closures, though explicitly avoiding complexity like OOP, Unicode, or threading.
-=> https://codeberg.org/snonux/vs-sim View on Codeberg
-=> https://github.com/snonux/vs-sim View on GitHub
+=> https://codeberg.org/snonux/fype View on Codeberg
+=> https://github.com/snonux/fype View on GitHub
diff --git a/about/showcase/debroid/image-1.png b/about/showcase/debroid/image-1.png
index ba4ff7fe..77c8c2e0 100644
--- a/about/showcase/debroid/image-1.png
+++ b/about/showcase/debroid/image-1.png
@@ -27,12 +27,12 @@
<link rel="preconnect" href="https://github.githubassets.com" crossorigin>
<link rel="preconnect" href="https://avatars.githubusercontent.com">
- <link crossorigin="anonymous" rel="preload" as="script" href="https://github.githubassets.com/assets/global-banner-disable-bd97b48d5503.js" />
+ <link crossorigin="anonymous" rel="preload" as="script" href="https://github.githubassets.com/assets/global-banner-disable-54e442fb573b.js" />
<link rel="preload" href="https://github.githubassets.com/assets/mona-sans-14595085164a.woff2" as="font" type="font/woff2" crossorigin>
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-44e67b0cd5d5.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-b51c2fae25e8.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-cb035ed575b8.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-99e9b1169976.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-44e67b0cd5d5.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-b51c2fae25e8.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-dadcba82130c.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-cdc36145225e.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-0ca195e3b5f3.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-f9fb5556a83f.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-cb035ed575b8.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-99e9b1169976.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-9541c4141757.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-bc604fc65912.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-384776200fd7.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-489c70dedd0a.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-1545a2e9e540.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-4c1792a987c3.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-8e973f836952.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-34b642d57214.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-4bce7af39e21.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-ad512d3e2f3b.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-8e973f836952.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-34b642d57214.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-54be93e666a7.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-8ae7edf5489c.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-84d50df427c0.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-a80873375146.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-4bce7af39e21.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-ad512d3e2f3b.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-d152d6cd6879.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-fa4060c1a9da.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-d7bad0fb00bb.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-4a0107c0f60c.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-045e6b6ac094.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-5de537db5e79.css" />
<style type="text/css">
:root {
@@ -52,37 +52,37 @@
- <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_enable_snapshot_keyword","actions_image_version_event","alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","billing_hide_expired_credits","billing_split_pru_skus","billing_split_pru_skus","billing_unfiltered_discounts","client_version_header","codespaces_prebuild_region_target_update","contentful_lp_footnotes","copilot_agent_cli_public_preview","copilot_agent_task_list_v2","copilot_agent_tasks_btn_code_nav","copilot_agent_tasks_btn_code_view","copilot_agent_tasks_btn_code_view_lines","copilot_api_agentic_issue_marshal_yaml","copilot_api_github_draft_update_issue_skill","copilot_chat_agents_empty_state","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_input_commands","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_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_deprecation_notice","copilot_features_raycast_logo","copilot_file_block_ref_matching","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_insights_column_chart_axis_legibility_fix","copilot_insights_public_preview","copilot_insights_usage_export_ndjson","copilot_no_floating_button","copilot_read_shared_conversation","copilot_security_alert_assignee_options","copilot_spaces_as_attachments","copilot_spaces_ga","copilot_spark_empty_state","copilot_spark_loading_webgl","copilot_spark_progressive_error_handling","copilot_spark_use_billing_headers","copilot_stable_conversation_view","copilot_swe_agent_progress_commands","copilot_swe_agent_use_subagents","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_preview_analytics","copilot_workbench_skip_repo_on_codespace","copilot_workbench_use_single_prompt","deployment_record_api","direct_to_salesforce","disable_dashboard_universe_2025_private_preview","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_2025_logged_out_batch_1","hyperspace_nudges_universe25","hyperspace_nudges_universe25_post_event","inp_reduced_threshold","insert_before_patch","issue_fields_report_usage","issues_copilot_cross_repo_assign","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_sticky_sidebar","kb_convert_to_space","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_mwl_filter_field_delimiter","new_traffic_page_banner","open_agent_session_in_vscode_insiders","pinned_issue_fields","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","primer_react_use_styled_react_theming","react_fetch_graphql_validate_base_url","record_sso_banner_metrics","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","site_features_copilot_universe","site_homepage_collaborate_video","site_homepage_contentful","site_homepage_eyebrow_banner","site_homepage_universe_animations","site_msbuild_webgl_hero","spark_fix_rename","spark_force_push_after_checkout","spark_improve_image_upload","spark_kv_encocoded_keys","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","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-1cc776af0381.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_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/environment-b4e74adb6411.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-3eee64e5ddf0.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-9ab93471824e.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-ef89d23fcc0a.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-ad3a87b2f0eb.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-ac788066c220.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-9ec8c103bf42.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-9e1d42c09c62.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-91c24873dcb9.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-f11c694928ba.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-9012bef51135.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_morphdom_dist_morphdom-e-c1896e-ba47f43192a8.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-9ba0881c72fb.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_hotkey_dist_index_js-node_modules_github_hydro-analytics-client_d-502318-b6850e6a8b08.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_-7154bb-4c81ec053a86.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-06156f7d8d1a.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_updatable-content_updatable-content_ts-38f5e2f7c2a7.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-cecb020e2bb7.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-cfe8770908d1.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-d8c5bfe37d1d.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-debf59ec3fe9.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-20d6767cecc0.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-d89a4ddd4532.js" defer="defer"></script>
+ <script type="application/json" id="client-env">{"locale":"en","featureFlags":["a11y_status_checks_ruleset","actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_enable_snapshot_keyword","actions_image_version_event","alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","client_version_header","codespaces_prebuild_region_target_update","contentful_lp_footnotes","copilot_agent_cli_public_preview","copilot_agent_task_list_v2","copilot_agent_tasks_btn_code_nav","copilot_agent_tasks_btn_code_view","copilot_agent_tasks_btn_code_view_lines","copilot_agent_tasks_btn_repo","copilot_api_agentic_issue_marshal_yaml","copilot_api_draft_issues_with_dependencies","copilot_api_github_draft_update_issue_skill","copilot_chat_agents_empty_state","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_raycast_logo","copilot_file_block_ref_matching","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_insights_column_chart_axis_legibility_fix","copilot_insights_public_preview","copilot_insights_usage_export_ndjson","copilot_no_floating_button","copilot_org_policy_page_focus_mode","copilot_security_alert_assignee_options","copilot_share_active_subthread","copilot_spaces_as_attachments","copilot_spaces_ga","copilot_spark_empty_state","copilot_spark_loading_webgl","copilot_spark_progressive_error_handling","copilot_spark_use_billing_headers","copilot_stable_conversation_view","copilot_swe_agent_progress_commands","copilot_swe_agent_use_subagents","copilot_workbench_agent_seed_tool","copilot_workbench_agent_user_edit_awareness","copilot_workbench_cache","copilot_workbench_preview_analytics","copilot_workbench_use_single_prompt","deployment_record_api","direct_to_salesforce","disable_dashboard_universe_2025_private_preview","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","fetch_graphql_improved_error_serialization","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_2025_logged_out_batch_1","hyperspace_nudges_universe25","hyperspace_nudges_universe25_post_event","initial_per_page_pagination_updates","inp_reduced_threshold","insert_before_patch","issue_fields_report_usage","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_report_sidebar_interactions","issues_sticky_sidebar","item_picker_issue_type_tsq_migration","item_picker_label_tsq_migration","item_picker_search_cancellation","kb_convert_to_space","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_default_issue_create_repository","memex_grouped_by_edit_route","memex_mwl_filter_field_delimiter","mission_control_use_body_html","new_traffic_page_banner","open_agent_session_in_vscode_stable","pinned_issue_fields","primer_react_segmented_control_tooltip","projects_assignee_max_limit","react_fetch_graphql_ignore_expected_errors","record_sso_banner_metrics","remove_child_patch","repos_insights_remove_new_url","ruleset_deletion_confirmation","sample_network_conn_type","scheduled_reminders_updated_limits","site_features_copilot_universe","site_homepage_collaborate_video","site_homepage_contentful","site_homepage_eyebrow_banner","site_homepage_universe_animations","site_msbuild_webgl_hero","spark_fix_rename","spark_force_push_after_checkout","spark_improve_image_upload","spark_kv_encocoded_keys","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-1a011967750c.js"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-c0d7e050063d.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/913-ca2305638c53.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/6488-de87864e6818.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-6bd9f830d320.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/11683-aa3d1ebe6648.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/43784-4652ae97a661.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/4712-809eac2badf7.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/81028-5b8c5e07a4fa.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/74911-6a311b93ee8e.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/91853-b5d2e5602241.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/78143-31968346cf4c.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/52430-c46e2de36eb2.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-5b3e77949adb.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-dcdab6fcfcb8.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/28546-ee41c9313871.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/17688-a9e16fb5ed13.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/2869-a4ba8f17edb3.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/70191-5122bf27bf3e.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/7332-9a7cba14a8ba.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/3200-a7d4487d8022.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/95964-b27baff007f7.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/89708-adb89ad4eedf.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/51519-dc0d4e14166a.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/7534-44b89d9287f7.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/96384-750ef5263abe.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/19718-676a65610616.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-72c6ef216daa.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/48011-5b6f71a93de7.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-eb21f5b0029d.js" defer="defer"></script>
<title>Page not found · GitHub · GitHub</title>
@@ -92,13 +92,13 @@
<meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
<meta name="route-controller" content="blob" data-turbo-transient>
<meta name="route-action" content="show" data-turbo-transient>
- <meta name="fetch-nonce" content="v2:d5e91dbe-6cdd-6b84-df6c-8eec3d8186e8">
+ <meta name="fetch-nonce" content="v2:bb232dc1-3f10-0ebb-052b-aafba9b1f13d">
<meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">
- <meta name="request-id" content="ABF0:33AB88:150F4BB:110D954:69080BE8" data-pjax-transient="true"/><meta name="html-safe-nonce" content="98267c91378deb6d42ce9eabdd777741ded35fbb294947bfa8b34114bd7f6dfc" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQkYwOjMzQUI4ODoxNTBGNEJCOjExMEQ5NTQ6NjkwODBCRTgiLCJ2aXNpdG9yX2lkIjoiNjkyMTIwODE3OTk5MzM0OTA5NiIsInJlZ2lvbl9lZGdlIjoiZnJhIiwicmVnaW9uX3JlbmRlciI6ImZyYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="39b38857812d16c5ea2cace4f6d67d2803e20dd6c4b5de76d5beea8d88894bb1" data-pjax-transient="true"/>
+ <meta name="request-id" content="AB6C:3AE3C8:B142D:8ED54:6919DEDA" data-pjax-transient="true"/><meta name="html-safe-nonce" content="fd352624324617d18655b2cbb7b052cb2c0ca05d68942eb2383912a140648791" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQjZDOjNBRTNDODpCMTQyRDo4RUQ1NDo2OTE5REVEQSIsInZpc2l0b3JfaWQiOiI4MjY3MDA4Mzk4MDUyNjc5Mzg2IiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="4f4a36e3b91e537f2d27be1322ea52d04170eeb69dc75aed188ca331ee5a4456" data-pjax-transient="true"/>
@@ -174,10 +174,10 @@
<meta name="expected-hostname" content="github.com">
- <meta http-equiv="x-pjax-version" content="9890aecdee21df493c1ea7e1fcff6415eb8cc0af6ed8c7ce9734fcd5fe65cf1a" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-version" content="5b4914921197b3702f1fb352e19c44a5f207b8a04a7db2fdfe0fb288ffea30d4" data-turbo-track="reload">
<meta http-equiv="x-pjax-csp-version" content="21a43568025709b66240454fc92d4f09335a96863f8ab1c46b4a07f6a5b67102" data-turbo-track="reload">
<meta http-equiv="x-pjax-css-version" content="64aa48ca69ddc4d1267863e96c8a5c11e0cb33842931f16e1441b54a84bcc1ad" data-turbo-track="reload">
- <meta http-equiv="x-pjax-js-version" content="b390268bacc1336925a16a0d32843839c3db64b65cf390fb0f19a7510eee3e4f" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-js-version" content="a5c4545150b46df9e5c9779d08059514e8f37741d422b687916e43f97a161da7" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
@@ -201,7 +201,7 @@
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <meta name="release" content="6f0a50c83824a7b7b3ed4ac8a758c063075591b0">
+ <meta name="release" content="22a3c54b60e2433cd9de7a5b3dced0c6838d93c7">
<meta name="ui-target" content="full">
<link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
@@ -216,7 +216,7 @@
</head>
- <body class="logged-out env-production page-responsive min-height-full d-flex flex-column" style="word-wrap: break-word;">
+ <body class="logged-out env-production page-responsive min-height-full d-flex flex-column" style="word-wrap: break-word;" >
<div data-turbo-body class="logged-out env-production page-responsive min-height-full d-flex flex-column" style="word-wrap: break-word;">
@@ -229,8 +229,8 @@
<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.5e7f07b3b8c1e951002c.module.css" />
-<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.2de9c7d6456a311fce49.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.2ed7297523f7a189873b.module.css" />
+<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.29aaeaafa90f007c6f61.module.css" />
<react-partial
partial-name="keyboard-shortcuts-dialog"
@@ -252,9 +252,9 @@
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_gsap_index_js-6265bea06e74.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-dc050877d1bf.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-917229b8a853.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/21481-a66c6eab7bbf.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/85110-f7be2f54525a.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-8cc3729f6e8d.js" defer="defer"></script>
<header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark>
<h2 class="sr-only">Navigation Menu</h2>
@@ -294,14 +294,14 @@
</a>
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-e0f7bc70-090b-4f96-9006-ae6e5da6289e" aria-labelledby="tooltip-55026fd4-974b-455f-a70b-74866c4e9b3f" 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-69160ffe-4431-481a-b8db-27d709f5b98b" aria-labelledby="tooltip-710f4eef-2e0b-4960-a6d2-069776df4448" 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-55026fd4-974b-455f-a70b-74866c4e9b3f" for="icon-button-e0f7bc70-090b-4f96-9006-ae6e5da6289e" 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-710f4eef-2e0b-4960-a6d2-069776df4448" for="icon-button-69160ffe-4431-481a-b8db-27d709f5b98b" 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.5e7f07b3b8c1e951002c.module.css" />
-<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.2ed7297523f7a189873b.module.css" />
+<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.753d458774a2f782559b.module.css" />
<react-partial
partial-name="appearance-settings"
@@ -1060,7 +1060,7 @@
-<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="H39UR3xE6Yi7LIQP0cU_3jwFLddyPikFr1RTHWRry1E-6iXZazxdrcmjd1h-EQambNUpSv58tGBvn6BZRBYHCQ" 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="SWFWPA3pETroz3T9J4em4Rb3cXLe15Xxn5A6Bstn3jsRjtDUHUiBIVHHNWqb0MM5lHzM6J2BK9C7zMsnWhGODQ" 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"
@@ -1124,7 +1124,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-9e7fb537-2c3c-4ba6-bda4-2c21f3254fca" 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-325fac4a-ee7f-4f0a-823e-44060bef3257" data-target="query-builder.input" data-action="
input:query-builder#inputChange
blur:query-builder#inputBlur
keydown:query-builder#inputKeydown
@@ -1362,7 +1362,7 @@
tabindex="-1"
></ul>
</div>
- <div class="FormControl-inlineValidation" id="validation-9e7fb537-2c3c-4ba6-bda4-2c21f3254fca" hidden="hidden">
+ <div class="FormControl-inlineValidation" id="validation-325fac4a-ee7f-4f0a-823e-44060bef3257" 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>
@@ -1403,7 +1403,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="SprBCrqqI4A207YUc3P+bt4Qi6v/ygZbtkx1Y1yTkizGGaGVM5h21+Q9cSKAdbUBgUqcd2dcZvym6bRMB0kQwQ==" />
+ <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="FNP3v92uI/gFjF9ympJKL/vHXCiidd2IyeEMqTOhCGGax+hNz7zsrOt67dm4pH6EnA867OBsNsvOQKYUIGidGA==" />
<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">
@@ -1441,7 +1441,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="n+Eptz32xIX5zE2wImtLCWbTZ5wPmzUaFSnLSfF1WG52LjwVThWPjXd14wNw9VKwi8BFJc2izu2wAjSITtVYCA==" />
+ <!-- '"` --><!-- </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="35Amt5WiN1Qjoeo4zF5nkTSEDINwFw6sSQaLuLZOW7Vaov9DR/ahNKa7ouOe1pnaRyu911Lk1+/RXMMl9flr5Q==" />
<div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
@@ -1459,7 +1459,7 @@
placeholder="github-ruby"
required
maxlength="50">
- <input type="hidden" data-csrf="true" value="lMKxQqXGdLR8D9by9512UiffHAm99miZtrX63BNPOzlChH0XfX/Aq22IsbMwf2yUskiivEGbPJVZtgJSyn0/Mw==" />
+ <input type="hidden" data-csrf="true" value="ehmlQCvuzNS5R/Ycc8rZwJsppFkDNZYcJS82/5wYg9SuRX5+CV1FdA75PsrtyvX5T66GDmLipIUaewSvP4Lj/Q==" />
</auto-check>
</div>
@@ -1514,7 +1514,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="lhDxKFqYG6JiizKbt3DrM9FOZrjqqKSC+wZTdAvdebg2TLibk+bI596Si11wPNyu4bKi0/2axOH2m9NSjGh48g==" /> <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="ohxdd7CiAzKEBsLH2G+aofIna5lSNwD+79z4EYhgBoMErSLqCQxMfJGwCfnQTzVjtkSPQpGKsjWysoD7yN1Qig==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
<label for="login_field">
Username or email address
@@ -1536,9 +1536,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_759b" hidden="hidden" />
-<input class="form-control" type="hidden" name="timestamp" value="1762135017095" />
-<input class="form-control" type="hidden" name="timestamp_secret" value="4c46cad419fd18795908de5e87b0ec4a2520a01243eaf94cf05b9fe6cdb98c8d" />
+<input class="form-control" type="text" name="required_field_8a0c" hidden="hidden" />
+<input class="form-control" type="hidden" name="timestamp" value="1763303130489" />
+<input class="form-control" type="hidden" name="timestamp_secret" value="c5ae33b801b3edaaa79e89907595a5031a5cd9fa9bfb0d55577ac58a569c1031" />
<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" />
@@ -1565,14 +1565,14 @@
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-fee17bea-67fd-434b-a6a7-caffb31a1fda" aria-labelledby="tooltip-2e054135-7ee7-4af9-8a3d-c6777a64a2e4" 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-e1f09dc8-82a4-49ac-981a-9c52aa29c2f2" aria-labelledby="tooltip-c553ac69-f6d2-4897-9bd9-44b722efc6f5" 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-2e054135-7ee7-4af9-8a3d-c6777a64a2e4" for="icon-button-fee17bea-67fd-434b-a6a7-caffb31a1fda" 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-c553ac69-f6d2-4897-9bd9-44b722efc6f5" for="icon-button-e1f09dc8-82a4-49ac-981a-9c52aa29c2f2" 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.5e7f07b3b8c1e951002c.module.css" />
-<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.2ed7297523f7a189873b.module.css" />
+<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.753d458774a2f782559b.module.css" />
<react-partial
partial-name="appearance-settings"
@@ -1606,10 +1606,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-259021ef-897f-41ab-a65b-1079b1e21f1c" aria-labelledby="tooltip-db96fde7-49b6-4d2c-aca0-3acda83c0892" 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-0dceafc0-1e4c-47f9-90a6-2038a03d7c45" aria-labelledby="tooltip-a5bd6334-f9cd-4f5d-bf5a-e5a0cded4731" 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-db96fde7-49b6-4d2c-aca0-3acda83c0892" for="icon-button-259021ef-897f-41ab-a65b-1079b1e21f1c" 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-a5bd6334-f9cd-4f5d-bf5a-e5a0cded4731" for="icon-button-0dceafc0-1e4c-47f9-90a6-2038a03d7c45" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
@@ -1728,7 +1728,7 @@
<h3 class="h5 mt-4 mb-0" id="subscribe-to-newsletter">Subscribe to our developer newsletter</h3>
<p class="f5 color-fg-muted mb-3">Get tips, technical guides, and best practices. Twice a month.</p>
- <a class="btn-mktg mb-4 btn-muted-mktg" data-analytics-event="{&quot;category&quot;:&quot;Subscribe&quot;,&quot;action&quot;:&quot;click to Subscribe&quot;,&quot;label&quot;:&quot;ref_cta:Subscribe;&quot;}" href="https://resources.github.com/newsletter/">
+ <a class="btn-mktg mb-4 btn-muted-mktg" data-analytics-event="{&quot;category&quot;:&quot;Subscribe&quot;,&quot;action&quot;:&quot;click to Subscribe&quot;,&quot;label&quot;:&quot;ref_cta:Subscribe;&quot;}" href="https://github.com/newsletter">
Subscribe
diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml
index 6f6530b4..4d891b6e 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-11-06T15:43:19+02:00</updated>
+ <updated>2025-11-18T09:38:47+02:00</updated>
<title>foo.zone feed</title>
<subtitle>To be in the .zone!</subtitle>
<link href="gemini://foo.zone/gemfeed/atom.xml" rel="self" />
@@ -10190,93 +10190,14 @@ Jan 26 17:36:32 f2 apcupsd[2159]: apcupsd shutdown succeeded
<br />
<span>So I put this into my <span class='inlinecode'>zsh</span> dotfiles (in some <span class='inlinecode'>editor.zsh.source</span> in my <span class='inlinecode'>~</span> directory):</span><br />
<br />
-<!-- Generator: GNU source-highlight 3.1.9
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><b><u><font color="#000000">export</font></u></b> EDITOR=hx
-<b><u><font color="#000000">export</font></u></b> VISUAL=$EDITOR
-<b><u><font color="#000000">export</font></u></b> GIT_EDITOR=$EDITOR
-<b><u><font color="#000000">export</font></u></b> HELIX_CONFIG_DIR=$HOME/.config/helix
-
-editor::helix::random_theme () {
- <i><font color="silver"># May add more theme search paths based on OS. This one is</font></i>
- <i><font color="silver"># for Fedora Linux, but there is also MacOS, etc.</font></i>
- <b><u><font color="#000000">local</font></u></b> -r theme_dir=/usr/share/helix/runtime/themes
- <b><u><font color="#000000">if</font></u></b> [ ! -d $theme_dir ]; <b><u><font color="#000000">then</font></u></b>
- echo <font color="#808080">"Helix theme dir $theme_dir doesnt exist"</font>
- <b><u><font color="#000000">return</font></u></b> <font color="#000000">1</font>
- <b><u><font color="#000000">fi</font></u></b>
-
- <b><u><font color="#000000">local</font></u></b> -r config_file=$HELIX_CONFIG_DIR/config.toml
- <b><u><font color="#000000">local</font></u></b> -r random_theme=<font color="#808080">"$(basename "</font>$(ls $theme_dir \
- | grep -v random.toml | grep .toml | sort -R \
- | head -n <font color="#000000">1</font>)<font color="#808080">" | cut -d. -f1)"</font>
-
- sed <font color="#808080">"/^theme =/ { s/.*/theme = </font>\"<font color="#808080">$random_theme</font>\"<font color="#808080">/; }"</font> \
- $config_file &gt; $config_file.tmp &amp;&amp;
- mv $config_file.tmp $config_file
-}
-
-<b><u><font color="#000000">if</font></u></b> [ -f $HELIX_CONFIG_DIR/config.toml ]; <b><u><font color="#000000">then</font></u></b>
- editor::helix::random_theme
-<b><u><font color="#000000">fi</font></u></b>
-</pre>
<br />
<span>So every time I open a new terminal or shell, <span class='inlinecode'>editor::helix::random_theme</span> gets called, which randomly selects a theme from all installed ones and updates the helix config accordingly.</span><br />
<br />
-<!-- Generator: GNU source-highlight 3.1.9
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre>[paul@earth] ~ % editor::helix::random_theme
-[paul@earth] ~ % head -n <font color="#000000">1</font> ~/.config/helix/config.toml
-theme = <font color="#808080">"jellybeans"</font>
-[paul@earth] ~ % editor::helix::random_theme
-[paul@earth] ~ % head -n <font color="#000000">1</font> ~/.config/helix/config.toml
-theme = <font color="#808080">"rose_pine"</font>
-[paul@earth] ~ % editor::helix::random_theme
-[paul@earth] ~ % head -n <font color="#000000">1</font> ~/.config/helix/config.toml
-theme = <font color="#808080">"noctis"</font>
-[paul@earth] ~ %
-</pre>
<br />
<h2 style='display: inline' id='a-better-version'>A better version</h2><br />
<br />
<span class='quote'>Update 2024-12-18: This is an improved version, which works cross platform (e.g., also on MacOS) and multiple theme directories:</span><br />
<br />
-<!-- Generator: GNU source-highlight 3.1.9
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><b><u><font color="#000000">export</font></u></b> EDITOR=hx
-<b><u><font color="#000000">export</font></u></b> VISUAL=$EDITOR
-<b><u><font color="#000000">export</font></u></b> GIT_EDITOR=$EDITOR
-<b><u><font color="#000000">export</font></u></b> HELIX_CONFIG_DIR=$HOME/.config/helix
-
-editor::helix::theme::get_random () {
- <b><u><font color="#000000">for</font></u></b> dir <b><u><font color="#000000">in</font></u></b> $(hx --health \
- | awk <font color="#808080">'/^Runtime directories/ { print $3 }'</font> | tr <font color="#808080">';'</font> <font color="#808080">' '</font>); <b><u><font color="#000000">do</font></u></b>
- <b><u><font color="#000000">if</font></u></b> [ -d $dir/themes ]; <b><u><font color="#000000">then</font></u></b>
- ls $dir/themes
- <b><u><font color="#000000">fi</font></u></b>
- <b><u><font color="#000000">done</font></u></b> | grep -F .toml | sort -R | head -n <font color="#000000">1</font> | cut -d. -f<font color="#000000">1</font>
-}
-
-editor::helix::theme::set () {
- <b><u><font color="#000000">local</font></u></b> -r theme=<font color="#808080">"$1"</font>; <b><u><font color="#000000">shift</font></u></b>
-
- <b><u><font color="#000000">local</font></u></b> -r config_file=$HELIX_CONFIG_DIR/config.toml
-
- sed <font color="#808080">"/^theme =/ { s/.*/theme = </font>\"<font color="#808080">$theme</font>\"<font color="#808080">/; }"</font> \
- $config_file &gt; $config_file.tmp &amp;&amp;
- mv $config_file.tmp $config_file
-}
-
-<b><u><font color="#000000">if</font></u></b> [ -f $HELIX_CONFIG_DIR/config.toml ]; <b><u><font color="#000000">then</font></u></b>
- editor::helix::theme::<b><u><font color="#000000">set</font></u></b> $(editor::helix::theme::get_random)
-<b><u><font color="#000000">fi</font></u></b>
-</pre>
<br />
<span>I hope you had some fun. E-Mail your comments to <span class='inlinecode'>paul@nospam.buetow.org</span> :-)</span><br />
<br />
diff --git a/index.gmi b/index.gmi
index 0ad7bf35..7ebd0cf1 100644
--- a/index.gmi
+++ b/index.gmi
@@ -1,6 +1,6 @@
# Hello!
-> This site was generated at 2025-11-09T12:53:07+02:00 by `Gemtexter`
+> This site was generated at 2025-11-18T09:38:47+02:00 by `Gemtexter`
Welcome to the foo.zone!
diff --git a/uptime-stats.gmi b/uptime-stats.gmi
index 4351ed27..918e6d6f 100644
--- a/uptime-stats.gmi
+++ b/uptime-stats.gmi
@@ -1,6 +1,6 @@
# My machine uptime stats
-> This site was last updated at 2025-11-09T12:53:12+02:00
+> This site was last updated at 2025-11-18T09:38:47+02:00
The following stats were collected via `uptimed` on all of my personal computers over many years and the output was generated by `guprecords`, the global uptime records stats analyser of mine.
@@ -22,24 +22,24 @@ Boots is the total number of host boots over the entire lifespan.
| Pos | Host | Boots | Last Kernel |
+-----+----------------+-------+------------------------------+
| 1. | alphacentauri | 671 | FreeBSD 11.4-RELEASE-p7 |
-| 2. | *earth | 211 | Linux 6.17.5-300.fc43.x86_64 |
+| 2. | *earth | 212 | Linux 6.17.7-300.fc43.x86_64 |
| 3. | mars | 207 | Linux 3.2.0-4-amd64 |
| 4. | callisto | 153 | Linux 4.0.4-303.fc22.x86_64 |
| 5. | dionysus | 136 | FreeBSD 13.0-RELEASE-p11 |
| 6. | tauceti-e | 120 | Linux 3.2.0-4-amd64 |
-| 7. | *makemake | 77 | Linux 6.9.9-200.fc40.x86_64 |
+| 7. | *makemake | 81 | Linux 6.9.9-200.fc40.x86_64 |
| 8. | *f2 | 70 | FreeBSD 14.3-RELEASE |
| 9. | *f1 | 65 | FreeBSD 14.3-RELEASE |
| 10. | *f0 | 62 | FreeBSD 14.3-RELEASE |
| 11. | uranus | 59 | NetBSD 10.1 |
| 12. | pluto | 51 | Linux 3.2.0-4-amd64 |
-| 13. | *mega-m3-pro | 50 | Darwin 24.6.0 |
-| 14. | mega15289 | 50 | Darwin 23.4.0 |
+| 13. | mega15289 | 50 | Darwin 23.4.0 |
+| 14. | *mega-m3-pro | 50 | Darwin 24.6.0 |
| 15. | *fishfinger | 46 | OpenBSD 7.7 |
-| 16. | *t450 | 44 | FreeBSD 14.2-RELEASE |
+| 16. | t450 | 44 | FreeBSD 14.2-RELEASE |
| 17. | *blowfish | 43 | OpenBSD 7.7 |
-| 18. | mega8477 | 40 | Darwin 13.4.0 |
-| 19. | phobos | 40 | Linux 3.4.0-CM-g1dd7cdf |
+| 18. | phobos | 40 | Linux 3.4.0-CM-g1dd7cdf |
+| 19. | mega8477 | 40 | Darwin 13.4.0 |
| 20. | sun | 33 | FreeBSD 10.3-RELEASE-p24 |
+-----+----------------+-------+------------------------------+
```
@@ -53,7 +53,7 @@ Uptime is the total uptime of a host over the entire lifespan.
| Pos | Host | Uptime | Last Kernel |
+-----+----------------+-----------------------------+-----------------------------------+
| 1. | vulcan | 4 years, 5 months, 6 days | Linux 3.10.0-1160.81.1.el7.x86_64 |
-| 2. | *earth | 3 years, 10 months, 22 days | Linux 6.17.5-300.fc43.x86_64 |
+| 2. | *earth | 3 years, 10 months, 26 days | Linux 6.17.7-300.fc43.x86_64 |
| 3. | *blowfish | 3 years, 10 months, 2 days | OpenBSD 7.7 |
| 4. | sun | 3 years, 9 months, 26 days | FreeBSD 10.3-RELEASE-p24 |
| 5. | uranus | 3 years, 9 months, 5 days | NetBSD 10.1 |
@@ -64,11 +64,11 @@ Uptime is the total uptime of a host over the entire lifespan.
| 10. | tauceti | 2 years, 3 months, 19 days | Linux 3.2.0-4-amd64 |
| 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. | *mega-m3-pro | 1 years, 5 months, 20 days | Darwin 24.6.0 |
+| 13. | t450 | 1 years, 7 months, 26 days | FreeBSD 14.2-RELEASE |
+| 14. | *mega-m3-pro | 1 years, 5 months, 31 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, 6 days | Linux 6.9.9-200.fc40.x86_64 |
+| 17. | *makemake | 1 years, 3 months, 7 days | Linux 6.9.9-200.fc40.x86_64 |
| 18. | tauceti-e | 1 years, 2 months, 20 days | Linux 3.2.0-4-amd64 |
| 19. | callisto | 0 years, 10 months, 31 days | Linux 4.0.4-303.fc22.x86_64 |
| 20. | alphacentauri | 0 years, 10 months, 28 days | FreeBSD 11.4-RELEASE-p7 |
@@ -85,7 +85,7 @@ Score is calculated by combining all other metrics.
+-----+----------------+-------+-----------------------------------+
| 1. | uranus | 340 | NetBSD 10.1 |
| 2. | vulcan | 275 | Linux 3.10.0-1160.81.1.el7.x86_64 |
-| 3. | *earth | 268 | Linux 6.17.5-300.fc43.x86_64 |
+| 3. | *earth | 268 | Linux 6.17.7-300.fc43.x86_64 |
| 4. | *blowfish | 243 | OpenBSD 7.7 |
| 5. | sun | 238 | FreeBSD 10.3-RELEASE-p24 |
| 6. | uugrn | 211 | FreeBSD 11.2-RELEASE-p4 |
@@ -97,10 +97,10 @@ Score is calculated by combining all other metrics.
| 12. | mega15289 | 147 | Darwin 23.4.0 |
| 13. | tauceti | 141 | Linux 3.2.0-4-amd64 |
| 14. | *makemake | 139 | Linux 6.9.9-200.fc40.x86_64 |
-| 15. | *t450 | 122 | FreeBSD 14.2-RELEASE |
+| 15. | t450 | 119 | 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. | *mega-m3-pro | 94 | Darwin 24.6.0 |
+| 17. | *mega-m3-pro | 96 | Darwin 24.6.0 |
+| 18. | tauceti-e | 96 | Linux 3.2.0-4-amd64 |
| 19. | callisto | 86 | Linux 4.0.4-303.fc22.x86_64 |
| 20. | mega8477 | 80 | Darwin 13.4.0 |
+-----+----------------+-------+-----------------------------------+
@@ -117,22 +117,22 @@ Downtime is the total downtime of a host over the entire lifespan.
| 1. | dionysus | 8 years, 3 months, 16 days | FreeBSD 13.0-RELEASE-p11 |
| 2. | uranus | 6 years, 7 months, 31 days | NetBSD 10.1 |
| 3. | alphacentauri | 5 years, 11 months, 18 days | FreeBSD 11.4-RELEASE-p7 |
-| 4. | *makemake | 3 years, 8 months, 4 days | Linux 6.9.9-200.fc40.x86_64 |
+| 4. | *makemake | 3 years, 8 months, 11 days | Linux 6.9.9-200.fc40.x86_64 |
| 5. | moon | 2 years, 1 months, 1 days | FreeBSD 14.0-RELEASE-p3 |
| 6. | callisto | 1 years, 5 months, 15 days | Linux 4.0.4-303.fc22.x86_64 |
| 7. | mega15289 | 1 years, 4 months, 24 days | Darwin 23.4.0 |
-| 8. | *t450 | 1 years, 2 months, 13 days | FreeBSD 14.2-RELEASE |
+| 8. | t450 | 1 years, 2 months, 13 days | FreeBSD 14.2-RELEASE |
| 9. | mars | 1 years, 2 months, 10 days | Linux 3.2.0-4-amd64 |
| 10. | tauceti-e | 0 years, 12 months, 9 days | Linux 3.2.0-4-amd64 |
| 11. | sirius | 0 years, 8 months, 20 days | Linux 2.6.32-042stab111.12 |
| 12. | *f0 | 0 years, 8 months, 3 days | FreeBSD 14.3-RELEASE |
| 13. | *f2 | 0 years, 8 months, 2 days | FreeBSD 14.3-RELEASE |
| 14. | *f1 | 0 years, 8 months, 1 days | FreeBSD 14.3-RELEASE |
-| 15. | *earth | 0 years, 6 months, 20 days | Linux 6.17.5-300.fc43.x86_64 |
+| 15. | *earth | 0 years, 6 months, 29 days | Linux 6.17.7-300.fc43.x86_64 |
| 16. | deimos | 0 years, 5 months, 15 days | Linux 4.4.5-300.fc23.x86_64 |
| 17. | joghurt | 0 years, 2 months, 9 days | FreeBSD 7.0-PRERELEASE |
| 18. | host0 | 0 years, 2 months, 1 days | FreeBSD 6.2-RELEASE-p5 |
-| 19. | *mega-m3-pro | 0 years, 1 months, 14 days | Darwin 24.6.0 |
+| 19. | *mega-m3-pro | 0 years, 1 months, 18 days | Darwin 24.6.0 |
| 20. | fibonacci | 0 years, 1 months, 11 days | FreeBSD 5.3-RELEASE-p15 |
+-----+----------------+-----------------------------+------------------------------+
```
@@ -148,9 +148,9 @@ Lifespan is the total uptime + the total downtime of a host.
| 1. | uranus | 10 years, 4 months, 5 days | NetBSD 10.1 |
| 2. | dionysus | 8 years, 6 months, 17 days | FreeBSD 13.0-RELEASE-p11 |
| 3. | alphacentauri | 6 years, 9 months, 13 days | FreeBSD 11.4-RELEASE-p7 |
-| 4. | *makemake | 4 years, 10 months, 8 days | Linux 6.9.9-200.fc40.x86_64 |
+| 4. | *makemake | 4 years, 10 months, 16 days | Linux 6.9.9-200.fc40.x86_64 |
| 5. | vulcan | 4 years, 5 months, 6 days | Linux 3.10.0-1160.81.1.el7.x86_64 |
-| 6. | *earth | 4 years, 4 months, 11 days | Linux 6.17.5-300.fc43.x86_64 |
+| 6. | *earth | 4 years, 4 months, 23 days | Linux 6.17.7-300.fc43.x86_64 |
| 7. | *blowfish | 3 years, 10 months, 3 days | OpenBSD 7.7 |
| 8. | sun | 3 years, 10 months, 2 days | FreeBSD 10.3-RELEASE-p24 |
| 9. | uugrn | 3 years, 5 months, 5 days | FreeBSD 11.2-RELEASE-p4 |
@@ -158,7 +158,7 @@ Lifespan is the total uptime + the total downtime of a host.
| 11. | *fishfinger | 3 years, 1 months, 30 days | OpenBSD 7.7 |
| 12. | deltavega | 3 years, 1 months, 21 days | Linux 3.10.0-1160.11.1.el7.x86_64 |
| 13. | pluto | 2 years, 10 months, 30 days | Linux 3.2.0-4-amd64 |
-| 14. | *t450 | 2 years, 9 months, 6 days | FreeBSD 14.2-RELEASE |
+| 14. | t450 | 2 years, 9 months, 6 days | FreeBSD 14.2-RELEASE |
| 15. | moon | 2 years, 4 months, 25 days | FreeBSD 14.0-RELEASE-p3 |
| 16. | tauceti | 2 years, 3 months, 22 days | Linux 3.2.0-4-amd64 |
| 17. | callisto | 2 years, 3 months, 13 days | Linux 4.0.4-303.fc22.x86_64 |
@@ -179,7 +179,7 @@ Boots is the total number of host boots over the entire lifespan.
| 1. | FreeBSD 10... | 551 |
| 2. | Linux 3... | 550 |
| 3. | *FreeBSD 14... | 215 |
-| 4. | *Linux 6... | 192 |
+| 4. | *Linux 6... | 197 |
| 5. | Linux 5... | 162 |
| 6. | Linux 4... | 161 |
| 7. | FreeBSD 11... | 153 |
@@ -194,8 +194,8 @@ Boots is the total number of host boots over the entire lifespan.
| 16. | Darwin 15... | 15 |
| 17. | Darwin 22... | 12 |
| 18. | Darwin 18... | 11 |
-| 19. | FreeBSD 6... | 10 |
-| 20. | OpenBSD 4... | 10 |
+| 19. | OpenBSD 4... | 10 |
+| 20. | FreeBSD 6... | 10 |
+-----+----------------+-------+
```
@@ -211,7 +211,7 @@ Uptime is the total uptime of a host over the entire lifespan.
| 2. | *OpenBSD 7... | 7 years, 6 months, 29 days |
| 3. | FreeBSD 10... | 5 years, 9 months, 9 days |
| 4. | Linux 5... | 4 years, 10 months, 21 days |
-| 5. | *Linux 6... | 3 years, 1 months, 19 days |
+| 5. | *Linux 6... | 3 years, 1 months, 24 days |
| 6. | Linux 4... | 2 years, 7 months, 22 days |
| 7. | FreeBSD 11... | 2 years, 4 months, 28 days |
| 8. | *FreeBSD 14... | 2 years, 3 months, 24 days |
@@ -219,7 +219,7 @@ Uptime is the total uptime of a host over the entire lifespan.
| 10. | Darwin 13... | 1 years, 3 months, 25 days |
| 11. | FreeBSD 6... | 1 years, 3 months, 9 days |
| 12. | Darwin 23... | 0 years, 11 months, 9 days |
-| 13. | *Darwin 24... | 0 years, 9 months, 21 days |
+| 13. | *Darwin 24... | 0 years, 10 months, 2 days |
| 14. | OpenBSD 4... | 0 years, 8 months, 12 days |
| 15. | Darwin 21... | 0 years, 8 months, 2 days |
| 16. | Darwin 18... | 0 years, 7 months, 5 days |
@@ -242,7 +242,7 @@ Score is calculated by combining all other metrics.
| 2. | *OpenBSD 7... | 484 |
| 3. | FreeBSD 10... | 406 |
| 4. | Linux 5... | 317 |
-| 5. | *Linux 6... | 211 |
+| 5. | *Linux 6... | 213 |
| 6. | Linux 4... | 175 |
| 7. | *FreeBSD 14... | 161 |
| 8. | FreeBSD 11... | 159 |
@@ -250,14 +250,14 @@ Score is calculated by combining all other metrics.
| 10. | Darwin 13... | 80 |
| 11. | FreeBSD 6... | 75 |
| 12. | Darwin 23... | 56 |
-| 13. | *Darwin 24... | 50 |
+| 13. | *Darwin 24... | 52 |
| 14. | OpenBSD 4... | 39 |
| 15. | Darwin 21... | 38 |
| 16. | Darwin 18... | 32 |
| 17. | Darwin 22... | 30 |
| 18. | Darwin 15... | 29 |
-| 19. | FreeBSD 5... | 25 |
-| 20. | FreeBSD 13... | 25 |
+| 19. | FreeBSD 13... | 25 |
+| 20. | FreeBSD 5... | 25 |
+-----+----------------+-------+
```
@@ -269,7 +269,7 @@ Boots is the total number of host boots over the entire lifespan.
+-----+------------+-------+
| Pos | KernelName | Boots |
+-----+------------+-------+
-| 1. | *Linux | 1087 |
+| 1. | *Linux | 1092 |
| 2. | *FreeBSD | 1080 |
| 3. | *Darwin | 155 |
| 4. | *OpenBSD | 109 |
@@ -285,10 +285,10 @@ Uptime is the total uptime of a host over the entire lifespan.
+-----+------------+-----------------------------+
| Pos | KernelName | Uptime |
+-----+------------+-----------------------------+
-| 1. | *Linux | 28 years, 2 months, 11 days |
+| 1. | *Linux | 28 years, 2 months, 16 days |
| 2. | *FreeBSD | 12 years, 2 months, 24 days |
| 3. | *OpenBSD | 8 years, 2 months, 7 days |
-| 4. | *Darwin | 5 years, 1 months, 8 days |
+| 4. | *Darwin | 5 years, 1 months, 19 days |
| 5. | NetBSD | 0 years, 1 months, 1 days |
+-----+------------+-----------------------------+
```
@@ -301,10 +301,10 @@ Score is calculated by combining all other metrics.
+-----+------------+-------+
| Pos | KernelName | Score |
+-----+------------+-------+
-| 1. | *Linux | 1870 |
+| 1. | *Linux | 1872 |
| 2. | *FreeBSD | 862 |
| 3. | *OpenBSD | 523 |
-| 4. | *Darwin | 332 |
+| 4. | *Darwin | 334 |
| 5. | NetBSD | 0 |
+-----+------------+-------+
```