summaryrefslogtreecommitdiff
path: root/about
diff options
context:
space:
mode:
Diffstat (limited to 'about')
-rw-r--r--about/index.md4
-rw-r--r--about/resources.md189
-rw-r--r--about/showcase.md487
-rw-r--r--about/showcase/debroid/image-1.png135
-rw-r--r--about/technical-books.txt1
5 files changed, 418 insertions, 398 deletions
diff --git a/about/index.md b/about/index.md
index 4f3f00c3..5dae312a 100644
--- a/about/index.md
+++ b/about/index.md
@@ -31,15 +31,15 @@
### Books I am currently reading
-* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
+* Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook
* Okular; Alastair Reynolds; eBook
* The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
### Unread books already in my shelf
-* Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook
* Inhibitor Phase; Alastair Reynolds; Audiobook
* A Fire Upon the Deep (german: Ein Feuer auf der Tiefe); Vernor Vinge; eBook
+* Senior Engineer Mindset; Swizec Teller
### Books I've read
diff --git a/about/resources.md b/about/resources.md
index 6a9affd3..1f5ca198 100644
--- a/about/resources.md
+++ b/about/resources.md
@@ -35,106 +35,107 @@ You won't find any links on this site because, over time, the links will break.
In random order:
-* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
-* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
* Developing Games in Java; David Brackeen and others...; New Riders
-* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
* Concurrency in Go; Katherine Cox-Buday; O'Reilly
-* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
-* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
-* DNS and BIND; Cricket Liu; O'Reilly
-* Effective Java; Joshua Bloch; Addison-Wesley Professional
-* Perl New Features; Joshua McAdams, brian d foy; Perl School
-* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
-* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
-* C++ Programming Language; Bjarne Stroustrup;
* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
+* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
+* Modern Perl; Chromatic ; Onyx Neon Press
+* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
+* The Pragmatic Programmer; David Thomas; Addison-Wesley
+* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
+* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
+* C++ Programming Language; Bjarne Stroustrup;
+* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
* Raku Fundamentals; Moritz Lenz; Apress
-* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
-* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
+* Java ist auch eine Insel; Christian Ullenboom;
+* Effective Java; Joshua Bloch; Addison-Wesley Professional
+* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
+* Raku Recipes; J.J. Merelo; Apress
+* Terraform Cookbook; Mikael Krief; Packt Publishing
* Ultimate Go Notebook; Bill Kennedy
-* The Pragmatic Programmer; David Thomas; Addison-Wesley
-* Java ist auch eine Insel; Christian Ullenboom;
-* Funktionale Programmierung; Peter Pepper; Springer
-* Leanring eBPF; Liz Rice; O'Reilly
-* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
* Effective awk programming; Arnold Robbins; O'Reilly
+* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
+* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+* Perl New Features; Joshua McAdams, brian d foy; Perl School
* Systemprogrammierung in Go; Frank Müller; dpunkt
-* Raku Recipes; J.J. Merelo; Apress
+* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
+* Polished Ruby Programming; Jeremy Evans; Packt Publishing
+* DNS and BIND; Cricket Liu; 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
+* Leanring eBPF; Liz Rice; O'Reilly
+* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
-* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
+* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
+* Funktionale Programmierung; Peter Pepper; Springer
+* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
* Higher Order Perl; Mark Dominus; Morgan Kaufmann
-* Modern Perl; Chromatic ; Onyx Neon Press
-* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
+* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
* Data Science at the Command Line; Jeroen Janssens; O'Reilly
-* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
-* 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
-* Terraform Cookbook; Mikael Krief; Packt Publishing
* The Docker Book; James Turnbull; Kindle
* Site Reliability Engineering; How Google runs production systems; O'Reilly
-* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
-* Polished Ruby Programming; Jeremy Evans; Packt Publishing
-* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
-* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
+* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
+* Clusterbau mit Linux-HA; Michael Schwartzkopff; 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:
-* The Linux Programming Interface; Michael Kerrisk; No Starch Press
-* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
-* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
* Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
-* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
-* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
* Relayd and Httpd Mastery; Michael W Lucas
+* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
+* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
+* The Linux Programming Interface; Michael Kerrisk; No Starch Press
+* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
+* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
## Self-development and soft-skills books
In random order:
-* Influence without Authority; A. Cohen, D. Bradford; Wiley
-* The Bullet Journal Method; Ryder Carroll; Fourth Estate
* Deep Work; Cal Newport; Piatkus
-* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
-* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
-* Soft Skills; John Sommez; Manning Publications
-* Eat That Frog!; Brian Tracy; Hodder Paperbacks
-* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
-* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
+* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
+* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
* The Good Enough Job; Simone Stolzoff; Ebury Edge
-* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
-* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
+* Influence without Authority; A. Cohen, D. Bradford; Wiley
+* The Power of Now; Eckhard Tolle; Yellow Kite
+* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
+* Meditation for Mortals, Oliver Burkeman, Audiobook
+* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
-* Ultralearning; Scott Young; Thorsons
+* Soft Skills; John Sommez; Manning Publications
+* Atomic Habits; James Clear; Random House Business
* 101 Essays that change the way you think; Brianna Wiest; Audiobook
-* Meditation for Mortals, Oliver Burkeman, Audiobook
-* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
-* The Joy of Missing Out; Christina Crook; New Society Publishers
-* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
-* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
-* Slow Productivity; Cal Newport; Penguin Random House
-* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
+* Eat That Frog!; Brian Tracy; Hodder Paperbacks
+* Digital Minimalism; Cal Newport; Portofolio Penguin
* Stop starting, start finishing; Arne Roock; Lean-Kanban University
-* So Good They Can't Ignore You; Cal Newport; Business Plus
+* Slow Productivity; Cal Newport; Penguin Random House
* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
+* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
+* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
+* The Bullet Journal Method; Ryder Carroll; Fourth Estate
* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
-* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
-* Ultralearning; Anna Laurent; Self-published via Amazon
-* Digital Minimalism; Cal Newport; Portofolio Penguin
-* Atomic Habits; James Clear; Random House Business
-* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
* Eat That Frog; Brian Tracy
-* The Power of Now; Eckhard Tolle; Yellow Kite
-* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* The Joy of Missing Out; Christina Crook; New Society Publishers
* Getting Things Done; David Allen
+* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
+* So Good They Can't Ignore You; Cal Newport; Business Plus
+* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* Ultralearning; Anna Laurent; Self-published via Amazon
+* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
+* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
+* Ultralearning; Scott Young; Thorsons
[Here are notes of mine for some of the books](../notes/index.md)
@@ -142,29 +143,29 @@ In random order:
Some of these were in-person with exams; others were online learning lectures only. In random order:
-* Functional programming lecture; Remote University of Hagen
-* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
+* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
+* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
+* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
-* Apache Tomcat Best Practises; 3-day on-site training
-* AWS Immersion Day; Amazon; 1-day interactive online training
-* Protocol buffers; O'Reilly Online
-* 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)
* MySQL Deep Dive Workshop; 2-day on-site training
-* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
-* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
-* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
-* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
+* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
+* AWS Immersion Day; Amazon; 1-day interactive online training
+* Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
* Scripting Vim; Damian Conway; O'Reilly Online
+* Protocol buffers; O'Reilly Online
* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
-* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
+* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
+* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
+* Functional programming lecture; Remote University of Hagen
+* Apache Tomcat Best Practises; 3-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
+* Advanced Bash-Scripting Guide
* Raku Guide at https://raku.guide
## Podcasts
@@ -173,56 +174,56 @@ These are not whole books, but guides (smaller or larger) which I found very use
In random order:
-* Fallthrough [Golang]
-* The Pragmatic Engineer Podcast
-* Hidden Brain
-* Fork Around And Find Out
-* The Changelog Podcast(s)
* Maintainable
-* The ProdCast (Google SRE Podcast)
-* BSD Now [BSD]
* Pratical AI
-* Cup o' Go [Golang]
+* Fork Around And Find Out
+* Fallthrough [Golang]
* Backend Banter
-* Dev Interrupted
+* The ProdCast (Google SRE Podcast)
+* Hidden Brain
+* The Pragmatic Engineer Podcast
* Modern Mentor
+* Cup o' Go [Golang]
+* Dev Interrupted
+* The Changelog Podcast(s)
* Deep Questions with Cal Newport
+* BSD Now [BSD]
### 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.
+* Ship It (predecessor of Fork Around And Find Out)
+* Modern Mentor
+* CRE: Chaosradio Express [german]
* Java Pub House
* Go Time (predecessor of fallthrough)
* FLOSS weekly
-* Ship It (predecessor of Fork Around And Find Out)
-* 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:
-* Applied Go Weekly Newsletter
-* VK Newsletter
+* The Imperfectionist
* Changelog News
-* The Valuable Dev
-* Golang Weekly
+* VK Newsletter
* The Pragmatic Engineer
+* Golang Weekly
+* The Valuable Dev
+* Applied Go Weekly Newsletter
+* byteSizeGo
* Register Spill
* Ruby Weekly
-* The Imperfectionist
-* Monospace Mentor
-* byteSizeGo
* Andreas Brandhorst Newsletter (Sci-Fi author)
+* Monospace Mentor
## Magazines I like(d)
This is a mix of tech I like(d). I may not be a current subscriber, but now and then, I buy an issue. In random order:
-* Linux Magazine
* Linux User
* freeX (not published anymore)
+* Linux Magazine
* LWN (online only)
# Formal education
diff --git a/about/showcase.md b/about/showcase.md
index 0aa11bb4..89017e33 100644
--- a/about/showcase.md
+++ b/about/showcase.md
@@ -1,6 +1,6 @@
# Project Showcase
-Generated on: 2025-09-11
+Generated on: 2025-09-18
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.
@@ -11,21 +11,22 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ Projects](#projects)
* [⇢ ⇢ ⇢ hexai](#hexai)
* [⇢ ⇢ ⇢ conf](#conf)
+* [⇢ ⇢ ⇢ foo.zone](#foozone)
* [⇢ ⇢ ⇢ gitsyncer](#gitsyncer)
* [⇢ ⇢ ⇢ totalrecall](#totalrecall)
+* [⇢ ⇢ ⇢ dtail](#dtail)
* [⇢ ⇢ ⇢ timr](#timr)
* [⇢ ⇢ ⇢ tasksamurai](#tasksamurai)
* [⇢ ⇢ ⇢ ior](#ior)
-* [⇢ ⇢ ⇢ dtail](#dtail)
* [⇢ ⇢ ⇢ foostats](#foostats)
* [⇢ ⇢ ⇢ wireguardmeshgenerator](#wireguardmeshgenerator)
-* [⇢ ⇢ ⇢ ds-sim](#ds-sim)
* [⇢ ⇢ ⇢ gos](#gos)
+* [⇢ ⇢ ⇢ ds-sim](#ds-sim)
* [⇢ ⇢ ⇢ sillybench](#sillybench)
* [⇢ ⇢ ⇢ rcm](#rcm)
* [⇢ ⇢ ⇢ gemtexter](#gemtexter)
-* [⇢ ⇢ ⇢ docker-radicale-server](#docker-radicale-server)
* [⇢ ⇢ ⇢ quicklogger](#quicklogger)
+* [⇢ ⇢ ⇢ docker-radicale-server](#docker-radicale-server)
* [⇢ ⇢ ⇢ terraform](#terraform)
* [⇢ ⇢ ⇢ gogios](#gogios)
* [⇢ ⇢ ⇢ gorum](#gorum)
@@ -35,7 +36,6 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ ⇢ photoalbum](#photoalbum)
* [⇢ ⇢ ⇢ geheim](#geheim)
* [⇢ ⇢ ⇢ algorithms](#algorithms)
-* [⇢ ⇢ ⇢ foo.zone](#foozone)
* [⇢ ⇢ ⇢ perl-c-fibonacci](#perl-c-fibonacci)
* [⇢ ⇢ ⇢ ioriot](#ioriot)
* [⇢ ⇢ ⇢ staticfarm-apache-handlers](#staticfarm-apache-handlers)
@@ -50,29 +50,29 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ ⇢ template](#template)
* [⇢ ⇢ ⇢ muttdelay](#muttdelay)
* [⇢ ⇢ ⇢ netdiff](#netdiff)
-* [⇢ ⇢ ⇢ pwgrep](#pwgrep)
* [⇢ ⇢ ⇢ japi](#japi)
* [⇢ ⇢ ⇢ perl-poetry](#perl-poetry)
* [⇢ ⇢ ⇢ ipv6test](#ipv6test)
* [⇢ ⇢ ⇢ cpuinfo](#cpuinfo)
* [⇢ ⇢ ⇢ loadbars](#loadbars)
+* [⇢ ⇢ ⇢ pwgrep](#pwgrep)
* [⇢ ⇢ ⇢ perldaemon](#perldaemon)
* [⇢ ⇢ ⇢ awksite](#awksite)
* [⇢ ⇢ ⇢ jsmstrade](#jsmstrade)
-* [⇢ ⇢ ⇢ netcalendar](#netcalendar)
* [⇢ ⇢ ⇢ ychat](#ychat)
-* [⇢ ⇢ ⇢ hsbot](#hsbot)
+* [⇢ ⇢ ⇢ netcalendar](#netcalendar)
* [⇢ ⇢ ⇢ vs-sim](#vs-sim)
+* [⇢ ⇢ ⇢ hsbot](#hsbot)
* [⇢ ⇢ ⇢ fype](#fype)
## Overall Statistics
* 📦 Total Projects: 55
-* 📊 Total Commits: 11,028
-* 📈 Total Lines of Code: 284,649
-* 📄 Total Lines of Documentation: 23,038
-* 💻 Languages: Go (26.5%), Java (14.2%), C++ (13.1%), C/C++ (7.2%), C (6.7%), Perl (6.2%), CSS (6.1%), HTML (5.4%), Shell (5.2%), Python (2.3%), Config (1.7%), Ruby (1.0%), JSON (1.0%), HCL (1.0%), Make (0.7%), YAML (0.6%), Raku (0.3%), XML (0.2%), Haskell (0.2%), TOML (0.1%)
-* 📚 Documentation: Text (48.8%), Markdown (48.7%), LaTeX (2.5%)
+* 📊 Total Commits: 11,075
+* 📈 Total Lines of Code: 294,461
+* 📄 Total Lines of Documentation: 240,909
+* 💻 Languages: Go (28.5%), Java (18.6%), HTML (15.0%), C (6.4%), C++ (6.0%), Perl (5.6%), XML (4.8%), Shell (4.6%), C/C++ (4.2%), Config (1.2%), Ruby (1.0%), HCL (0.9%), YAML (0.6%), Python (0.6%), Make (0.5%), CSS (0.5%), Raku (0.3%), JSON (0.3%), Haskell (0.2%), TOML (0.1%)
+* 📚 Documentation: Text (92.8%), Markdown (5.8%), LaTeX (1.4%)
* 🎵 Vibe-Coded Projects: 4 out of 55 (7.3%)
* 🤖 AI-Assisted Projects (including vibe-coded): 10 out of 55 (18.2% AI-assisted, 81.8% human-only)
* 🚀 Release Status: 35 released, 20 experimental (63.6% with releases, 36.4% experimental)
@@ -81,15 +81,15 @@ This page showcases my side projects, providing an overview of what each project
### hexai
-* 💻 Languages: Go (66.6%), HTML (33.4%)
+* 💻 Languages: Go (66.1%), HTML (33.9%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 193
-* 📈 Lines of Code: 19021
-* 📄 Lines of Documentation: 369
-* 📅 Development Period: 2025-08-01 to 2025-09-08
-* 🔥 Recent Activity: 3.9 days (avg. age of last 42 commits)
+* 📊 Commits: 208
+* 📈 Lines of Code: 22125
+* 📄 Lines of Documentation: 546
+* 📅 Development Period: 2025-08-01 to 2025-09-17
+* 🔥 Recent Activity: 7.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
-* 🏷️ Latest Release: v0.9.0 (2025-09-08)
+* 🏷️ Latest Release: v0.11.3 (2025-09-17)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -106,13 +106,13 @@ The project is implemented primarily in Go and uses Mage as its build and task a
### conf
-* 💻 Languages: Perl (31.4%), YAML (23.1%), Shell (23.0%), Config (5.6%), CSS (5.4%), TOML (4.8%), Ruby (4.1%), Lua (1.2%), Docker (0.7%), JSON (0.6%), INI (0.1%)
+* 💻 Languages: Perl (31.3%), Shell (23.2%), YAML (23.0%), Config (5.6%), CSS (5.4%), TOML (4.8%), Ruby (4.2%), Lua (1.2%), Docker (0.6%), JSON (0.5%)
* 📚 Documentation: Text (69.9%), Markdown (30.1%)
-* 📊 Commits: 980
-* 📈 Lines of Code: 5994
+* 📊 Commits: 995
+* 📈 Lines of Code: 6017
* 📄 Lines of Documentation: 1188
-* 📅 Development Period: 2021-12-28 to 2025-09-10
-* 🔥 Recent Activity: 16.6 days (avg. age of last 42 commits)
+* 📅 Development Period: 2021-12-28 to 2025-09-17
+* 🔥 Recent Activity: 12.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -125,6 +125,29 @@ conf
---
+### foo.zone
+
+* 💻 Languages: HTML (70.5%), XML (28.8%), Shell (0.3%), CSS (0.2%), Go (0.1%)
+* 📚 Documentation: Text (75.5%), Markdown (24.5%)
+* 📊 Commits: 3072
+* 📈 Lines of Code: 46613
+* 📄 Lines of Documentation: 298
+* 📅 Development Period: 2021-04-29 to 2025-09-13
+* 🔥 Recent Activity: 42.0 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
+
+
+This project hosts the static files for the foo.zone website, which is accessible via both the Gemini protocol (gemini://foo.zone) and the web (https://foo.zone). The repository is organized with separate branches for each content format—such as Gemtext, HTML, and Markdown—allowing the site to be served in multiple formats tailored to different protocols and user preferences. This structure makes it easy to maintain and update content across platforms, ensuring consistency and flexibility.
+
+The site is maintained using a suite of open-source tools, including Neovim for editing, GNU Bash for scripting, and ShellCheck for shell script linting. It is deployed on OpenBSD, utilizing the vger Gemini server (managed via relayd and inetd) for Gemini content and the native httpd server for the HTML site. Source code and hosting are managed through Codeberg. The static content is generated with the help of the gemtexter tool, which streamlines the process of converting and managing content in various formats. This architecture emphasizes simplicity, security, and portability, making it a robust solution for multi-protocol static site hosting.
+
+[View on Codeberg](https://codeberg.org/snonux/foo.zone)
+[View on GitHub](https://github.com/snonux/foo.zone)
+
+---
+
### gitsyncer
* 💻 Languages: Go (91.0%), Shell (7.4%), YAML (0.9%), JSON (0.6%)
@@ -133,7 +156,7 @@ conf
* 📈 Lines of Code: 10036
* 📄 Lines of Documentation: 2433
* 📅 Development Period: 2025-06-23 to 2025-09-08
-* 🔥 Recent Activity: 48.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 55.5 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.9.2 (2025-09-08)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -156,7 +179,7 @@ The tool is implemented as a modern CLI application in Go, with a modular, comma
* 📈 Lines of Code: 12003
* 📄 Lines of Documentation: 361
* 📅 Development Period: 2025-07-14 to 2025-08-02
-* 🔥 Recent Activity: 50.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 58.3 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
@@ -177,6 +200,33 @@ Architecturally, totalrecall is implemented in Go and integrates with OpenAI ser
---
+### dtail
+
+* 💻 Languages: Go (91.0%), Shell (4.1%), JSON (2.1%), C (1.4%), Make (0.9%), C/C++ (0.2%), Config (0.1%)
+* 📚 Documentation: Text (98.3%), Markdown (1.7%)
+* 📊 Commits: 1046
+* 📈 Lines of Code: 27726
+* 📄 Lines of Documentation: 220214
+* 📅 Development Period: 2020-01-09 to 2025-07-04
+* 🔥 Recent Activity: 78.1 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
+
+
+[![dtail screenshot](showcase/dtail/image-1.png "dtail screenshot")](showcase/dtail/image-1.png)
+
+DTail is an open-source distributed log management tool designed for DevOps engineers to efficiently tail, cat, and grep log files across thousands of servers simultaneously. Written in Go, it supports advanced features such as on-the-fly decompression (gzip, zstd) and distributed MapReduce-style aggregations, making it highly useful for large-scale log analysis and troubleshooting in complex environments. By leveraging SSH for secure communication and adhering to UNIX file permission models, DTail ensures both security and compatibility with existing infrastructure.
+
+[![dtail screenshot](showcase/dtail/image-2.gif "dtail screenshot")](showcase/dtail/image-2.gif)
+
+The architecture consists of a client-server model: DTail servers run on each target machine, while a DTail client—typically on an engineer’s workstation—connects to all servers concurrently to aggregate and process logs in real time. This design enables scalable, parallel log operations and can be extended to a serverless mode for added flexibility. DTail’s implementation emphasizes performance, security, and ease of use, making it a valuable tool for organizations needing to monitor and analyze distributed logs efficiently.
+
+[View on Codeberg](https://codeberg.org/snonux/dtail)
+[View on GitHub](https://github.com/snonux/dtail)
+
+---
+
### timr
* 💻 Languages: Go (98.3%), YAML (1.7%)
@@ -185,7 +235,7 @@ Architecturally, totalrecall is implemented in Go and integrates with OpenAI ser
* 📈 Lines of Code: 873
* 📄 Lines of Documentation: 137
* 📅 Development Period: 2025-06-25 to 2025-07-19
-* 🔥 Recent Activity: 74.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 82.2 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.0.0 (2025-06-29)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -210,7 +260,7 @@ From an architectural standpoint, `timr` is implemented in Go, ensuring cross-pl
* 📈 Lines of Code: 6160
* 📄 Lines of Documentation: 162
* 📅 Development Period: 2025-06-19 to 2025-07-12
-* 🔥 Recent Activity: 76.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 84.0 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.9.2 (2025-07-02)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -237,7 +287,7 @@ The core architecture leverages the Bubble Tea framework for rendering the termi
* 📈 Lines of Code: 12762
* 📄 Lines of Documentation: 742
* 📅 Development Period: 2024-01-18 to 2025-07-14
-* 🔥 Recent Activity: 114.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 122.0 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
@@ -256,33 +306,6 @@ The project is implemented using a combination of Go, C, and BPF, leveraging the
---
-### dtail
-
-* 💻 Languages: Go (93.9%), JSON (2.8%), C (2.0%), Make (0.5%), C/C++ (0.3%), Config (0.2%), Shell (0.2%), Docker (0.1%)
-* 📚 Documentation: Text (79.4%), Markdown (20.6%)
-* 📊 Commits: 1046
-* 📈 Lines of Code: 20091
-* 📄 Lines of Documentation: 5674
-* 📅 Development Period: 2020-01-09 to 2025-06-20
-* 🔥 Recent Activity: 116.1 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
-
-
-[![dtail screenshot](showcase/dtail/image-1.png "dtail screenshot")](showcase/dtail/image-1.png)
-
-DTail is an open-source distributed log management tool designed for DevOps engineers to efficiently tail, cat, and grep log files across thousands of servers simultaneously. Written in Go, it supports advanced features such as on-the-fly decompression (gzip, zstd) and distributed MapReduce-style aggregations, making it highly useful for large-scale log analysis and troubleshooting in complex environments. By leveraging SSH for secure communication and adhering to UNIX file permission models, DTail ensures both security and compatibility with existing infrastructure.
-
-[![dtail screenshot](showcase/dtail/image-2.gif "dtail screenshot")](showcase/dtail/image-2.gif)
-
-The architecture consists of a client-server model: DTail servers run on each target machine, while a DTail client—typically on an engineer’s workstation—connects to all servers concurrently to aggregate and process logs in real time. This design enables scalable, parallel log operations and can be extended to a serverless mode for added flexibility. DTail’s implementation emphasizes performance, security, and ease of use, making it a valuable tool for organizations needing to monitor and analyze distributed logs efficiently.
-
-[View on Codeberg](https://codeberg.org/snonux/dtail)
-[View on GitHub](https://github.com/snonux/dtail)
-
----
-
### foostats
* 💻 Languages: Perl (100.0%)
@@ -291,7 +314,7 @@ The architecture consists of a client-server model: DTail servers run on each ta
* 📈 Lines of Code: 1887
* 📄 Lines of Documentation: 240
* 📅 Development Period: 2023-01-02 to 2025-09-03
-* 🔥 Recent Activity: 120.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 128.2 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.1.0 (2025-07-12)
@@ -313,7 +336,7 @@ Architecturally, foostats is modular, with components for log parsing, filtering
* 📈 Lines of Code: 396
* 📄 Lines of Documentation: 24
* 📅 Development Period: 2025-04-18 to 2025-05-11
-* 🔥 Recent Activity: 135.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 142.9 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2025-05-11)
@@ -327,6 +350,32 @@ The project is implemented using Ruby, with tasks managed via Rake, and configur
---
+### gos
+
+* 💻 Languages: Go (98.6%), YAML (1.1%), JSON (0.3%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 389
+* 📈 Lines of Code: 3996
+* 📄 Lines of Documentation: 352
+* 📅 Development Period: 2024-05-04 to 2025-09-16
+* 🔥 Recent Activity: 146.8 days (avg. age of last 42 commits)
+* ⚖️ License: Custom License
+* 🏷️ Latest Release: v1.1.0 (2025-09-16)
+
+
+[![gos screenshot](showcase/gos/image-1.png "gos screenshot")](showcase/gos/image-1.png)
+
+**Gos (Go Social Media)** is a command-line tool written in Go that serves as a self-hosted, scriptable alternative to Buffer.com for scheduling and managing social media posts. Designed for users who prefer automation, privacy, and control, Gos enables posting to Mastodon and LinkedIn (with OAuth2 authentication for LinkedIn) directly from the terminal. It supports features like dry-run mode for safe testing, flexible configuration via flags and environment variables, image previews for LinkedIn, and a pseudo-platform ("Noop") for tracking posts without publishing. Gos is particularly useful for developers, power users, or anyone who wants to automate their social media workflow, avoid third-party service limitations, and integrate posting into their own scripts or shell startup routines.
+
+[![gos screenshot](showcase/gos/image-2.png "gos screenshot")](showcase/gos/image-2.png)
+
+**Architecturally**, Gos operates on a file-based queueing system: users compose posts as text files (optionally using the companion `gosc` composer tool) in a designated directory. Posts are tagged via filenames or inline tags to control target platforms, priorities, and behaviors (e.g., immediate posting, pausing, or requiring confirmation). When Gos runs, it processes these files, moves them through platform-specific queues, and posts them according to user-defined cadence, priorities, and pause intervals. The configuration is managed via a JSON file storing API credentials and scheduling preferences. Gos also supports generating Gemini Gemtext summaries of posted content for blogging or archival purposes. The system is highly scriptable, easy to integrate into automated workflows, and can be synced or backed up using tools like Syncthing, making it a robust, extensible solution for personal or small-team social media management.
+
+[View on Codeberg](https://codeberg.org/snonux/gos)
+[View on GitHub](https://github.com/snonux/gos)
+
+---
+
### ds-sim
* 💻 Languages: Java (98.9%), Shell (0.6%), CSS (0.5%)
@@ -335,7 +384,7 @@ The project is implemented using Ruby, with tasks managed via Rake, and configur
* 📈 Lines of Code: 25762
* 📄 Lines of Documentation: 3101
* 📅 Development Period: 2008-05-15 to 2025-06-27
-* 🔥 Recent Activity: 148.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 156.2 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
@@ -352,32 +401,6 @@ Architecturally, DS-Sim is organized into modular components: core process and m
---
-### gos
-
-* 💻 Languages: Go (98.6%), YAML (1.1%), JSON (0.2%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 387
-* 📈 Lines of Code: 3978
-* 📄 Lines of Documentation: 342
-* 📅 Development Period: 2024-05-04 to 2025-09-07
-* 🔥 Recent Activity: 149.7 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
-* 🏷️ Latest Release: v1.0.3 (2025-09-07)
-
-
-[![gos screenshot](showcase/gos/image-1.png "gos screenshot")](showcase/gos/image-1.png)
-
-**Gos (Go Social Media)** is a command-line tool written in Go that serves as a self-hosted, scriptable alternative to Buffer.com for scheduling and managing social media posts. Designed for users who prefer automation, privacy, and control, Gos enables posting to Mastodon and LinkedIn (with OAuth2 authentication for LinkedIn) directly from the terminal. It supports features like dry-run mode for safe testing, flexible configuration via flags and environment variables, image previews for LinkedIn, and a pseudo-platform ("Noop") for tracking posts without publishing. Gos is particularly useful for developers, power users, or anyone who wants to automate their social media workflow, avoid third-party service limitations, and integrate posting into their own scripts or shell startup routines.
-
-[![gos screenshot](showcase/gos/image-2.png "gos screenshot")](showcase/gos/image-2.png)
-
-**Architecturally**, Gos operates on a file-based queueing system: users compose posts as text files (optionally using the companion `gosc` composer tool) in a designated directory. Posts are tagged via filenames or inline tags to control target platforms, priorities, and behaviors (e.g., immediate posting, pausing, or requiring confirmation). When Gos runs, it processes these files, moves them through platform-specific queues, and posts them according to user-defined cadence, priorities, and pause intervals. The configuration is managed via a JSON file storing API credentials and scheduling preferences. Gos also supports generating Gemini Gemtext summaries of posted content for blogging or archival purposes. The system is highly scriptable, easy to integrate into automated workflows, and can be synced or backed up using tools like Syncthing, making it a robust, extensible solution for personal or small-team social media management.
-
-[View on Codeberg](https://codeberg.org/snonux/gos)
-[View on GitHub](https://github.com/snonux/gos)
-
----
-
### sillybench
* 💻 Languages: Go (90.9%), Shell (9.1%)
@@ -386,7 +409,7 @@ Architecturally, DS-Sim is organized into modular components: core process and m
* 📈 Lines of Code: 33
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2025-04-03 to 2025-04-03
-* 🔥 Recent Activity: 161.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 168.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -408,7 +431,7 @@ Implementation-wise, the project likely consists of a small, easily portable pro
* 📈 Lines of Code: 1373
* 📄 Lines of Documentation: 48
* 📅 Development Period: 2024-12-05 to 2025-02-28
-* 🔥 Recent Activity: 202.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 209.5 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -424,16 +447,15 @@ Key features include a test suite (run via `rake test`) to ensure reliability, a
### gemtexter
-* 💻 Languages: CSS (55.3%), Python (16.1%), HTML (15.3%), JSON (6.6%), Shell (5.3%), Config (1.5%)
-* 📚 Documentation: Text (70.2%), Markdown (29.8%)
+* 💻 Languages: Shell (68.3%), CSS (28.4%), Config (1.9%), HTML (1.3%)
+* 📚 Documentation: Text (76.1%), Markdown (23.9%)
* 📊 Commits: 466
-* 📈 Lines of Code: 30319
-* 📄 Lines of Documentation: 1280
-* 📅 Development Period: 2021-05-21 to 2025-06-22
-* 🔥 Recent Activity: 266.0 days (avg. age of last 42 commits)
+* 📈 Lines of Code: 2285
+* 📄 Lines of Documentation: 1180
+* 📅 Development Period: 2021-05-21 to 2025-08-31
+* 🔥 Recent Activity: 254.9 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🏷️ Latest Release: 3.0.0 (2024-10-01)
-* 🤖 AI-Assisted: This project was partially created with the help of generative AI
**Summary of the Gemtexter Project**
@@ -447,6 +469,32 @@ The project is implemented as a large Bash script, leveraging standard GNU utili
---
+### quicklogger
+
+* 💻 Languages: Go (96.1%), XML (1.9%), Shell (1.2%), TOML (0.7%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 35
+* 📈 Lines of Code: 1133
+* 📄 Lines of Documentation: 78
+* 📅 Development Period: 2024-01-20 to 2025-09-13
+* 🔥 Recent Activity: 475.4 days (avg. age of last 42 commits)
+* ⚖️ License: MIT
+* 🏷️ Latest Release: v0.0.4 (2025-09-13)
+
+
+[![quicklogger screenshot](showcase/quicklogger/image-1.png "quicklogger screenshot")](showcase/quicklogger/image-1.png)
+
+Quick Logger is a lightweight graphical application designed for quickly capturing and saving ideas or notes as plain text files, primarily targeting Android devices but also runnable on Linux desktops. Built with the Go programming language and the Fyne GUI framework, the app provides a simple interface where users can enter a message, which is then saved to a designated folder. This folder can be synchronized across devices using tools like Syncthing, ensuring that notes taken on a mobile device are automatically available on a home computer.
+
+[![quicklogger screenshot](showcase/quicklogger/image-2.png "quicklogger screenshot")](showcase/quicklogger/image-2.png)
+
+The project’s key features include its minimalistic design, cross-platform compatibility (Android and Linux), and seamless integration with file synchronization workflows. Architecturally, Quick Logger leverages Fyne for its user interface, enabling a consistent look and feel across platforms, and uses Go’s standard library for file operations. The build process supports both direct compilation and containerized cross-compilation (using fyne-cross and Podman/Docker), making it accessible to developers on different systems. This combination of simplicity, portability, and easy synchronization makes Quick Logger a practical tool for quickly jotting down ideas on the go.
+
+[View on Codeberg](https://codeberg.org/snonux/quicklogger)
+[View on GitHub](https://github.com/snonux/quicklogger)
+
+---
+
### docker-radicale-server
* 💻 Languages: Make (57.5%), Docker (42.5%)
@@ -455,7 +503,7 @@ The project is implemented as a large Bash script, leveraging standard GNU utili
* 📈 Lines of Code: 40
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2023-12-31 to 2025-08-11
-* 🔥 Recent Activity: 501.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 509.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -469,32 +517,6 @@ The Docker image is typically implemented using a `Dockerfile` that installs Rad
---
-### quicklogger
-
-* 💻 Languages: Go (97.6%), Shell (1.5%), TOML (0.9%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 32
-* 📈 Lines of Code: 917
-* 📄 Lines of Documentation: 33
-* 📅 Development Period: 2024-01-20 to 2025-07-06
-* 🔥 Recent Activity: 512.0 days (avg. age of last 42 commits)
-* ⚖️ License: MIT
-* 🏷️ Latest Release: v0.0.3 (2025-07-06)
-
-
-[![quicklogger screenshot](showcase/quicklogger/image-1.png "quicklogger screenshot")](showcase/quicklogger/image-1.png)
-
-Quick Logger is a lightweight graphical application designed for quickly capturing and saving ideas or notes as plain text files, primarily targeting Android devices but also runnable on Linux desktops. Built with the Go programming language and the Fyne GUI framework, the app provides a simple interface where users can enter a message, which is then saved to a designated folder. This folder can be synchronized across devices using tools like Syncthing, ensuring that notes taken on a mobile device are automatically available on a home computer.
-
-[![quicklogger screenshot](showcase/quicklogger/image-2.png "quicklogger screenshot")](showcase/quicklogger/image-2.png)
-
-The project’s key features include its minimalistic design, cross-platform compatibility (Android and Linux), and seamless integration with file synchronization workflows. Architecturally, Quick Logger leverages Fyne for its user interface, enabling a consistent look and feel across platforms, and uses Go’s standard library for file operations. The build process supports both direct compilation and containerized cross-compilation (using fyne-cross and Podman/Docker), making it accessible to developers on different systems. This combination of simplicity, portability, and easy synchronization makes Quick Logger a practical tool for quickly jotting down ideas on the go.
-
-[View on Codeberg](https://codeberg.org/snonux/quicklogger)
-[View on GitHub](https://github.com/snonux/quicklogger)
-
----
-
### terraform
* 💻 Languages: HCL (96.6%), Make (1.9%), YAML (1.5%)
@@ -503,7 +525,7 @@ The project’s key features include its minimalistic design, cross-platform com
* 📈 Lines of Code: 2851
* 📄 Lines of Documentation: 52
* 📅 Development Period: 2023-08-27 to 2025-08-08
-* 🔥 Recent Activity: 537.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 545.3 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🧪 Status: Experimental (no releases yet)
@@ -525,7 +547,7 @@ Key features include the ability to specify which ECS services to deploy, automa
* 📈 Lines of Code: 1096
* 📄 Lines of Documentation: 287
* 📅 Development Period: 2023-04-17 to 2025-06-12
-* 🔥 Recent Activity: 578.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 586.2 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.1.0 (2024-05-03)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -550,7 +572,7 @@ Architecturally, Gogios is implemented in Go for efficiency and ease of deployme
* 📈 Lines of Code: 1525
* 📄 Lines of Documentation: 15
* 📅 Development Period: 2023-04-17 to 2023-11-19
-* 🔥 Recent Activity: 764.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 772.2 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -573,7 +595,7 @@ The project is still under development, but its planned features include remote
* 📈 Lines of Code: 312
* 📄 Lines of Documentation: 416
* 📅 Development Period: 2013-03-22 to 2025-05-18
-* 🔥 Recent Activity: 814.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 822.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v1.0.0 (2023-04-29)
@@ -595,7 +617,7 @@ The architecture of `guprecords` is modular, with classes dedicated to parsing e
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2022-06-02 to 2024-04-20
-* 🔥 Recent Activity: 829.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 837.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -618,7 +640,7 @@ The implementation relies on standard Linux utilities: `qpdf` for manipulating P
* 📈 Lines of Code: 41
* 📄 Lines of Documentation: 17
* 📅 Development Period: 2020-01-30 to 2025-04-30
-* 🔥 Recent Activity: 1123.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1130.5 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🧪 Status: Experimental (no releases yet)
@@ -640,7 +662,7 @@ The script is implemented by piping the output of `monitor-sensor` into `autorot
* 📈 Lines of Code: 342
* 📄 Lines of Documentation: 39
* 📅 Development Period: 2011-11-19 to 2022-04-02
-* 🔥 Recent Activity: 1342.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1350.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.5.0 (2022-02-21)
@@ -665,7 +687,7 @@ The `photoalbum` project is a minimal Bash script designed for Linux systems to
* 📈 Lines of Code: 671
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2018-05-26 to 2025-09-04
-* 🔥 Recent Activity: 1437.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1444.9 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -691,7 +713,7 @@ The architecture centers around a local Git repository that acts as the secure s
* 📈 Lines of Code: 1728
* 📄 Lines of Documentation: 18
* 📅 Development Period: 2020-07-12 to 2023-04-09
-* 🔥 Recent Activity: 1493.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1501.3 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -706,28 +728,6 @@ Key features include a modular codebase where each algorithm or exercise is like
---
-### foo.zone
-
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 3060
-* 📈 Lines of Code: 0
-* 📄 Lines of Documentation: 23
-* 📅 Development Period: 2021-05-21 to 2022-04-02
-* 🔥 Recent Activity: 1509.4 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 project hosts the static files for the foo.zone website, which is accessible via both the Gemini protocol (gemini://foo.zone) and the web (https://foo.zone). The repository is organized with separate branches for each content format—such as Gemtext, HTML, and Markdown—allowing the site to be served in multiple formats tailored to different protocols and user preferences. This structure makes it easy to maintain and update content across platforms, ensuring consistency and flexibility.
-
-The site is maintained using a suite of open-source tools, including Neovim for editing, GNU Bash for scripting, and ShellCheck for shell script linting. It is deployed on OpenBSD, utilizing the vger Gemini server (managed via relayd and inetd) for Gemini content and the native httpd server for the HTML site. Source code and hosting are managed through Codeberg. The static content is generated with the help of the gemtexter tool, which streamlines the process of converting and managing content in various formats. This architecture emphasizes simplicity, security, and portability, making it a robust solution for multi-protocol static site hosting.
-
-[View on Codeberg](https://codeberg.org/snonux/foo.zone)
-[View on GitHub](https://github.com/snonux/foo.zone)
-
----
-
### perl-c-fibonacci
* 💻 Languages: C (80.4%), Make (19.6%)
@@ -736,7 +736,7 @@ The site is maintained using a suite of open-source tools, including Neovim for
* 📈 Lines of Code: 51
* 📄 Lines of Documentation: 69
* 📅 Development Period: 2014-03-24 to 2022-04-23
-* 🔥 Recent Activity: 1974.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1982.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -757,7 +757,7 @@ perl-c-fibonacci: source code repository.
* 📈 Lines of Code: 12420
* 📄 Lines of Documentation: 610
* 📅 Development Period: 2018-03-01 to 2020-01-22
-* 🔥 Recent Activity: 2516.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2523.7 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0.5.1 (2019-01-04)
@@ -782,7 +782,7 @@ The tool operates in five main steps: capturing I/O on the production server, tr
* 📈 Lines of Code: 919
* 📄 Lines of Documentation: 12
* 📅 Development Period: 2015-01-02 to 2021-11-04
-* 🔥 Recent Activity: 3025.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3032.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.1.3 (2015-01-02)
@@ -805,7 +805,7 @@ In terms of implementation, the project consists of Perl modules that conform to
* 📈 Lines of Code: 18
* 📄 Lines of Documentation: 49
* 📅 Development Period: 2014-03-24 to 2021-11-05
-* 🔥 Recent Activity: 3260.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3268.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -835,7 +835,7 @@ This setup is useful for anyone running their own DNS server who needs to keep D
* 📈 Lines of Code: 5360
* 📄 Lines of Documentation: 789
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3527.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3535.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.1 (2015-01-02)
@@ -862,7 +862,7 @@ The "mon" tool is a command-line monitoring API client designed to interact with
* 📈 Lines of Code: 273
* 📄 Lines of Documentation: 32
* 📅 Development Period: 2015-09-29 to 2021-11-05
-* 🔥 Recent Activity: 3531.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3539.2 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0 (2015-10-26)
@@ -891,7 +891,7 @@ The architecture is simple but effective: it reads a list of servers, establishe
* 📈 Lines of Code: 1839
* 📄 Lines of Documentation: 412
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3611.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3618.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2015-01-02)
@@ -918,7 +918,7 @@ pingdomfetch is implemented as a script that reads configuration files from stan
* 📈 Lines of Code: 499
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2015-05-24 to 2021-11-03
-* 🔥 Recent Activity: 3622.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3629.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1 (2015-06-01)
@@ -939,7 +939,7 @@ The tool is implemented in Go, which offers advantages in terms of performance,
* 📊 Commits: 670
* 📈 Lines of Code: 1675
* 📅 Development Period: 2011-03-06 to 2018-12-22
-* 🔥 Recent Activity: 3677.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3685.2 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2018-12-22)
@@ -962,7 +962,7 @@ The implementation is primarily documentation-driven, meant to be included at th
* 📈 Lines of Code: 88
* 📄 Lines of Documentation: 148
* 📅 Development Period: 2015-06-18 to 2015-12-05
-* 🔥 Recent Activity: 3725.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3733.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -987,7 +987,7 @@ The implementation involves several key steps: first, a Debian image is created
* 📈 Lines of Code: 1681
* 📄 Lines of Documentation: 539
* 📅 Development Period: 2014-03-10 to 2021-11-03
-* 🔥 Recent Activity: 4003.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4011.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-11-17)
@@ -1014,7 +1014,7 @@ The `fapi` project is a command-line tool designed to simplify the management of
* 📈 Lines of Code: 65
* 📄 Lines of Documentation: 228
* 📅 Development Period: 2013-03-22 to 2021-11-04
-* 🔥 Recent Activity: 4058.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4065.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.0.0.0 (2013-03-22)
@@ -1037,7 +1037,7 @@ Key features of the template include a Makefile that automates compilation and p
* 📈 Lines of Code: 136
* 📄 Lines of Documentation: 96
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4071.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4078.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.2.0 (2014-07-05)
@@ -1064,7 +1064,7 @@ The core functionality is implemented through a combination of Vim integration,
* 📈 Lines of Code: 134
* 📄 Lines of Documentation: 106
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4078.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4086.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1.5 (2014-06-22)
@@ -1081,29 +1081,6 @@ The tool operates by having users simultaneously run the same command on both ho
---
-### pwgrep
-
-* 💻 Languages: Shell (85.0%), Make (15.0%)
-* 📚 Documentation: Text (80.8%), Markdown (19.2%)
-* 📊 Commits: 142
-* 📈 Lines of Code: 493
-* 📄 Lines of Documentation: 26
-* 📅 Development Period: 2009-09-27 to 2021-11-02
-* 🔥 Recent Activity: 4122.0 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ Latest Release: 0.9.3 (2014-06-14)
-
-⚠️ **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.
-
-**pwgrep** is a lightweight password manager designed for Unix-like systems, implemented primarily in Bash and GNU AWK. It securely stores and retrieves passwords by encrypting them with GPG (GNU Privacy Guard), ensuring that sensitive information remains protected. Version control for password files is handled using an RCS (Revision Control System) such as Git, allowing users to track changes, revert to previous versions, and maintain an audit trail of password updates. This approach leverages familiar command-line tools, making it accessible to users comfortable with shell environments.
-
-The core features of pwgrep include encrypted password storage, easy retrieval and search functionality (using AWK for pattern matching), and robust version control integration. The architecture is modular and script-based: Bash scripts orchestrate user interactions and file management, AWK handles efficient searching within password files, GPG provides encryption/decryption, and Git (or another RCS) manages version history. This combination offers a secure, auditable, and scriptable solution for password management without relying on heavyweight external applications or GUIs.
-
-[View on Codeberg](https://codeberg.org/snonux/pwgrep)
-[View on GitHub](https://github.com/snonux/pwgrep)
-
----
-
### japi
* 💻 Languages: Perl (78.3%), Make (21.7%)
@@ -1112,7 +1089,7 @@ The core features of pwgrep include encrypted password storage, easy retrieval a
* 📈 Lines of Code: 286
* 📄 Lines of Documentation: 144
* 📅 Development Period: 2013-03-22 to 2021-11-05
-* 🔥 Recent Activity: 4127.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4134.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.4.3 (2014-06-16)
@@ -1137,7 +1114,7 @@ The tool is implemented in Perl and relies on the "JIRA::REST" CPAN module to co
* 📈 Lines of Code: 191
* 📄 Lines of Documentation: 8
* 📅 Development Period: 2014-03-24 to 2014-03-24
-* 🔥 Recent Activity: 4188.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4195.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -1158,7 +1135,7 @@ In terms of implementation, each script is written to be syntactically correct a
* 📊 Commits: 7
* 📈 Lines of Code: 80
* 📅 Development Period: 2011-07-09 to 2015-01-13
-* 🔥 Recent Activity: 4268.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4275.8 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1181,7 +1158,7 @@ The implementation relies on Perl scripts running on a web server, with DNS and
* 📈 Lines of Code: 124
* 📄 Lines of Documentation: 75
* 📅 Development Period: 2010-11-05 to 2021-11-05
-* 🔥 Recent Activity: 4309.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4316.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-06-22)
@@ -1204,7 +1181,7 @@ The tool achieves this by invoking AWK, a powerful text-processing utility, to p
* 📈 Lines of Code: 1828
* 📄 Lines of Documentation: 100
* 📅 Development Period: 2010-11-05 to 2015-05-23
-* 🔥 Recent Activity: 4339.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4346.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.7.5 (2014-06-22)
@@ -1217,13 +1194,36 @@ loadbars: source code repository.
---
+### pwgrep
+
+* 💻 Languages: Shell (85.0%), Make (15.0%)
+* 📚 Documentation: Text (72.4%), Markdown (27.6%)
+* 📊 Commits: 142
+* 📈 Lines of Code: 493
+* 📄 Lines of Documentation: 29
+* 📅 Development Period: 2009-09-27 to 2015-05-23
+* 🔥 Recent Activity: 4360.0 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🏷️ Latest Release: 0.9.3 (2014-06-14)
+
+⚠️ **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.
+
+**pwgrep** is a lightweight password manager designed for Unix-like systems, implemented primarily in Bash and GNU AWK. It securely stores and retrieves passwords by encrypting them with GPG (GNU Privacy Guard), ensuring that sensitive information remains protected. Version control for password files is handled using an RCS (Revision Control System) such as Git, allowing users to track changes, revert to previous versions, and maintain an audit trail of password updates. This approach leverages familiar command-line tools, making it accessible to users comfortable with shell environments.
+
+The core features of pwgrep include encrypted password storage, easy retrieval and search functionality (using AWK for pattern matching), and robust version control integration. The architecture is modular and script-based: Bash scripts orchestrate user interactions and file management, AWK handles efficient searching within password files, GPG provides encryption/decryption, and Git (or another RCS) manages version history. This combination offers a secure, auditable, and scriptable solution for password management without relying on heavyweight external applications or GUIs.
+
+[View on Codeberg](https://codeberg.org/snonux/pwgrep)
+[View on GitHub](https://github.com/snonux/pwgrep)
+
+---
+
### 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: 4388.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4396.0 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.4 (2022-04-29)
@@ -1248,7 +1248,7 @@ The implementation centers around a main daemon process that manages the event l
* 📈 Lines of Code: 122
* 📄 Lines of Documentation: 10
* 📅 Development Period: 2011-01-27 to 2014-06-22
-* 🔥 Recent Activity: 4719.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4727.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.2 (2011-01-27)
@@ -1271,7 +1271,7 @@ The core architecture of Awksite consists of AWK scripts executed via the Common
* 📈 Lines of Code: 720
* 📄 Lines of Documentation: 6
* 📅 Development Period: 2008-06-21 to 2021-11-03
-* 🔥 Recent Activity: 4782.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4789.7 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.3 (2009-02-08)
@@ -1288,6 +1288,29 @@ The application is implemented as a desktop GUI, likely using a framework such a
---
+### ychat
+
+* 💻 Languages: C++ (52.1%), C/C++ (21.3%), Shell (20.1%), HTML (2.5%), Config (2.1%), Perl (1.5%), Make (0.3%)
+* 📚 Documentation: Text (100.0%)
+* 📊 Commits: 67
+* 📈 Lines of Code: 33823
+* 📄 Lines of Documentation: 109
+* 📅 Development Period: 2008-05-15 to 2014-07-01
+* 🔥 Recent Activity: 5344.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 free, open-source, HTTP-based chat server written in C++ that allows users to communicate in real time using only a standard web browser—no special client software is required. Designed for portability and performance, yChat runs as a standalone web server (with its own lightweight HTTP engine, yhttpd) and supports POSIX-compliant operating systems like Linux and BSD. Key features include multi-threading (using POSIX threads), modular architecture with dynamically loadable modules, MySQL-based user management, customizable HTML and language templates, and an ncurses-based administration interface. The system is highly configurable via XML-based config files and supports advanced features like session management, logging (including Apache-style logs), and a smart garbage collection engine for efficient resource handling.
+
+yChat’s architecture is built around a core C++ engine that handles HTTP requests directly, bypassing the need for external web servers like Apache. It uses hash maps for fast data access, supports CGI scripting, and allows for easy customization of both appearance and functionality through templates and modules. The project is organized into several branches (CURRENT, STABLE, BASIC, LEGACY) to balance stability and feature development, and it provides tools for easy installation, configuration, and administration. Its modular design, performance optimizations, and ease of customization make it a practical solution for organizations or communities seeking a lightweight, browser-accessible chat platform that is easy to deploy and extend.
+
+[View on Codeberg](https://codeberg.org/snonux/ychat)
+[View on GitHub](https://github.com/snonux/ychat)
+
+---
+
### netcalendar
* 💻 Languages: Java (83.0%), HTML (12.9%), XML (3.0%), CSS (0.8%), Make (0.2%)
@@ -1296,7 +1319,7 @@ The application is implemented as a desktop GUI, likely using a framework such a
* 📈 Lines of Code: 17380
* 📄 Lines of Documentation: 947
* 📅 Development Period: 2009-02-07 to 2021-05-01
-* 🔥 Recent Activity: 5412.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5420.4 days (avg. age of last 42 commits)
* ⚖️ License: GPL-2.0
* 🏷️ Latest Release: v0.1 (2009-02-08)
@@ -1315,26 +1338,28 @@ NetCalendar is implemented as a Java application (requiring JRE 6 or higher) and
---
-### ychat
+### vs-sim
-* 💻 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: 5433.2 days (avg. age of last 42 commits)
-* ⚖️ License: GPL-2.0
-* 🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)
+* 💻 Languages: Java (98.6%), Shell (0.8%), XML (0.4%)
+* 📚 Documentation: LaTeX (98.4%), Text (1.4%), Markdown (0.2%)
+* 📊 Commits: 411
+* 📈 Lines of Code: 14582
+* 📄 Lines of Documentation: 2903
+* 📅 Development Period: 2008-05-15 to 2022-04-03
+* 🔥 Recent Activity: 5456.7 days (avg. age of last 42 commits)
+* ⚖️ License: Custom License
+* 🏷️ 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.
-**yChat** is a free, open-source, HTTP-based chat server written in C++ that allows users to communicate in real time using only a standard web browser—no special client software is required. Designed for portability and performance, yChat runs as a standalone web server (with its own lightweight HTTP engine, yhttpd) and supports POSIX-compliant operating systems like Linux and BSD. Key features include multi-threading (using POSIX threads), modular architecture with dynamically loadable modules, MySQL-based user management, customizable HTML and language templates, and an ncurses-based administration interface. The system is highly configurable via XML-based config files and supports advanced features like session management, logging (including Apache-style logs), and a smart garbage collection engine for efficient resource handling.
+[![vs-sim screenshot](showcase/vs-sim/image-1.jpg "vs-sim screenshot")](showcase/vs-sim/image-1.jpg)
-yChat’s architecture is built around a core C++ engine that handles HTTP requests directly, bypassing the need for external web servers like Apache. It uses hash maps for fast data access, supports CGI scripting, and allows for easy customization of both appearance and functionality through templates and modules. The project is organized into several branches (CURRENT, STABLE, BASIC, LEGACY) to balance stability and feature development, and it provides tools for easy installation, configuration, and administration. Its modular design, performance optimizations, and ease of customization make it a practical solution for organizations or communities seeking a lightweight, browser-accessible chat platform that is easy to deploy and extend.
+VS-Sim is an open-source Java-based simulator designed to model and analyze distributed systems. Its primary purpose is to provide a virtual environment where users can create, configure, and observe the behavior of distributed algorithms and networked components without the need for physical hardware. This makes it a valuable tool for researchers, educators, and students who want to experiment with distributed system concepts, test fault tolerance mechanisms, or visualize communication protocols in a controlled and repeatable manner.
-[View on Codeberg](https://codeberg.org/snonux/ychat)
-[View on GitHub](https://github.com/snonux/ychat)
+The simulator features a modular architecture, allowing users to define custom network topologies, node behaviors, and communication protocols. Key components include a graphical user interface for system configuration and visualization, an event-driven simulation engine to manage the timing and sequencing of distributed events, and extensible APIs for integrating new algorithms or system models. By abstracting the complexities of real-world distributed environments, VS-Sim enables rapid prototyping and debugging, making it an effective platform for both teaching and research in distributed computing.
+
+[View on Codeberg](https://codeberg.org/snonux/vs-sim)
+[View on GitHub](https://github.com/snonux/vs-sim)
---
@@ -1344,7 +1369,7 @@ yChat’s architecture is built around a core C++ engine that handles HTTP reque
* 📊 Commits: 80
* 📈 Lines of Code: 601
* 📅 Development Period: 2009-11-22 to 2011-10-17
-* 🔥 Recent Activity: 5508.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5516.0 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1359,37 +1384,15 @@ The architecture is modular, relying on external Haskell packages: libghc6-hsql-
---
-### vs-sim
-
-* 📚 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: 5869.5 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ 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.
-
-VS-Sim is an open-source Java-based simulator designed to model and analyze distributed systems. Its primary purpose is to provide a virtual environment where users can create, configure, and observe the behavior of distributed algorithms and networked components without the need for physical hardware. This makes it a valuable tool for researchers, educators, and students who want to experiment with distributed system concepts, test fault tolerance mechanisms, or visualize communication protocols in a controlled and repeatable manner.
-
-The simulator features a modular architecture, allowing users to define custom network topologies, node behaviors, and communication protocols. Key components include a graphical user interface for system configuration and visualization, an event-driven simulation engine to manage the timing and sequencing of distributed events, and extensible APIs for integrating new algorithms or system models. By abstracting the complexities of real-world distributed environments, VS-Sim enables rapid prototyping and debugging, making it an effective platform for both teaching and research in distributed computing.
-
-[View on Codeberg](https://codeberg.org/snonux/vs-sim)
-[View on GitHub](https://github.com/snonux/vs-sim)
-
----
-
### fype
-* 💻 Languages: C (71.3%), C/C++ (20.6%), HTML (6.6%), Make (1.5%)
-* 📚 Documentation: Text (60.2%), LaTeX (39.8%)
+* 💻 Languages: C (67.9%), C/C++ (23.6%), HTML (6.9%), Make (1.6%)
+* 📚 Documentation: Text (61.4%), LaTeX (38.6%)
* 📊 Commits: 99
-* 📈 Lines of Code: 8906
-* 📄 Lines of Documentation: 1431
-* 📅 Development Period: 2008-05-15 to 2021-04-29
-* 🔥 Recent Activity: 5915.4 days (avg. age of last 42 commits)
+* 📈 Lines of Code: 8622
+* 📄 Lines of Documentation: 1474
+* 📅 Development Period: 2008-05-15 to 2014-06-30
+* 🔥 Recent Activity: 5840.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
diff --git a/about/showcase/debroid/image-1.png b/about/showcase/debroid/image-1.png
index d6f2a286..f62b0f61 100644
--- a/about/showcase/debroid/image-1.png
+++ b/about/showcase/debroid/image-1.png
@@ -47,39 +47,41 @@
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-dc7ca6859caf.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-f96b923db733.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-2744ca59d025.css" />
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-f7128b22e253.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-efdc4f8b5091.css" />
- <script type="application/json" id="client-env">{"locale":"en","featureFlags":["alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","client_version_header","codespaces_prebuild_region_target_update","contact_requests_implicit_opt_in","contentful_lp_enterprise","contentful_lp_footnotes","copilot_agent_task_caching","copilot_api_agentic_issue_marshal_yaml","copilot_api_draft_issue_with_mixed_trees","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_group_notifications","copilot_chat_no_header","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_coding_agent_diff_stats","copilot_custom_copilots_feature_preview","copilot_custom_copilots_images","copilot_disable_generated_commit_description","copilot_duplicate_thread","copilot_features_raycast_logo","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_global_overlay_v2","copilot_immersive_agent_branch_selection","copilot_immersive_draft_issue_tree","copilot_immersive_structured_model_picker","copilot_loops_share_button","copilot_no_floating_button","copilot_read_shared_conversation","copilot_spaces_input_menu_select","copilot_spark_allow_empty_commit","copilot_spark_single_user_iteration","copilot_spark_use_billing_headers","copilot_spark_write_iteration_history_to_git","copilot_stable_conversation_view","copilot_task_oriented_assistive_prompts","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_connection_reload_banner","copilot_workbench_preview_analytics","copilot_workbench_ratelimit_fallback","copilot_workbench_refresh_on_wsod","copilot_workbench_synthetic_generation","custom_copilots_capi_mode","dashboard_public_preview","direct_to_salesforce","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_diff_view","insert_before_patch","issue_fields_report_usage","issues_preserve_tokens_in_urls","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","lifecycle_label_name_updates","link_contact_sales_swp_marketo","loops_versioning","marketing_pages_search_explore_provider","mcp_registry_all_featured_cards","memex_mwl_filter_field_delimiter","migrate_toasts_to_banners_web_notifications","new_insights_rulesets_filter","new_traffic_page_banner","override_pulse_legacy_url","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","record_sso_banner_metrics","releases_update_ref_selector","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","show_edit_on_default_option","site_homepage_contentful","site_msbuild_webgl_hero","spark_commit_on_default_branch","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_default_sonnet4","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script>
+ <script type="application/json" id="client-env">{"locale":"en","featureFlags":["alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","billing_show_top_100_users_usage_table","client_version_header","codespaces_prebuild_region_target_update","contact_requests_implicit_opt_in","contentful_lp_enterprise","contentful_lp_footnotes","copilot_agent_prefetch_tasks","copilot_agent_task_caching","copilot_api_agentic_issue_marshal_yaml","copilot_api_draft_issue_code_search","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_group_notifications","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_coding_agent_diff_stats","copilot_custom_copilots_feature_preview","copilot_custom_copilots_images","copilot_duplicate_thread","copilot_features_raycast_logo","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_global_overlay_v2","copilot_immersive_agent_branch_selection","copilot_immersive_structured_model_picker","copilot_loops_share_button","copilot_no_floating_button","copilot_read_shared_conversation","copilot_show_copilot_sub_issues_button_on_issues_page","copilot_spaces_input_menu_select","copilot_spark_allow_empty_commit","copilot_spark_progressive_error_handling","copilot_spark_single_user_iteration","copilot_spark_use_billing_headers","copilot_spark_write_iteration_history_to_git","copilot_stable_conversation_view","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_connection_reload_banner","copilot_workbench_preview_analytics","copilot_workbench_ratelimit_fallback","copilot_workbench_refresh_on_wsod","copilot_workbench_synthetic_generation","custom_copilots_capi_mode","dashboard_public_preview","direct_to_salesforce","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_diff_view","insert_before_patch","issue_fields_report_usage","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_sticky_sidebar","item_picker_branch_relay_migration","item_picker_issue_type_relay_migration","item_picker_label_relay_migration","item_picker_mutations_relay_migration","item_picker_project_relay_migration","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_mwl_filter_field_delimiter","migrate_toasts_to_banners_web_notifications","new_traffic_page_banner","org_repos_page_route","override_pulse_legacy_url","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","record_sso_banner_metrics","releases_update_ref_selector","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","show_edit_on_default_option","site_homepage_contentful","site_msbuild_webgl_hero","spark_commit_on_default_branch","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_default_sonnet4","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-f3788027bd8d.js"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-348f92aa0e8a.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-6c47ad9ad251.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-468bf7cab607.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-1d3d52-25523f4ee061.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_failbot_failbot_ts-7cdfcb8274ec.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-472a04f0328f.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_stacktrace-parser_dist_stack-trace-parser_esm_js-node_modules_github_bro-2f4e04-280c10ec004d.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-c8eeba-690858154b11.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-5244438a76a9.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-7e8c9c5d642d.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-7e4d99c9171d.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-c98257dc79a7.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-0d7d60-9ac2b374b638.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-754f5b5e9e7e.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-665e70-a5590c456d33.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-fd008e5636c7.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-d41270eb61be.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-777ce2-337f60509a95.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-39310fffdcee.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-c5eae246e80a.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c63e9a-b1f4633cac7f.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-379275813036.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-a4a8a5aca339.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_hydro-analytics-c-2a6094-2f3b5bfd7e3b.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-bb80ec-4e90f1d1076c.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-06c8637a6071.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_morphdom_dist_morphdom-esm_js-node_modules_swc_helpers_esm__define_property_js-5c587dccb470.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-8eb9b2209bcd.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-cd5d89ebdb50.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-d3ee0b-9bd182333410.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-590a09-91fdc8802bfa.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_document-metadata_document-metadata_ts-packages_failbot_failbot_ts-75c1bcfb5bf5.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_updatable-content_updatable-content_ts-a743e72edcf2.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_details-884c01-e22717ec4ab6.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_throttled-input_ts-047775-251a6ef52573.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_details-6493f1-5af0195d8874.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_throttled-input_ts-047775-82bfe789bb2f.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-6bc7a8849328.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-97ac2c14d80f.js" defer="defer"></script>
+<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-913d8cc551d2.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-ef6d0f-641e2ed302b3.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-e0009afb39c7.js" defer="defer"></script>
@@ -91,13 +93,13 @@
<meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
<meta name="route-controller" content="blob" data-turbo-transient>
<meta name="route-action" content="show" data-turbo-transient>
- <meta name="fetch-nonce" content="v2:62ee94e6-664d-176f-a3f1-7e64243bdf13">
+ <meta name="fetch-nonce" content="v2:9f57eaa2-4017-933a-c623-1fb2e923987f">
<meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">
- <meta name="request-id" content="E6D0:3D1167:ADD76C:940F05:68C262FE" data-pjax-transient="true"/><meta name="html-safe-nonce" content="f2c052b6532433989dda7fe8e162c22055fd43b10b0cbc46a4eafda2e06a5ab9" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNkQwOjNEMTE2NzpBREQ3NkM6OTQwRjA1OjY4QzI2MkZFIiwidmlzaXRvcl9pZCI6IjIzMTE2Mjk4MTc5Nzc2NjAxNTgiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="839871bb9b2106b884b622214c8196b69bbdbf459aea810ede7a48f69de3ee33" data-pjax-transient="true"/>
+ <meta name="request-id" content="80CA:21348F:86ACCA:6E3C2A:68CC3C82" data-pjax-transient="true"/><meta name="html-safe-nonce" content="02b56533e09eb79caff0081e9c94309bbd2d949f8cbc6c2118af1cfde9a53b51" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MENBOjIxMzQ4Rjo4NkFDQ0E6NkUzQzJBOjY4Q0MzQzgyIiwidmlzaXRvcl9pZCI6IjQ2MTExNTE0OTg2MjA3MTQxMTQiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="85f63cd2a77ee16ab215b934c8b8bb2779313fb50a91ba23bb8477fec1e33f64" data-pjax-transient="true"/>
@@ -173,14 +175,14 @@
<meta name="expected-hostname" content="github.com">
- <meta http-equiv="x-pjax-version" content="f460ebb80aa113e5fe2b03477dcebed0d6a3de8949cf28f49ee9eb1b1ed39496" data-turbo-track="reload">
- <meta http-equiv="x-pjax-csp-version" content="7a8d2a325eda0ce8231fb01635a57c5af49cef72457e9682233c3f4927e7b224" data-turbo-track="reload">
- <meta http-equiv="x-pjax-css-version" content="8a0735d016089f8354c8d1451df9eae2b267023d238471fb203c0d53f7f745e1" data-turbo-track="reload">
- <meta http-equiv="x-pjax-js-version" content="fc44e8be738d24ea978a612015424cbbdadc5f7adb7373ee8e620a701a25c1be" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-version" content="ad8bb9e20b26558b390bbaa7f8d115448c7fe08b520aa3b75eabd21f05923724" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-csp-version" content="c922ef32c4ab94f8b870c62883f3e41755ec705db76ec4efb0d343458f1e28c7" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-css-version" content="0bc51a290919c52cc62b3d8b4eed96609edf264f742d0409c975553b0cdc84a8" data-turbo-track="reload">
+ <meta http-equiv="x-pjax-js-version" content="56c08ab2d04523fd3ef5229f176ac1f86d092b5e48ba8b126e87f46bceb48f95" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-65a0225e4d0f.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-32febde4054e.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/error-3bfb6168c7d5.css" />
<meta name="is_logged_out_page" content="true">
<meta name="octolytics-page-type" content="marketing">
@@ -200,7 +202,7 @@
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <meta name="release" content="ed4becda7e590493a3eb351d9ef96da3f7e36888">
+ <meta name="release" content="79147b255a4de6477bf167741fd55c0ecccc4105">
<meta name="ui-target" content="full">
<link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
@@ -228,7 +230,7 @@
<span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.bde96664bd5edb566a4a.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.1376d83c759fa3dd6e71.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.2de9c7d6456a311fce49.module.css" />
<react-partial
@@ -293,14 +295,14 @@
</a>
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-ad8020ce-bead-4080-a636-9c8a6487b5d0" aria-labelledby="tooltip-3d96610d-8679-4fc1-9b25-ef34fe7b602d" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
+ <button data-target="react-partial-anchor.anchor" id="icon-button-661c7831-f0b1-4e98-8442-e233b1c71026" aria-labelledby="tooltip-a81c5bfc-7b4f-4ab3-a564-2a59abcc1473" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
<path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path>
</svg>
-</button><tool-tip id="tooltip-3d96610d-8679-4fc1-9b25-ef34fe7b602d" for="icon-button-ad8020ce-bead-4080-a636-9c8a6487b5d0" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
+</button><tool-tip id="tooltip-a81c5bfc-7b4f-4ab3-a564-2a59abcc1473" for="icon-button-661c7831-f0b1-4e98-8442-e233b1c71026" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.bde96664bd5edb566a4a.module.css" />
-<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.c82a4db79200850fb016.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.1376d83c759fa3dd6e71.module.css" />
+<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
<react-partial
partial-name="appearance-settings"
@@ -580,7 +582,13 @@
</a></li>
-
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;mcp_registry&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}" href="https://github.com/mcp">
+ MCP Registry
+
+
+</a></li>
+
</ul>
</div>
</div>
@@ -650,6 +658,7 @@
<span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span>
<ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading">
+
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devsecops&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}" href="/solutions/use-case/devsecops">
DevSecOps
@@ -1048,7 +1057,7 @@
-<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="NmyWkafZQhCv2ZvHrqFCE6PbUPSitlZMo1gqFfW7BjmX8d1roRlRAITf7MUxg425jMOlHFri8scjwICIYSmqHA" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true">
+<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="Ir-Xa7XN8bhPcnP_UBy4s3jnmzPG3byOTmzDGnq4V1HVFojAJiquscP45tp5k7PxLiaVvOOIxOKmMMCfKh6QUA" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true">
<div
class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded"
data-action="click:qbsearch-input#searchInputContainerClicked"
@@ -1112,7 +1121,7 @@
></div>
<div class="QueryBuilder-InputWrapper">
<div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div>
- <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-34dd41b7-0d22-4bff-822e-204a80368b1a" data-target="query-builder.input" data-action="
+ <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-946e0dd9-d0b6-4f35-b719-cd4cb6b45f2c" data-target="query-builder.input" data-action="
input:query-builder#inputChange
blur:query-builder#inputBlur
keydown:query-builder#inputKeydown
@@ -1350,7 +1359,7 @@
tabindex="-1"
></ul>
</div>
- <div class="FormControl-inlineValidation" id="validation-34dd41b7-0d22-4bff-822e-204a80368b1a" hidden="hidden">
+ <div class="FormControl-inlineValidation" id="validation-946e0dd9-d0b6-4f35-b719-cd4cb6b45f2c" hidden="hidden">
<span class="FormControl-inlineValidation--visual">
<svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill">
<path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path>
@@ -1391,7 +1400,7 @@
</div>
<scrollable-region data-labelled-by="feedback-dialog-title">
- <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="y+4bXsJrKbNmgX1msc4W2YeEES+3GWSBXHv5hE0JAtr1NKs08qnRG6m8+vLzXNDSxcoTi1FMfKS1oeWTLLdXGg==" />
+ <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="9YGYyFZGSsyhDtf2wpS39+xmf2iejz/FnzPCF7w2AybVX6sLYqXK2y2uHVH4IgymWbViVtSKJQPQeFfHuCio9w==" />
<p>We read every piece of feedback, and take your input very seriously.</p>
<textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea>
<input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox">
@@ -1429,7 +1438,7 @@
<div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm">
- <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="pTrssuoYbReq+2IRhrBGcoPS23ld73k4+/V9M1W108yLm+C+jzv48/XP83DXX2pMP85n2HAemnknEwoWiNFsOQ==" />
+ <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="qRnJH9Wt/Hmsl6fxcr0u6LltzwyIiuQ0XEVfW3EaFFmrsEM02OKNH7BkF7VX8onV/mYGsGfYJ91gRg6M8AgNOA==" />
<div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
@@ -1447,7 +1456,7 @@
placeholder="github-ruby"
required
maxlength="50">
- <input type="hidden" data-csrf="true" value="A3CEDjCroexh7WP03UPAyJjRWGZfPOC2HGjE5KlLUPVxpbFBacRLTWhDMnxZHr4L3v6WQ2BFV+0i4eGC1ZLY/A==" />
+ <input type="hidden" data-csrf="true" value="V5ru9RDKByxuvwzSqIWyW6ka70doTU2e5lNjs31N2cN8eFvgIOqm60yVX9E+dD71u3wDaQ2sUiS92Yd509RDxQ==" />
</auto-check>
</div>
@@ -1502,7 +1511,7 @@
<h4 data-view-component="true" class="color-fg-default mb-2"> Sign in to GitHub
</h4>
-<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="9Gm695OSIVX5gYH8esTWA3YExmjW8b6i1AyL0MaNwja8sssgnNbEecmsOuLrUF3h8UCLqc1Bxd7WL1crB3ygvA==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
+<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="7zI0wxjU/rCnNtgRM+x1sXmT72XTOxBtoms1jPIjZFoabwoBJCFLcG16qTjhb/o4GHaBvX+9RdCVNzes4v+YDQ==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
<label for="login_field">
Username or email address
@@ -1524,9 +1533,9 @@
<input type="hidden" name="allow_signup" id="allow_signup" autocomplete="off" class="form-control" />
<input type="hidden" name="client_id" id="client_id" autocomplete="off" class="form-control" />
<input type="hidden" name="integration" id="integration" autocomplete="off" class="form-control" />
-<input class="form-control" type="text" name="required_field_6ca2" hidden="hidden" />
-<input class="form-control" type="hidden" name="timestamp" value="1757569791012" />
-<input class="form-control" type="hidden" name="timestamp_secret" value="f7407f05bf7c25cd0e2f76a706d90ff9c710df97a56d9efc7db5b16def7a1e63" />
+<input class="form-control" type="text" name="required_field_03cd" hidden="hidden" />
+<input class="form-control" type="hidden" name="timestamp" value="1758215298328" />
+<input class="form-control" type="hidden" name="timestamp_secret" value="413a0b9367a4ca3d6489ead9c2211b9c4dc13bd559635b9fdafd16e926f4b548" />
<input type="submit" name="commit" value="Sign in" class="btn btn-primary btn-block js-sign-in-button" data-disable-with="Signing in…" data-signin-label="Sign in" data-sso-label="Sign in with your identity provider" development="false" disable-emu-sso="false" />
@@ -1553,14 +1562,14 @@
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-96a8807c-3a67-43e4-9422-e62399a25b20" aria-labelledby="tooltip-a87248ab-cf8c-4a0d-aab3-8526c71a99eb" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
+ <button data-target="react-partial-anchor.anchor" id="icon-button-e903bcff-12d6-4055-8257-932f1dda8fc9" aria-labelledby="tooltip-e44ac6ea-0089-458b-8740-b394710e1157" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual">
<path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path>
</svg>
-</button><tool-tip id="tooltip-a87248ab-cf8c-4a0d-aab3-8526c71a99eb" for="icon-button-96a8807c-3a67-43e4-9422-e62399a25b20" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
+</button><tool-tip id="tooltip-e44ac6ea-0089-458b-8740-b394710e1157" for="icon-button-e903bcff-12d6-4055-8257-932f1dda8fc9" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.bde96664bd5edb566a4a.module.css" />
-<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.c82a4db79200850fb016.module.css" />
+ <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.1376d83c759fa3dd6e71.module.css" />
+<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" />
<react-partial
partial-name="appearance-settings"
@@ -1594,10 +1603,10 @@
<span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
- <button id="icon-button-3c7798aa-e4c1-4963-94a4-28405f4b498d" aria-labelledby="tooltip-0d51e273-d7b9-4377-a627-704b006829df" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
+ <button id="icon-button-50a18150-b7d7-4cac-953a-54edc1ede1b8" aria-labelledby="tooltip-02b363dd-387d-4a4e-8bed-e79c6196a154" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
-</button><tool-tip id="tooltip-0d51e273-d7b9-4377-a627-704b006829df" for="icon-button-3c7798aa-e4c1-4963-94a4-28405f4b498d" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
+</button><tool-tip id="tooltip-02b363dd-387d-4a4e-8bed-e79c6196a154" for="icon-button-50a18150-b7d7-4cac-953a-54edc1ede1b8" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
@@ -1731,34 +1740,34 @@
<ul class="list-style-none color-fg-muted f5">
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;features&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;features_link_product_footer&quot;}" href="/features">Features</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;features&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;features_link_platform_footer&quot;}" href="/features">Features</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;enterprise&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprise_link_product_footer&quot;}" href="/enterprise">Enterprise</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;enterprise&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprise_link_platform_footer&quot;}" href="/enterprise">Enterprise</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;copilot&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_link_product_footer&quot;}" href="/features/copilot">Copilot</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;copilot&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_link_platform_footer&quot;}" href="/features/copilot">Copilot</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;ai&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ai_link_product_footer&quot;}" href="/features/ai">AI</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;ai&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ai_link_platform_footer&quot;}" href="/features/ai">AI</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_product_footer&quot;}" href="/security">Security</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_platform_footer&quot;}" href="/security">Security</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;pricing_link_product_footer&quot;}" href="/pricing">Pricing</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;pricing_link_platform_footer&quot;}" href="/pricing">Pricing</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;team&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;team_link_product_footer&quot;}" href="/team">Team</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;team&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;team_link_platform_footer&quot;}" href="/team">Team</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;resources&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;resources_link_product_footer&quot;}" href="https://resources.github.com">Resources</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;resources&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;resources_link_platform_footer&quot;}" href="https://resources.github.com">Resources</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;roadmap&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;roadmap_link_product_footer&quot;}" href="https://github.com/github/roadmap">Roadmap</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;roadmap&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;roadmap_link_platform_footer&quot;}" href="https://github.com/github/roadmap">Roadmap</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;compare&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;compare_link_product_footer&quot;}" href="https://resources.github.com/devops/tools/compare">Compare GitHub</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;compare&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;compare_link_platform_footer&quot;}" href="https://resources.github.com/devops/tools/compare">Compare GitHub</a>
</li>
</ul>
</nav>
@@ -1770,22 +1779,28 @@
<ul class="list-style-none f5">
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dev-api&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dev-api_link_platform_footer&quot;}" href="https://docs.github.com/get-started/exploring-integrations/about-building-integrations">Developer API</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dev-api&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dev-api_link_ecosystem_footer&quot;}" href="https://docs.github.com/get-started/exploring-integrations/about-building-integrations">Developer API</a>
+ </li>
+ <li class="lh-condensed mb-3">
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;partners_link_ecosystem_footer&quot;}" href="https://partner.github.com">Partners</a>
+ </li>
+ <li class="lh-condensed mb-3">
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;edu&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;edu_link_ecosystem_footer&quot;}" href="https://github.com/edu">Education</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;partners_link_platform_footer&quot;}" href="https://partner.github.com">Partners</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cli&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cli_link_ecosystem_footer&quot;}" href="https://cli.github.com">GitHub CLI</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;edu&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;edu_link_platform_footer&quot;}" href="https://github.com/edu">Education</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;desktop&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;desktop_link_ecosystem_footer&quot;}" href="https://desktop.github.com">GitHub Desktop</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cli&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cli_link_platform_footer&quot;}" href="https://cli.github.com">GitHub CLI</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;mobile&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mobile_link_ecosystem_footer&quot;}" href="https://github.com/mobile">GitHub Mobile</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;desktop&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;desktop_link_platform_footer&quot;}" href="https://desktop.github.com">GitHub Desktop</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;marketplace&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;marketplace_link_ecosystem_footer&quot;}" href="https://github.com/marketplace">GitHub Marketplace</a>
</li>
<li class="lh-condensed mb-3">
- <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;mobile&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mobile_link_platform_footer&quot;}" href="https://github.com/mobile">GitHub Mobile</a>
+ <a class="Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;mcp_registry&quot;,&quot;context&quot;:&quot;ecosystem&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;mcp_registry_link_ecosystem_footer&quot;}" href="https://github.com/mcp">MCP Registry</a>
</li>
</ul>
</nav>
diff --git a/about/technical-books.txt b/about/technical-books.txt
index da745eea..dc02365d 100644
--- a/about/technical-books.txt
+++ b/about/technical-books.txt
@@ -1,3 +1,4 @@
+* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt