summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-11 11:10:48 +0300
committerPaul Buetow <paul@buetow.org>2025-09-11 11:10:48 +0300
commite035f3715412ec53f333b60a5fb717d79399c191 (patch)
tree22a5df90230ea9132ec85b69c2948c3241dfe8f1
parent0d6724745d292614acd2dc870d384f48299709f4 (diff)
Update content for md
-rw-r--r--about/index.md14
-rw-r--r--about/novels.md11
-rw-r--r--about/resources.md191
-rw-r--r--about/self-skills.txt1
-rw-r--r--about/showcase.md577
-rw-r--r--about/showcase/debroid/image-1.png554
-rw-r--r--index.md2
-rw-r--r--uptime-stats.md52
8 files changed, 711 insertions, 691 deletions
diff --git a/about/index.md b/about/index.md
index ed68de18..fd339a9e 100644
--- a/about/index.md
+++ b/about/index.md
@@ -31,17 +31,15 @@
### Books I am currently reading
-* Chaos Engineering - System Resiliency in Practice, Casey Rosenthal and Nora Jones, eBook
-* Die Tiefe der Zeit, Andreas Brandhorst (german), Paperback
-* Seeking SRE: Conversations About Running Production Systems at Scale, David N. Blank-Edelman, eBook
-* Yoga Nidra Made Easy, Uma Dinsmore-Tuli, eBook
-* 97 Things Every Engineering Manager Should Know, Camille Fournier, Audiobook
+* 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
+* The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
### Unread books already in my shelf
-* Inhibitor Phase, Alastair Reynolds, Audiobook
-* Okular, Alastair Reynolds, eBook
-* A Fire Upon the Deep (german: Ein Feuer auf der Tiefe), Vernor Vinge, eBook
+* Inhibitor Phase; Alastair Reynolds; Audiobook
+* Okular; Alastair Reynolds; eBook
+* A Fire Upon the Deep (german: Ein Feuer auf der Tiefe); Vernor Vinge; eBook
### Books I've read
diff --git a/about/novels.md b/about/novels.md
index 5e76bb5e..f115c4bd 100644
--- a/about/novels.md
+++ b/about/novels.md
@@ -77,17 +77,18 @@ _-" . ' + . . ,//////0\ | /00HHHHHHHMMMMM
* 2016 - Omni (german) - Omniversum, Paperback
* 2017 - Das Arkonadia-Rätsel (german) - Omniversum, Paperback
* 2017 - Das Erwachen (german) - Maschinenintelligenz-Trilogie, eBook
-* 2018 - Ewiges Leben (german), Andreas Brandhorst, Paperback
+* 2018 - Ewiges Leben (german), Paperback
* 2019 - Das Netz der Sterne (german), Audiobook
-* 2019 - Seelenfänger (german), Andreas Brandhorst, Audiobook
+* 2019 - Seelenfänger (german), Audiobook
* 2020 - Die Eskalation (german) - Maschinenintelligenz-Trilogie, eBook
* 2021 - Mars Discovery (german) - Maschinenintelligenz-Trilogie, eBook
+* 2021 - Die Tiefe der Zeit (german), Paperback
* 2022 - Eklipse (german), eBook
* 2022 - Ruf der Unendlichkeit (german), Audiobook
-* 2023 - Oxygen: Welt ohne Sauerstoff (german), Andreas Brandhorst, Audiobook
-* 2024 - Zeta (german), Andreas Brandhorst, Audiobook
+* 2023 - Oxygen: Welt ohne Sauerstoff (german), Audiobook
+* 2024 - Zeta (german), Audiobook
* 2024 - Infinitia (german), Audiobook
-* 2024 - Der Riss (german), Andreas Brandhorst, eBook
+* 2024 - Der Riss (german), eBook
### David Reimer (german)
diff --git a/about/resources.md b/about/resources.md
index 944f72ff..09aeb5e3 100644
--- a/about/resources.md
+++ b/about/resources.md
@@ -35,63 +35,63 @@ You won't find any links on this site because, over time, the links will break.
In random order:
-* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; 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
+* DNS and BIND; Cricket Liu; O'Reilly
+* Developing Games in Java; David Brackeen and others...; New Riders
+* Effective Java; Joshua Bloch; Addison-Wesley Professional
* Java ist auch eine Insel; Christian Ullenboom;
-* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
-* The Pragmatic Programmer; David Thomas; Addison-Wesley
-* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
+* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+* Higher Order Perl; Mark Dominus; Morgan Kaufmann
+* Ultimate Go Notebook; Bill Kennedy
+* C++ Programming Language; Bjarne Stroustrup;
* Raku Fundamentals; Moritz Lenz; Apress
+* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
+* Concurrency in Go; Katherine Cox-Buday; O'Reilly
* The Docker Book; James Turnbull; Kindle
-* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
-* Funktionale Programmierung; Peter Pepper; Springer
+* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
+* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
* Effective awk programming; Arnold Robbins; O'Reilly
-* Higher Order Perl; Mark Dominus; Morgan Kaufmann
-* DNS and BIND; Cricket Liu; O'Reilly
-* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
+* Systemprogrammierung in Go; Frank Müller; dpunkt
+* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
-* Polished Ruby Programming; Jeremy Evans; Packt Publishing
-* Developing Games in Java; David Brackeen and others...; New Riders
-* Ultimate Go Notebook; Bill Kennedy
-* Terraform Cookbook; Mikael Krief; Packt Publishing
+* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
+* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
+* Funktionale Programmierung; Peter Pepper; Springer
* 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
-* Effective Java; Joshua Bloch; Addison-Wesley Professional
-* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
+* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
* Raku Recipes; J.J. Merelo; Apress
-* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
-* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
-* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
-* Leanring eBPF; Liz Rice; O'Reilly
-* Perl New Features; Joshua McAdams, brian d foy; Perl School
-* Systemprogrammierung in Go; Frank Müller; dpunkt
-* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
-* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
* Modern Perl; Chromatic ; Onyx Neon Press
-* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-* Data Science at the Command Line; Jeroen Janssens; O'Reilly
-* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
-* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
-* Concurrency in Go; Katherine Cox-Buday; O'Reilly
-* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
-* C++ Programming Language; Bjarne Stroustrup;
-* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+* Leanring eBPF; Liz Rice; O'Reilly
+* Terraform Cookbook; Mikael Krief; Packt Publishing
+* The Pragmatic Programmer; David Thomas; Addison-Wesley
+* Polished Ruby Programming; Jeremy Evans; Packt Publishing
* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
-* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
* Site Reliability Engineering; How Google runs production systems; O'Reilly
-* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
-* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
+* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
+* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
+* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
+* Perl New Features; Joshua McAdams, brian d foy; Perl School
+* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
+* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
+* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* Data Science at the Command Line; Jeroen Janssens; 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:
-* Relayd and Httpd Mastery; Michael W Lucas
+* The Linux Programming Interface; Michael Kerrisk; No Starch Press
+* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
* Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
-* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
+* Relayd and Httpd Mastery; Michael W Lucas
* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
-* The Linux Programming Interface; Michael Kerrisk; No Starch Press
* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
@@ -99,41 +99,42 @@ I didn't read them from the beginning to the end, but I am using them to look up
In random order:
+* So Good They Can't Ignore You; Cal Newport; Business Plus
+* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+* The Power of Now; Eckhard Tolle; Yellow Kite
* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
-* Atomic Habits; James Clear; Random House Business
-* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
-* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
-* 101 Essays that change the way you think; Brianna Wiest; Audiobook
* Getting Things Done; David Allen
-* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
-* Stop starting, start finishing; Arne Roock; Lean-Kanban University
-* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
-* Meditation for Mortals, Oliver Burkeman, Audiobook
-* Soft Skills; John Sommez; Manning Publications
-* The Power of Now; Eckhard Tolle; Yellow Kite
-* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
-* Eat That Frog!; Brian Tracy; Hodder Paperbacks
-* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
-* Influence without Authority; A. Cohen, D. Bradford; Wiley
-* So Good They Can't Ignore You; Cal Newport; Business Plus
-* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
-* The Joy of Missing Out; Christina Crook; New Society Publishers
-* Eat That Frog; Brian Tracy
-* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
-* Digital Minimalism; Cal Newport; Portofolio Penguin
-* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
+* 101 Essays that change the way you think; Brianna Wiest; Audiobook
+* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
* Ultralearning; Anna Laurent; Self-published via Amazon
+* Deep Work; Cal Newport; Piatkus
+* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
+* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
+* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
* Slow Productivity; Cal Newport; Penguin Random House
+* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
+* Soft Skills; John Sommez; Manning Publications
+* Eat That Frog; Brian Tracy
+* Influence without Authority; A. Cohen, D. Bradford; Wiley
+* Digital Minimalism; Cal Newport; Portofolio Penguin
+* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
* Ultralearning; Scott Young; Thorsons
-* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
-* 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
-* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
-* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
-* Deep Work; Cal Newport; Piatkus
-* The Bullet Journal Method; Ryder Carroll; Fourth Estate
+* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+* The Joy of Missing Out; Christina Crook; New Society Publishers
+* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
* The Good Enough Job; Simone Stolzoff; Ebury Edge
+* The Bullet Journal Method; Ryder Carroll; Fourth Estate
+* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
+* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
+* Atomic Habits; James Clear; Random House Business
+* Meditation for Mortals, Oliver Burkeman, Audiobook
+* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
+* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
+* Eat That Frog!; Brian Tracy; Hodder Paperbacks
+* Stop starting, start finishing; Arne Roock; Lean-Kanban University
[Here are notes of mine for some of the books](../notes/index.md)
@@ -141,30 +142,30 @@ In random order:
Some of these were in-person with exams; others were online learning lectures only. In random order:
-* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
+* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
+* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
+* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
* Apache Tomcat Best Practises; 3-day on-site training
+* AWS Immersion Day; Amazon; 1-day interactive online training
+* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
+* The Well-Grounded Rubyist Video Edition; David. A. Black; 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)
-* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
-* Scripting Vim; Damian Conway; O'Reilly Online
+* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
+* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
* Functional programming lecture; Remote University of Hagen
+* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
* Protocol buffers; O'Reilly Online
+* Scripting Vim; Damian Conway; O'Reilly Online
* MySQL Deep Dive Workshop; 2-day on-site training
-* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
-* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
-* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
-* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
-* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
-* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
-* AWS Immersion Day; Amazon; 1-day interactive online training
## Technical guides
These are not whole books, but guides (smaller or larger) which I found very useful. in random order:
+* Advanced Bash-Scripting Guide
* How CPUs work at https://cpu.land
* Raku Guide at https://raku.guide
-* Advanced Bash-Scripting Guide
## Podcasts
@@ -172,30 +173,30 @@ These are not whole books, but guides (smaller or larger) which I found very use
In random order:
-* Maintainable
-* Cup o' Go [Golang]
+* Fork Around And Find Out
+* Modern Mentor
* Backend Banter
+* Pratical AI
+* Fallthrough [Golang]
+* Cup o' Go [Golang]
* Dev Interrupted
-* Hidden Brain
+* Maintainable
* Deep Questions with Cal Newport
-* Fork Around And Find Out
-* Fallthrough [Golang]
-* Pratical AI
-* The Pragmatic Engineer Podcast
* BSD Now [BSD]
-* Modern Mentor
* The Changelog Podcast(s)
+* The Pragmatic Engineer Podcast
* The ProdCast (Google SRE Podcast)
+* Hidden Brain
### 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
+* FLOSS weekly
* Go Time (predecessor of fallthrough)
* CRE: Chaosradio Express [german]
-* FLOSS weekly
-* Modern Mentor
+* Ship It (predecessor of Fork Around And Find Out)
* Java Pub House
## Newsletters I like
@@ -203,26 +204,26 @@ I liked them but am not listening to them anymore. The podcasts have either "fin
This is a mix of tech and non-tech newsletters I am subscribed to. In random order:
* byteSizeGo
-* Register Spill
+* VK Newsletter
+* Andreas Brandhorst Newsletter (Sci-Fi author)
* Golang Weekly
* Monospace Mentor
-* The Valuable Dev
* Applied Go Weekly Newsletter
+* The Imperfectionist
+* Register Spill
* The Pragmatic Engineer
-* Changelog News
-* VK Newsletter
* Ruby Weekly
-* The Imperfectionist
-* Andreas Brandhorst Newsletter (Sci-Fi author)
+* Changelog News
+* The Valuable Dev
## 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:
-* freeX (not published anymore)
-* Linux Magazine
* Linux User
* LWN (online only)
+* Linux Magazine
+* freeX (not published anymore)
# Formal education
diff --git a/about/self-skills.txt b/about/self-skills.txt
index 42b7c49d..aa5896e7 100644
--- a/about/self-skills.txt
+++ b/about/self-skills.txt
@@ -1,3 +1,4 @@
+* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
* Eat That Frog; Brian Tracy
* Getting Things Done; David Allen
* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
diff --git a/about/showcase.md b/about/showcase.md
index 7a62ec4a..0aa11bb4 100644
--- a/about/showcase.md
+++ b/about/showcase.md
@@ -1,6 +1,6 @@
# Project Showcase
-Generated on: 2025-08-31
+Generated on: 2025-09-11
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,43 +11,41 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ Projects](#projects)
* [⇢ ⇢ ⇢ hexai](#hexai)
* [⇢ ⇢ ⇢ conf](#conf)
-* [⇢ ⇢ ⇢ totalrecall](#totalrecall)
* [⇢ ⇢ ⇢ gitsyncer](#gitsyncer)
+* [⇢ ⇢ ⇢ totalrecall](#totalrecall)
* [⇢ ⇢ ⇢ timr](#timr)
* [⇢ ⇢ ⇢ tasksamurai](#tasksamurai)
* [⇢ ⇢ ⇢ ior](#ior)
* [⇢ ⇢ ⇢ dtail](#dtail)
-* [⇢ ⇢ ⇢ wireguardmeshgenerator](#wireguardmeshgenerator)
* [⇢ ⇢ ⇢ foostats](#foostats)
+* [⇢ ⇢ ⇢ wireguardmeshgenerator](#wireguardmeshgenerator)
* [⇢ ⇢ ⇢ ds-sim](#ds-sim)
-* [⇢ ⇢ ⇢ sillybench](#sillybench)
* [⇢ ⇢ ⇢ gos](#gos)
+* [⇢ ⇢ ⇢ sillybench](#sillybench)
* [⇢ ⇢ ⇢ rcm](#rcm)
* [⇢ ⇢ ⇢ gemtexter](#gemtexter)
-* [⇢ ⇢ ⇢ docker-gpodder-sync-server](#docker-gpodder-sync-server)
* [⇢ ⇢ ⇢ docker-radicale-server](#docker-radicale-server)
* [⇢ ⇢ ⇢ quicklogger](#quicklogger)
* [⇢ ⇢ ⇢ terraform](#terraform)
-* [⇢ ⇢ ⇢ docker-anki-sync-server](#docker-anki-sync-server)
* [⇢ ⇢ ⇢ gogios](#gogios)
* [⇢ ⇢ ⇢ gorum](#gorum)
* [⇢ ⇢ ⇢ guprecords](#guprecords)
* [⇢ ⇢ ⇢ randomjournalpage](#randomjournalpage)
* [⇢ ⇢ ⇢ sway-autorotate](#sway-autorotate)
-* [⇢ ⇢ ⇢ algorithms](#algorithms)
+* [⇢ ⇢ ⇢ photoalbum](#photoalbum)
* [⇢ ⇢ ⇢ geheim](#geheim)
+* [⇢ ⇢ ⇢ algorithms](#algorithms)
* [⇢ ⇢ ⇢ foo.zone](#foozone)
* [⇢ ⇢ ⇢ perl-c-fibonacci](#perl-c-fibonacci)
* [⇢ ⇢ ⇢ ioriot](#ioriot)
-* [⇢ ⇢ ⇢ photoalbum](#photoalbum)
* [⇢ ⇢ ⇢ staticfarm-apache-handlers](#staticfarm-apache-handlers)
* [⇢ ⇢ ⇢ dyndns](#dyndns)
* [⇢ ⇢ ⇢ mon](#mon)
* [⇢ ⇢ ⇢ rubyfy](#rubyfy)
* [⇢ ⇢ ⇢ pingdomfetch](#pingdomfetch)
* [⇢ ⇢ ⇢ gotop](#gotop)
-* [⇢ ⇢ ⇢ debroid](#debroid)
* [⇢ ⇢ ⇢ xerl](#xerl)
+* [⇢ ⇢ ⇢ debroid](#debroid)
* [⇢ ⇢ ⇢ fapi](#fapi)
* [⇢ ⇢ ⇢ template](#template)
* [⇢ ⇢ ⇢ muttdelay](#muttdelay)
@@ -61,37 +59,37 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ ⇢ perldaemon](#perldaemon)
* [⇢ ⇢ ⇢ awksite](#awksite)
* [⇢ ⇢ ⇢ jsmstrade](#jsmstrade)
-* [⇢ ⇢ ⇢ ychat](#ychat)
* [⇢ ⇢ ⇢ netcalendar](#netcalendar)
+* [⇢ ⇢ ⇢ ychat](#ychat)
* [⇢ ⇢ ⇢ hsbot](#hsbot)
-* [⇢ ⇢ ⇢ fype](#fype)
* [⇢ ⇢ ⇢ vs-sim](#vs-sim)
+* [⇢ ⇢ ⇢ fype](#fype)
## Overall Statistics
-* 📦 Total Projects: 57
-* 📊 Total Commits: 10,900
-* 📈 Total Lines of Code: 198,325
-* 📄 Total Lines of Documentation: 21,954
-* 💻 Languages: Go (34.2%), Java (20.4%), C++ (8.6%), C (8.6%), Perl (7.8%), C/C++ (6.1%), Shell (2.9%), HTML (1.9%), Config (1.8%), Ruby (1.4%), HCL (1.4%), YAML (0.9%), Python (0.8%), Make (0.7%), CSS (0.6%), Raku (0.4%), JSON (0.4%), XML (0.3%), Haskell (0.3%), TOML (0.2%)
-* 📚 Documentation: Markdown (50.2%), Text (49.8%)
-* 🎵 Vibe-Coded Projects: 4 out of 57 (7.0%)
-* 🤖 AI-Assisted Projects (including vibe-coded): 9 out of 57 (15.8% AI-assisted, 84.2% human-only)
-* 🚀 Release Status: 35 released, 22 experimental (61.4% with releases, 38.6% experimental)
+* 📦 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%)
+* 🎵 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)
## Projects
### hexai
-* 💻 Languages: Go (100.0%)
+* 💻 Languages: Go (66.6%), HTML (33.4%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 103
-* 📈 Lines of Code: 5479
-* 📄 Lines of Documentation: 399
-* 📅 Development Period: 2025-08-01 to 2025-08-29
-* 🔥 Recent Activity: 8.1 days (avg. age of last 42 commits)
+* 📊 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)
* ⚖️ License: No license found
-* 🏷️ Latest Release: v0.3.3 (2025-08-29)
+* 🏷️ Latest Release: v0.9.0 (2025-09-08)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -108,13 +106,13 @@ The project is implemented primarily in Go and uses Mage as its build and task a
### conf
-* 💻 Languages: Perl (27.4%), YAML (24.1%), Shell (23.8%), TOML (6.4%), Config (5.8%), CSS (5.7%), Ruby (4.2%), Lua (1.2%), Docker (0.7%), JSON (0.6%), INI (0.1%)
+* 💻 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%)
* 📚 Documentation: Text (69.9%), Markdown (30.1%)
-* 📊 Commits: 965
-* 📈 Lines of Code: 5749
+* 📊 Commits: 980
+* 📈 Lines of Code: 5994
* 📄 Lines of Documentation: 1188
-* 📅 Development Period: 2021-12-28 to 2025-08-31
-* 🔥 Recent Activity: 16.1 days (avg. age of last 42 commits)
+* 📅 Development Period: 2021-12-28 to 2025-09-10
+* 🔥 Recent Activity: 16.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -127,6 +125,29 @@ conf
---
+### gitsyncer
+
+* 💻 Languages: Go (91.0%), Shell (7.4%), YAML (0.9%), JSON (0.6%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 110
+* 📈 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)
+* ⚖️ License: BSD-2-Clause
+* 🏷️ Latest Release: v0.9.2 (2025-09-08)
+* 🎵 Vibe-Coded: This project has been vibe coded
+
+
+**GitSyncer** is an automation tool designed to synchronize git repositories across multiple organizations and hosting platforms, such as GitHub, Codeberg, and private SSH servers. Its primary purpose is to keep all branches and tags in sync between these platforms, ensuring that codebases remain consistent and up-to-date everywhere. GitSyncer is especially useful for developers and teams managing projects across different git hosts, providing features like automatic branch and repository creation, one-way backups to offline or private servers, and robust error handling for merge conflicts and missing resources. It also includes advanced capabilities like AI-powered project showcase generation, batch synchronization for automation, and flexible configuration for branch exclusions and backup strategies.
+
+The tool is implemented as a modern CLI application in Go, with a modular, command-based architecture. Users configure organizations, repositories, and backup locations via a JSON file, and interact with GitSyncer through intuitive commands (e.g., `gitsyncer sync`, `gitsyncer release create`). Under the hood, GitSyncer clones repositories, adds all remotes, fetches and merges branches, and pushes updates to all destinations, handling repository and branch creation as needed. SSH backup locations are supported for one-way, opt-in backups, with automatic bare repo initialization. The AI-powered showcase feature analyzes repositories and uses Claude or other AI tools to generate comprehensive project summaries and statistics. The architecture emphasizes automation, safety (never deleting branches), and extensibility, making GitSyncer a powerful solution for multi-platform git management and backup.
+
+[View on Codeberg](https://codeberg.org/snonux/gitsyncer)
+[View on GitHub](https://github.com/snonux/gitsyncer)
+
+---
+
### totalrecall
* 💻 Languages: Go (98.9%), Shell (0.5%), YAML (0.5%)
@@ -135,7 +156,7 @@ conf
* 📈 Lines of Code: 12003
* 📄 Lines of Documentation: 361
* 📅 Development Period: 2025-07-14 to 2025-08-02
-* 🔥 Recent Activity: 40.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 50.8 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
@@ -156,29 +177,6 @@ Architecturally, totalrecall is implemented in Go and integrates with OpenAI ser
---
-### gitsyncer
-
-* 💻 Languages: Go (90.6%), Shell (7.8%), YAML (1.0%), JSON (0.7%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 104
-* 📈 Lines of Code: 9567
-* 📄 Lines of Documentation: 2433
-* 📅 Development Period: 2025-06-23 to 2025-08-19
-* 🔥 Recent Activity: 44.9 days (avg. age of last 42 commits)
-* ⚖️ License: BSD-2-Clause
-* 🏷️ Latest Release: v0.9.0 (2025-08-19)
-* 🎵 Vibe-Coded: This project has been vibe coded
-
-
-**GitSyncer** is an automation tool designed to synchronize git repositories across multiple organizations and hosting platforms, such as GitHub, Codeberg, and private SSH servers. Its primary purpose is to keep all branches and tags in sync between these platforms, ensuring that codebases remain consistent and up-to-date everywhere. GitSyncer is especially useful for developers and teams managing projects across different git hosts, providing features like automatic branch and repository creation, one-way backups to offline or private servers, and robust error handling for merge conflicts and missing resources. It also includes advanced capabilities like AI-powered project showcase generation, batch synchronization for automation, and flexible configuration for branch exclusions and backup strategies.
-
-The tool is implemented as a modern CLI application in Go, with a modular, command-based architecture. Users configure organizations, repositories, and backup locations via a JSON file, and interact with GitSyncer through intuitive commands (e.g., `gitsyncer sync`, `gitsyncer release create`). Under the hood, GitSyncer clones repositories, adds all remotes, fetches and merges branches, and pushes updates to all destinations, handling repository and branch creation as needed. SSH backup locations are supported for one-way, opt-in backups, with automatic bare repo initialization. The AI-powered showcase feature analyzes repositories and uses Claude or other AI tools to generate comprehensive project summaries and statistics. The architecture emphasizes automation, safety (never deleting branches), and extensibility, making GitSyncer a powerful solution for multi-platform git management and backup.
-
-[View on Codeberg](https://codeberg.org/snonux/gitsyncer)
-[View on GitHub](https://github.com/snonux/gitsyncer)
-
----
-
### timr
* 💻 Languages: Go (98.3%), YAML (1.7%)
@@ -187,7 +185,7 @@ The tool is implemented as a modern CLI application in Go, with a modular, comma
* 📈 Lines of Code: 873
* 📄 Lines of Documentation: 137
* 📅 Development Period: 2025-06-25 to 2025-07-19
-* 🔥 Recent Activity: 64.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 74.8 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
@@ -212,7 +210,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: 65.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 76.6 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
@@ -239,7 +237,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: 103.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 114.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -262,11 +260,11 @@ The project is implemented using a combination of Go, C, and BPF, leveraging the
* 💻 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: 1049
+* 📊 Commits: 1046
* 📈 Lines of Code: 20091
* 📄 Lines of Documentation: 5674
* 📅 Development Period: 2020-01-09 to 2025-06-20
-* 🔥 Recent Activity: 105.4 days (avg. age of last 42 commits)
+* 🔥 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
@@ -285,6 +283,28 @@ The architecture consists of a client-server model: DTail servers run on each ta
---
+### foostats
+
+* 💻 Languages: Perl (100.0%)
+* 📚 Documentation: Markdown (90.0%), Text (10.0%)
+* 📊 Commits: 80
+* 📈 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)
+* ⚖️ License: Custom License
+* 🏷️ Latest Release: v0.1.0 (2025-07-12)
+
+
+**foostats** is a privacy-focused web analytics tool designed specifically for OpenBSD environments, with support for both traditional web (HTTP/HTTPS) and Gemini protocol logs. Its primary function is to generate anonymous, comprehensive site statistics for the foo.zone ecosystem and similar sites, while strictly preserving visitor privacy. This is achieved by hashing all IP addresses with SHA3-512 before storage, ensuring no personally identifiable information is retained. The tool provides detailed daily, monthly, and summary reports in Gemtext format, tracks feed subscribers, and includes robust filtering to block and log suspicious requests based on configurable patterns.
+
+Architecturally, foostats is modular, with components for log parsing, filtering, aggregation, replication, and reporting. It processes logs from OpenBSD httpd and Gemini servers (vger/relayd), aggregates statistics, and outputs compressed JSON files and human-readable reports. Its distributed design allows replication and merging of stats across multiple nodes, supporting comprehensive analytics for federated sites. Key features include multi-protocol and IPv4/IPv6 support, privacy-first data handling, and flexible configuration for filtering and reporting, making it a secure and privacy-respecting alternative to conventional analytics platforms.
+
+[View on Codeberg](https://codeberg.org/snonux/foostats)
+[View on GitHub](https://github.com/snonux/foostats)
+
+---
+
### wireguardmeshgenerator
* 💻 Languages: Ruby (73.5%), YAML (26.5%)
@@ -293,7 +313,7 @@ The architecture consists of a client-server model: DTail servers run on each ta
* 📈 Lines of Code: 396
* 📄 Lines of Documentation: 24
* 📅 Development Period: 2025-04-18 to 2025-05-11
-* 🔥 Recent Activity: 124.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 135.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.0.0 (2025-05-11)
@@ -307,28 +327,6 @@ The project is implemented using Ruby, with tasks managed via Rake, and configur
---
-### foostats
-
-* 💻 Languages: Perl (100.0%)
-* 📚 Documentation: Markdown (85.1%), Text (14.9%)
-* 📊 Commits: 76
-* 📈 Lines of Code: 1577
-* 📄 Lines of Documentation: 154
-* 📅 Development Period: 2023-01-02 to 2025-08-31
-* 🔥 Recent Activity: 135.0 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
-* 🏷️ Latest Release: v0.1.0 (2025-07-12)
-
-
-**foostats** is a privacy-focused web analytics tool designed specifically for OpenBSD environments, with support for both traditional web (HTTP/HTTPS) and Gemini protocol logs. Its primary function is to generate anonymous, comprehensive site statistics for the foo.zone ecosystem and similar sites, while strictly preserving visitor privacy. This is achieved by hashing all IP addresses with SHA3-512 before storage, ensuring no personally identifiable information is retained. The tool provides detailed daily, monthly, and summary reports in Gemtext format, tracks feed subscribers, and includes robust filtering to block and log suspicious requests based on configurable patterns.
-
-Architecturally, foostats is modular, with components for log parsing, filtering, aggregation, replication, and reporting. It processes logs from OpenBSD httpd and Gemini servers (vger/relayd), aggregates statistics, and outputs compressed JSON files and human-readable reports. Its distributed design allows replication and merging of stats across multiple nodes, supporting comprehensive analytics for federated sites. Key features include multi-protocol and IPv4/IPv6 support, privacy-first data handling, and flexible configuration for filtering and reporting, making it a secure and privacy-respecting alternative to conventional analytics platforms.
-
-[View on Codeberg](https://codeberg.org/snonux/foostats)
-[View on GitHub](https://github.com/snonux/foostats)
-
----
-
### ds-sim
* 💻 Languages: Java (98.9%), Shell (0.6%), CSS (0.5%)
@@ -337,7 +335,7 @@ Architecturally, foostats is modular, with components for log parsing, filtering
* 📈 Lines of Code: 25762
* 📄 Lines of Documentation: 3101
* 📅 Development Period: 2008-05-15 to 2025-06-27
-* 🔥 Recent Activity: 138.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 148.8 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
@@ -354,39 +352,17 @@ Architecturally, DS-Sim is organized into modular components: core process and m
---
-### sillybench
-
-* 💻 Languages: Go (90.9%), Shell (9.1%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 5
-* 📈 Lines of Code: 33
-* 📄 Lines of Documentation: 3
-* 📅 Development Period: 2025-04-03 to 2025-04-03
-* 🔥 Recent Activity: 150.6 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🧪 Status: Experimental (no releases yet)
-
-
-The **Silly Benchmark** project is a simple benchmarking tool designed to compare the performance of code execution between a native FreeBSD system and a Linux virtual machine running under Bhyve (the FreeBSD hypervisor). Its primary purpose is to provide a straightforward, reproducible way to measure and contrast the computational speed or efficiency of these two environments. This can help users or system administrators understand the performance impact of virtualization and the differences between operating systems when running the same workload.
-
-Implementation-wise, the project likely consists of a small, easily portable program—often written in C or a scripting language—that performs a set of computational tasks or loops, measuring the time taken to complete them. The key features include its simplicity, ease of use, and focus on raw execution speed rather than complex benchmarking scenarios. The architecture is minimal: the benchmark is run natively on FreeBSD and then inside a Linux VM managed by Bhyve, with results compared to highlight any performance discrepancies attributable to the OS or virtualization overhead. This approach is useful for system tuning, hardware evaluation, or making informed decisions about deployment environments.
-
-[View on Codeberg](https://codeberg.org/snonux/sillybench)
-[View on GitHub](https://github.com/snonux/sillybench)
-
----
-
### gos
* 💻 Languages: Go (98.6%), YAML (1.1%), JSON (0.2%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 384
-* 📈 Lines of Code: 3951
+* 📊 Commits: 387
+* 📈 Lines of Code: 3978
* 📄 Lines of Documentation: 342
-* 📅 Development Period: 2024-05-04 to 2025-08-28
-* 🔥 Recent Activity: 154.1 days (avg. age of last 42 commits)
+* 📅 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.0 (2025-03-04)
+* 🏷️ Latest Release: v1.0.3 (2025-09-07)
[![gos screenshot](showcase/gos/image-1.png "gos screenshot")](showcase/gos/image-1.png)
@@ -402,6 +378,28 @@ Implementation-wise, the project likely consists of a small, easily portable pro
---
+### sillybench
+
+* 💻 Languages: Go (90.9%), Shell (9.1%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 5
+* 📈 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)
+* ⚖️ License: No license found
+* 🧪 Status: Experimental (no releases yet)
+
+
+The **Silly Benchmark** project is a simple benchmarking tool designed to compare the performance of code execution between a native FreeBSD system and a Linux virtual machine running under Bhyve (the FreeBSD hypervisor). Its primary purpose is to provide a straightforward, reproducible way to measure and contrast the computational speed or efficiency of these two environments. This can help users or system administrators understand the performance impact of virtualization and the differences between operating systems when running the same workload.
+
+Implementation-wise, the project likely consists of a small, easily portable program—often written in C or a scripting language—that performs a set of computational tasks or loops, measuring the time taken to complete them. The key features include its simplicity, ease of use, and focus on raw execution speed rather than complex benchmarking scenarios. The architecture is minimal: the benchmark is run natively on FreeBSD and then inside a Linux VM managed by Bhyve, with results compared to highlight any performance discrepancies attributable to the OS or virtualization overhead. This approach is useful for system tuning, hardware evaluation, or making informed decisions about deployment environments.
+
+[View on Codeberg](https://codeberg.org/snonux/sillybench)
+[View on GitHub](https://github.com/snonux/sillybench)
+
+---
+
### rcm
* 💻 Languages: Ruby (99.8%), TOML (0.2%)
@@ -410,7 +408,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: 191.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 202.1 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -426,15 +424,16 @@ Key features include a test suite (run via `rake test`) to ensure reliability, a
### gemtexter
-* 💻 Languages: Shell (68.1%), CSS (28.7%), Config (1.9%), HTML (1.3%)
-* 📚 Documentation: Text (76.1%), Markdown (23.9%)
+* 💻 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%)
* 📊 Commits: 466
-* 📈 Lines of Code: 2268
-* 📄 Lines of Documentation: 1180
-* 📅 Development Period: 2021-05-21 to 2025-08-05
-* 🔥 Recent Activity: 245.5 days (avg. age of last 42 commits)
+* 📈 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)
* ⚖️ 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**
@@ -448,28 +447,6 @@ The project is implemented as a large Bash script, leveraging standard GNU utili
---
-### docker-gpodder-sync-server
-
-* 💻 Languages: Make (100.0%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 4
-* 📈 Lines of Code: 17
-* 📄 Lines of Documentation: 3
-* 📅 Development Period: 2024-03-24 to 2025-08-08
-* 🔥 Recent Activity: 399.5 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
-* 🧪 Status: Experimental (no releases yet)
-
-
-This project provides a Docker-based deployment solution for the GPodder sync server, specifically targeting the open-source [mygpo](https://github.com/gpodder/mygpo) backend. GPodder is a popular podcast manager, and the sync server enables users to synchronize their podcast subscriptions, episode progress, and device data across multiple clients and devices. By containerizing the sync server with Docker, this project simplifies installation, configuration, and maintenance, making it easy to run the service in a consistent and isolated environment regardless of the host system.
-
-The implementation leverages Docker to encapsulate all dependencies and runtime requirements of the mygpo server. The provided Dockerfile and configuration scripts automate the setup process, including installing necessary Python packages, configuring the database, and exposing the appropriate network ports. This architecture enables rapid deployment, scalability, and straightforward updates, while also supporting best practices for security and resource management. Key features include reproducible builds, environment variable configuration, and compatibility with orchestration tools like Docker Compose, making it a practical solution for both personal and small-scale public GPodder sync services.
-
-[View on Codeberg](https://codeberg.org/snonux/docker-gpodder-sync-server)
-[View on GitHub](https://github.com/snonux/docker-gpodder-sync-server)
-
----
-
### docker-radicale-server
* 💻 Languages: Make (57.5%), Docker (42.5%)
@@ -478,7 +455,7 @@ The implementation leverages Docker to encapsulate all dependencies and runtime
* 📈 Lines of Code: 40
* 📄 Lines of Documentation: 3
* 📅 Development Period: 2023-12-31 to 2025-08-11
-* 🔥 Recent Activity: 491.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 501.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -500,7 +477,7 @@ The Docker image is typically implemented using a `Dockerfile` that installs Rad
* 📈 Lines of Code: 917
* 📄 Lines of Documentation: 33
* 📅 Development Period: 2024-01-20 to 2025-07-06
-* 🔥 Recent Activity: 501.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 512.0 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.0.3 (2025-07-06)
@@ -526,7 +503,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: 527.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 537.8 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🧪 Status: Experimental (no releases yet)
@@ -540,28 +517,6 @@ Key features include the ability to specify which ECS services to deploy, automa
---
-### docker-anki-sync-server
-
-* 💻 Languages: Docker (54.5%), Make (45.5%)
-* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 4
-* 📈 Lines of Code: 33
-* 📄 Lines of Documentation: 3
-* 📅 Development Period: 2023-08-13 to 2025-07-31
-* 🔥 Recent Activity: 534.2 days (avg. age of last 42 commits)
-* ⚖️ License: MIT
-* 🧪 Status: Experimental (no releases yet)
-
-
-The **docker-anki-sync-server** project provides a Dockerized solution for running an Anki sync server, which enables users to synchronize their Anki flashcard collections across multiple devices. This is particularly useful for individuals or organizations who want to host their own private Anki synchronization service instead of relying on AnkiWeb, offering greater control over data privacy and server customization. By packaging the sync server within a Docker image, the project simplifies deployment, making it easy to set up and run the server on any system that supports Docker, regardless of the underlying operating system.
-
-The implementation centers around a Dockerfile that builds an image containing all necessary dependencies and the Anki sync server software. Key features include portability, reproducibility, and ease of maintenance—users can deploy updates or migrate the server with minimal effort. The architecture typically involves exposing the sync server on a configurable network port, allowing Anki clients to connect and synchronize their data. This approach abstracts away complex environment setup, letting users focus on managing their Anki data rather than server configuration.
-
-[View on Codeberg](https://codeberg.org/snonux/docker-anki-sync-server)
-[View on GitHub](https://github.com/snonux/docker-anki-sync-server)
-
----
-
### gogios
* 💻 Languages: Go (94.4%), YAML (3.4%), JSON (2.2%)
@@ -570,7 +525,7 @@ The implementation centers around a Dockerfile that builds an image containing a
* 📈 Lines of Code: 1096
* 📄 Lines of Documentation: 287
* 📅 Development Period: 2023-04-17 to 2025-06-12
-* 🔥 Recent Activity: 568.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 578.7 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
@@ -595,7 +550,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: 754.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 764.8 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -618,7 +573,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: 804.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 814.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v1.0.0 (2023-04-29)
@@ -640,7 +595,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: 818.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 829.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -663,7 +618,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: 1112.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1123.1 days (avg. age of last 42 commits)
* ⚖️ License: GPL-3.0
* 🧪 Status: Experimental (no releases yet)
@@ -677,26 +632,28 @@ The script is implemented by piping the output of `monitor-sensor` into `autorot
---
-### algorithms
+### photoalbum
-* 💻 Languages: Go (99.2%), Make (0.8%)
+* 💻 Languages: Shell (80.1%), Make (12.3%), Config (7.6%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 82
-* 📈 Lines of Code: 1728
-* 📄 Lines of Documentation: 18
-* 📅 Development Period: 2020-07-12 to 2023-04-09
-* 🔥 Recent Activity: 1483.1 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
-* 🧪 Status: Experimental (no releases yet)
+* 📊 Commits: 153
+* 📈 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)
+* ⚖️ License: No license found
+* 🏷️ Latest Release: 0.5.0 (2022-02-21)
⚠️ **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 is a collection of exercises and implementations based on an Algorithms lecture, designed primarily as a refresher for key algorithmic concepts. It provides a hands-on environment for practicing and reinforcing understanding of fundamental algorithms, such as sorting, searching, and possibly data structures, through practical coding exercises. The project is structured to facilitate both learning and assessment, featuring built-in unit tests to verify correctness and benchmarking tools to evaluate performance.
+**Summary:**
+The `photoalbum` project is a minimal Bash script designed for Linux systems to automate the creation of static web photo albums. Its primary function is to take a collection of images from a specified directory, process them, and generate a ready-to-deploy static website that displays these photos in an organized album format. This tool is particularly useful for users who want a simple, dependency-light way to publish photo galleries online without relying on complex web frameworks or dynamic content management systems.
-Key features include a modular codebase where each algorithm or exercise is likely implemented in its own file or module, making it easy to navigate and extend. The use of Makefile commands (make test and make bench) streamlines the workflow: make test runs automated unit tests to ensure the algorithms work as expected, while make bench executes performance benchmarks to compare efficiency. This architecture supports iterative development and experimentation, making the project useful for students, educators, or anyone looking to refresh their algorithm skills in a practical, test-driven manner.
+**Key Features & Architecture:**
+`photoalbum` operates through a set of straightforward commands: `generate` (to build the album), `clean` (to remove temporary files), `version` (to display version info), and `makemake` (to set up configuration files and a Makefile). Configuration is handled via a customizable rcfile, allowing users to tailor settings such as source and output directories. The script uses HTML templates, which can be edited for custom album layouts. The workflow involves copying images to an "incoming" folder, running the `generate` command to create the album in a `dist` directory, and optionally cleaning up with `clean`. Its minimalist Bash implementation ensures ease of use, transparency, and compatibility with most Linux environments, making it ideal for users seeking a lightweight, easily customizable static photo album generator.
-[View on Codeberg](https://codeberg.org/snonux/algorithms)
-[View on GitHub](https://github.com/snonux/algorithms)
+[View on Codeberg](https://codeberg.org/snonux/photoalbum)
+[View on GitHub](https://github.com/snonux/photoalbum)
---
@@ -704,11 +661,11 @@ Key features include a modular codebase where each algorithm or exercise is like
* 💻 Languages: Ruby (100.0%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 66
+* 📊 Commits: 67
* 📈 Lines of Code: 671
-* 📄 Lines of Documentation: 19
-* 📅 Development Period: 2018-05-26 to 2025-01-21
-* 🔥 Recent Activity: 1484.9 days (avg. age of last 42 commits)
+* 📄 Lines of Documentation: 26
+* 📅 Development Period: 2018-05-26 to 2025-09-04
+* 🔥 Recent Activity: 1437.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -726,14 +683,37 @@ The architecture centers around a local Git repository that acts as the secure s
---
+### algorithms
+
+* 💻 Languages: Go (99.2%), Make (0.8%)
+* 📚 Documentation: Markdown (100.0%)
+* 📊 Commits: 82
+* 📈 Lines of Code: 1728
+* 📄 Lines of Documentation: 18
+* 📅 Development Period: 2020-07-12 to 2023-04-09
+* 🔥 Recent Activity: 1493.8 days (avg. age of last 42 commits)
+* ⚖️ License: Custom License
+* 🧪 Status: Experimental (no releases yet)
+
+⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
+
+This project is a collection of exercises and implementations based on an Algorithms lecture, designed primarily as a refresher for key algorithmic concepts. It provides a hands-on environment for practicing and reinforcing understanding of fundamental algorithms, such as sorting, searching, and possibly data structures, through practical coding exercises. The project is structured to facilitate both learning and assessment, featuring built-in unit tests to verify correctness and benchmarking tools to evaluate performance.
+
+Key features include a modular codebase where each algorithm or exercise is likely implemented in its own file or module, making it easy to navigate and extend. The use of Makefile commands (make test and make bench) streamlines the workflow: make test runs automated unit tests to ensure the algorithms work as expected, while make bench executes performance benchmarks to compare efficiency. This architecture supports iterative development and experimentation, making the project useful for students, educators, or anyone looking to refresh their algorithm skills in a practical, test-driven manner.
+
+[View on Codeberg](https://codeberg.org/snonux/algorithms)
+[View on GitHub](https://github.com/snonux/algorithms)
+
+---
+
### foo.zone
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 3040
+* 📊 Commits: 3060
* 📈 Lines of Code: 0
* 📄 Lines of Documentation: 23
* 📅 Development Period: 2021-05-21 to 2022-04-02
-* 🔥 Recent Activity: 1498.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1509.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -756,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: 1964.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 1974.7 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -777,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: 2505.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 2516.3 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0.5.1 (2019-01-04)
@@ -794,40 +774,15 @@ The tool operates in five main steps: capturing I/O on the production server, tr
---
-### photoalbum
-
-* 💻 Languages: Shell (78.1%), Make (13.5%), Config (8.4%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 153
-* 📈 Lines of Code: 311
-* 📄 Lines of Documentation: 45
-* 📅 Development Period: 2011-11-19 to 2022-02-20
-* 🔥 Recent Activity: 2930.0 days (avg. age of last 42 commits)
-* ⚖️ License: No license found
-* 🏷️ Latest Release: 0.5.0 (2022-02-21)
-
-⚠️ **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.
-
-**Summary:**
-The `photoalbum` project is a minimal Bash script designed for Linux systems to automate the creation of static web photo albums. Its primary function is to take a collection of images from a specified directory, process them, and generate a ready-to-deploy static website that displays these photos in an organized album format. This tool is particularly useful for users who want a simple, dependency-light way to publish photo galleries online without relying on complex web frameworks or dynamic content management systems.
-
-**Key Features & Architecture:**
-`photoalbum` operates through a set of straightforward commands: `generate` (to build the album), `clean` (to remove temporary files), `version` (to display version info), and `makemake` (to set up configuration files and a Makefile). Configuration is handled via a customizable rcfile, allowing users to tailor settings such as source and output directories. The script uses HTML templates, which can be edited for custom album layouts. The workflow involves copying images to an "incoming" folder, running the `generate` command to create the album in a `dist` directory, and optionally cleaning up with `clean`. Its minimalist Bash implementation ensures ease of use, transparency, and compatibility with most Linux environments, making it ideal for users seeking a lightweight, easily customizable static photo album generator.
-
-[View on Codeberg](https://codeberg.org/snonux/photoalbum)
-[View on GitHub](https://github.com/snonux/photoalbum)
-
----
-
### staticfarm-apache-handlers
-* 💻 Languages: Perl (93.8%), Make (6.2%)
+* 💻 Languages: Perl (96.4%), Make (3.6%)
* 📚 Documentation: Text (100.0%)
* 📊 Commits: 3
-* 📈 Lines of Code: 529
+* 📈 Lines of Code: 919
* 📄 Lines of Documentation: 12
* 📅 Development Period: 2015-01-02 to 2021-11-04
-* 🔥 Recent Activity: 3014.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3025.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.1.3 (2015-01-02)
@@ -850,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: 3250.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3260.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -874,13 +829,13 @@ This setup is useful for anyone running their own DNS server who needs to keep D
### mon
-* 💻 Languages: Perl (96.5%), Shell (1.9%), Make (1.2%), Config (0.4%)
+* 💻 Languages: Perl (96.5%), Shell (1.8%), Make (1.2%), Config (0.4%)
* 📚 Documentation: Text (100.0%)
* 📊 Commits: 7
-* 📈 Lines of Code: 5250
+* 📈 Lines of Code: 5360
* 📄 Lines of Documentation: 789
* 📅 Development Period: 2015-01-02 to 2021-11-05
-* 🔥 Recent Activity: 3516.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3527.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.1 (2015-01-02)
@@ -907,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: 3521.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3531.7 days (avg. age of last 42 commits)
* ⚖️ License: Apache-2.0
* 🏷️ Latest Release: 0 (2015-10-26)
@@ -936,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: 3600.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3611.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2015-01-02)
@@ -963,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: 3611.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3622.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.1 (2015-06-01)
@@ -978,6 +933,27 @@ The tool is implemented in Go, which offers advantages in terms of performance,
---
+### xerl
+
+* 💻 Languages: Perl (98.3%), Config (1.2%), Make (0.5%)
+* 📊 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)
+* ⚖️ License: Custom License
+* 🏷️ Latest Release: v1.0.0 (2018-12-22)
+
+⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
+
+This project establishes a Perl coding style guide and best practices framework, particularly tailored for teams working on modular, object-oriented Perl applications. It enforces the use of strict and warnings pragmas, modern Perl features (v5.14+), and a consistent object-oriented approach with explicit method prototypes and object typing. The guide also standardizes naming conventions for public, private, static, and static-private methods, ensuring code clarity and maintainability. Additionally, it integrates tools like Pidy for automatic code formatting and provides mechanisms (like TODO: tags) for tracking unfinished work.
+
+The implementation is primarily documentation-driven, meant to be included at the top of Perl modules and packages. Developers are instructed to use specific base classes (e.g., Xerl::Page::Base for universal definitions), follow explicit method signatures, and adhere to naming conventions that distinguish between method types and visibility. The architecture encourages encapsulation (private methods prefixed with _), explicit return values (including undef when appropriate), and modular design. This approach is useful because it reduces ambiguity, streamlines onboarding for new developers, and helps maintain a high standard of code quality across large Perl codebases.
+
+[View on Codeberg](https://codeberg.org/snonux/xerl)
+[View on GitHub](https://github.com/snonux/xerl)
+
+---
+
### debroid
* 💻 Languages: Shell (92.0%), Make (8.0%)
@@ -986,7 +962,7 @@ The tool is implemented in Go, which offers advantages in terms of performance,
* 📈 Lines of Code: 88
* 📄 Lines of Documentation: 148
* 📅 Development Period: 2015-06-18 to 2015-12-05
-* 🔥 Recent Activity: 3715.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 3725.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -1003,27 +979,6 @@ The implementation involves several key steps: first, a Debian image is created
---
-### xerl
-
-* 💻 Languages: Perl (98.4%), Config (1.1%), Make (0.5%)
-* 📊 Commits: 670
-* 📈 Lines of Code: 1667
-* 📅 Development Period: 2011-03-06 to 2017-01-01
-* 🔥 Recent Activity: 3933.1 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
-* 🏷️ Latest Release: v1.0.0 (2018-12-22)
-
-⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
-
-This project establishes a Perl coding style guide and best practices framework, particularly tailored for teams working on modular, object-oriented Perl applications. It enforces the use of strict and warnings pragmas, modern Perl features (v5.14+), and a consistent object-oriented approach with explicit method prototypes and object typing. The guide also standardizes naming conventions for public, private, static, and static-private methods, ensuring code clarity and maintainability. Additionally, it integrates tools like Pidy for automatic code formatting and provides mechanisms (like TODO: tags) for tracking unfinished work.
-
-The implementation is primarily documentation-driven, meant to be included at the top of Perl modules and packages. Developers are instructed to use specific base classes (e.g., Xerl::Page::Base for universal definitions), follow explicit method signatures, and adhere to naming conventions that distinguish between method types and visibility. The architecture encourages encapsulation (private methods prefixed with _), explicit return values (including undef when appropriate), and modular design. This approach is useful because it reduces ambiguity, streamlines onboarding for new developers, and helps maintain a high standard of code quality across large Perl codebases.
-
-[View on Codeberg](https://codeberg.org/snonux/xerl)
-[View on GitHub](https://github.com/snonux/xerl)
-
----
-
### fapi
* 💻 Languages: Python (96.6%), Make (3.1%), Config (0.3%)
@@ -1032,7 +987,7 @@ The implementation is primarily documentation-driven, meant to be included at th
* 📈 Lines of Code: 1681
* 📄 Lines of Documentation: 539
* 📅 Development Period: 2014-03-10 to 2021-11-03
-* 🔥 Recent Activity: 3993.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4003.8 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-11-17)
@@ -1059,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: 4047.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4058.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.0.0.0 (2013-03-22)
@@ -1082,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: 4060.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4071.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.2.0 (2014-07-05)
@@ -1109,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: 4068.0 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.1.5 (2014-06-22)
@@ -1134,7 +1089,7 @@ The tool operates by having users simultaneously run the same command on both ho
* 📈 Lines of Code: 493
* 📄 Lines of Documentation: 26
* 📅 Development Period: 2009-09-27 to 2021-11-02
-* 🔥 Recent Activity: 4111.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4122.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.9.3 (2014-06-14)
@@ -1157,7 +1112,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: 4116.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4127.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.4.3 (2014-06-16)
@@ -1182,7 +1137,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: 4177.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4188.3 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
@@ -1203,7 +1158,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: 4257.7 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4268.4 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1226,7 +1181,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: 4298.3 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4309.0 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 1.0.2 (2014-06-22)
@@ -1249,7 +1204,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: 4328.4 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4339.1 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: 0.7.5 (2014-06-22)
@@ -1264,11 +1219,11 @@ loadbars: source code repository.
### perldaemon
-* 💻 Languages: Perl (74.2%), Shell (22.2%), Config (3.6%)
+* 💻 Languages: Perl (72.3%), Shell (23.8%), Config (3.9%)
* 📊 Commits: 110
-* 📈 Lines of Code: 659
+* 📈 Lines of Code: 614
* 📅 Development Period: 2011-02-05 to 2022-04-21
-* 🔥 Recent Activity: 4472.6 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4388.6 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v1.4 (2022-04-29)
@@ -1293,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: 4708.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4719.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.2 (2011-01-27)
@@ -1316,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: 4771.5 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 4782.2 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.3 (2009-02-08)
@@ -1333,29 +1288,6 @@ The application is implemented as a desktop GUI, likely using a framework such a
---
-### ychat
-
-* 💻 Languages: C++ (62.8%), C/C++ (27.1%), HTML (3.1%), Config (2.5%), Perl (1.9%), Shell (1.9%), Make (0.4%), CSS (0.2%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 67
-* 📈 Lines of Code: 27104
-* 📄 Lines of Documentation: 109
-* 📅 Development Period: 2008-05-15 to 2014-07-01
-* 🔥 Recent Activity: 5372.5 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%)
@@ -1364,7 +1296,7 @@ yChat’s architecture is built around a core C++ engine that handles HTTP reque
* 📈 Lines of Code: 17380
* 📄 Lines of Documentation: 947
* 📅 Development Period: 2009-02-07 to 2021-05-01
-* 🔥 Recent Activity: 5402.2 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5412.9 days (avg. age of last 42 commits)
* ⚖️ License: GPL-2.0
* 🏷️ Latest Release: v0.1 (2009-02-08)
@@ -1383,13 +1315,36 @@ NetCalendar is implemented as a Java application (requiring JRE 6 or higher) and
---
+### ychat
+
+* 💻 Languages: C++ (54.9%), C/C++ (23.0%), Shell (13.8%), Perl (2.5%), HTML (2.5%), Config (2.3%), Make (0.8%), CSS (0.2%)
+* 📚 Documentation: Text (100.0%)
+* 📊 Commits: 67
+* 📈 Lines of Code: 67884
+* 📄 Lines of Documentation: 127
+* 📅 Development Period: 2008-05-15 to 2014-06-30
+* 🔥 Recent Activity: 5433.2 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)
+
+---
+
### hsbot
* 💻 Languages: Haskell (98.5%), Make (1.5%)
* 📊 Commits: 80
* 📈 Lines of Code: 601
* 📅 Development Period: 2009-11-22 to 2011-10-17
-* 🔥 Recent Activity: 5497.9 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5508.6 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🧪 Status: Experimental (no releases yet)
@@ -1404,27 +1359,6 @@ The architecture is modular, relying on external Haskell packages: libghc6-hsql-
---
-### fype
-
-* 💻 Languages: C (63.7%), C/C++ (25.3%), HTML (9.2%), Make (1.8%)
-* 📚 Documentation: Text (100.0%)
-* 📊 Commits: 99
-* 📈 Lines of Code: 6450
-* 📄 Lines of Documentation: 516
-* 📅 Development Period: 2008-05-15 to 2014-06-30
-* 🔥 Recent Activity: 5628.2 days (avg. age of last 42 commits)
-* ⚖️ License: Custom License
-* 🧪 Status: Experimental (no releases yet)
-
-⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
-
-fype: source code repository.
-
-[View on Codeberg](https://codeberg.org/snonux/fype)
-[View on GitHub](https://github.com/snonux/fype)
-
----
-
### vs-sim
* 📚 Documentation: Markdown (100.0%)
@@ -1432,7 +1366,7 @@ fype: source code repository.
* 📈 Lines of Code: 0
* 📄 Lines of Documentation: 7
* 📅 Development Period: 2008-05-15 to 2015-05-23
-* 🔥 Recent Activity: 5858.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 5869.5 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v1.0 (2008-08-24)
@@ -1444,3 +1378,24 @@ The simulator features a modular architecture, allowing users to define custom n
[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%)
+* 📊 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)
+* ⚖️ License: Custom License
+* 🧪 Status: Experimental (no releases yet)
+
+⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.
+
+fype: source code repository.
+
+[View on Codeberg](https://codeberg.org/snonux/fype)
+[View on GitHub](https://github.com/snonux/fype)
diff --git a/about/showcase/debroid/image-1.png b/about/showcase/debroid/image-1.png
index 12f59f84..d6f2a286 100644
--- a/about/showcase/debroid/image-1.png
+++ b/about/showcase/debroid/image-1.png
@@ -46,15 +46,15 @@
<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-b4711dbbb32e.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" />
- <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_model_categorization","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_custom_copilots_feature_preview","copilot_custom_copilots_images","copilot_duplicate_thread","copilot_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_no_floating_button","copilot_read_shared_conversation","copilot_spaces_input_menu_select","copilot_spaces_permissions_tab","copilot_spaces_upsert_reload_in_background","copilot_spark_allow_empty_commit","copilot_spark_single_user_iteration","copilot_spark_use_billing_headers","copilot_spark_write_iteration_history_to_git","copilot_task_oriented_assistive_prompts","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_connection_reload_banner","copilot_workbench_preview_analytics","copilot_workbench_ratelimit_fallback","copilot_workbench_refresh_on_wsod","copilot_workbench_synthetic_generation","custom_copilots_capi_mode","custom_copilots_file_uploads","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","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","marketing_pages_search_explore_provider","memex_mwl_filter_field_delimiter","migrate_toasts_to_banners_web_notifications","new_insights_rulesets_filter","new_scroll_into_view","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","record_sso_banner_metrics","remove_child_patch","repos_insights_remove_new_url","role_assignment_list_radio","sample_network_conn_type","scheduled_reminders_updated_limits","site_homepage_contentful","site_msbuild_hide_integrations","site_msbuild_launch","site_msbuild_webgl_hero","spark_commit_on_default_branch","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_default_sonnet4","workbench_store_readonly"],"copilotApiOverrideUrl":null}</script>
+ <script type="application/json" id="client-env">{"locale":"en","featureFlags":["alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","client_version_header","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 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-b33b4d750cdf.js" defer="defer"></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/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>
@@ -66,9 +66,9 @@
<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_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-97c18f2decf8.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-40460e2f9c95.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_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>
@@ -76,11 +76,10 @@
<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/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_sticky-scroll-into-view_ts-packages_onfocus_onfocus_ts-9a381930df2a.js" defer="defer"></script>
-<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-57ebdf-79a296a7e15b.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_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-467cc66490c2.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/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>
@@ -92,13 +91,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:f89920a7-8216-bf34-d005-0fcfdc40c512">
+ <meta name="fetch-nonce" content="v2:62ee94e6-664d-176f-a3f1-7e64243bdf13">
<meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">
- <meta name="request-id" content="E3FA:1E8F18:4F93B06:42E943D:68B445EE" data-pjax-transient="true"/><meta name="html-safe-nonce" content="4f80fb30f674f1a92b33b326a7ce11a85edafc0a8fabbcb87c74610a3d488d75" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFM0ZBOjFFOEYxODo0RjkzQjA2OjQyRTk0M0Q6NjhCNDQ1RUUiLCJ2aXNpdG9yX2lkIjoiNDY5MDYzMDM1Mzc2MjkyODExMSIsInJlZ2lvbl9lZGdlIjoiZnJhIiwicmVnaW9uX3JlbmRlciI6ImZyYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="535fe3a7df328f2cadb34dfc78082532fc3c45c7302f47a55da58e955dc46adc" data-pjax-transient="true"/>
+ <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"/>
@@ -174,14 +173,14 @@
<meta name="expected-hostname" content="github.com">
- <meta http-equiv="x-pjax-version" content="b6b413dd0054ea159d7c7f05bff8c64dd2f3f544135163e52f92b88a7418749b" data-turbo-track="reload">
- <meta http-equiv="x-pjax-csp-version" content="8fba9c9418de26103e6176951dd0c38780be21b972f2019085dee08622fdb843" data-turbo-track="reload">
- <meta http-equiv="x-pjax-css-version" content="1171b388f73050aafca154c7fd7d199a2b33477e7f141bb087db1c37d62b62fc" data-turbo-track="reload">
- <meta http-equiv="x-pjax-js-version" content="b5e8d5e15deb2ee43196e2cc0d5ef209c917c3a86268fd87e7a91660f96aa56c" data-turbo-track="reload">
+ <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 name="turbo-cache-control" content="no-preview" data-turbo-transient="">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/site-36e5e1b0bd56.css" />
+ <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/error-3bfb6168c7d5.css" />
<meta name="is_logged_out_page" content="true">
<meta name="octolytics-page-type" content="marketing">
@@ -201,7 +200,7 @@
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
- <meta name="release" content="346c461c6e798c1e50b5a026061e49698df05b70">
+ <meta name="release" content="ed4becda7e590493a3eb351d9ef96da3f7e36888">
<meta name="ui-target" content="full">
<link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
@@ -229,7 +228,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.ccd7aec5fe9a23db3da7.module.css" />
+ <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/keyboard-shortcuts-dialog.2de9c7d6456a311fce49.module.css" />
<react-partial
@@ -255,6 +254,7 @@
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_gsap_index_js-23c9606618ce.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-04dd9f3c4754.js" defer="defer"></script>
<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-f58d04675ea1.js" defer="defer"></script>
+
<header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark>
<h2 class="sr-only">Navigation Menu</h2>
@@ -293,13 +293,13 @@
</a>
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-c361f6ba-bc5b-42c9-8513-ec8b22da82fd" aria-labelledby="tooltip-fb98646b-6d42-4517-ba96-78262b955ecf" 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-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">
<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-fb98646b-6d42-4517-ba96-78262b955ecf" for="icon-button-c361f6ba-bc5b-42c9-8513-ec8b22da82fd" 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-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>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.ccd7aec5fe9a23db3da7.module.css" />
+ <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" />
<react-partial
@@ -326,8 +326,6 @@
<div class="HeaderMenu-wrapper d-flex flex-column flex-self-start flex-lg-row flex-auto rounded rounded-lg-0">
<nav class="HeaderMenu-nav" aria-label="Global">
<ul class="d-lg-flex list-style-none">
-
-
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
<button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
Platform
@@ -336,198 +334,212 @@
</svg>
</button>
- <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide">
- <div class="HeaderMenu-column pl-lg-4 px-lg-4">
- <div class="">
+ <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 dropdown-menu-wide">
+ <div class="d-lg-flex dropdown-menu-wide">
+ <div class="HeaderMenu-column px-lg-4">
+ <div class="">
- <ul class="list-style-none f5" >
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_copilot&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}" href="https://github.com/features/copilot">
+ <ul class="list-style-none f5" >
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_copilot&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}" href="https://github.com/features/copilot">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3">
<path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- GitHub Copilot
- </div>
+ <div class="color-fg-default h4">
+ GitHub Copilot
+
+ </div>
+
Write better code with AI
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_spark&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_spark_link_platform_navbar&quot;}" href="https://github.com/features/spark">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_spark&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_spark_link_platform_navbar&quot;}" href="https://github.com/features/spark">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-sparkle-fill color-fg-subtle mr-3">
<path d="M11.296 1.924c.24-.656 1.168-.656 1.408 0l.717 1.958a11.25 11.25 0 0 0 6.697 6.697l1.958.717c.657.24.657 1.168 0 1.408l-1.958.717a11.25 11.25 0 0 0-6.697 6.697l-.717 1.958c-.24.657-1.168.657-1.408 0l-.717-1.958a11.25 11.25 0 0 0-6.697-6.697l-1.958-.717c-.656-.24-.656-1.168 0-1.408l1.958-.717a11.25 11.25 0 0 0 6.697-6.697l.717-1.958Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- GitHub Spark
- <span class="HeaderMenu-label">
- New
- </span>
- </div>
+ <div class="color-fg-default h4">
+ GitHub Spark
+
+ <span class="HeaderMenu-label">
+ New
+ </span>
+ </div>
+
Build and deploy intelligent apps
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_models&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_models_link_platform_navbar&quot;}" href="https://github.com/features/models">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_models&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_models_link_platform_navbar&quot;}" href="https://github.com/features/models">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-ai-model color-fg-subtle mr-3">
<path d="M19.375 8.5a3.25 3.25 0 1 1-3.163 4h-3a3.252 3.252 0 0 1-4.443 2.509L7.214 17.76a3.25 3.25 0 1 1-1.342-.674l1.672-2.957A3.238 3.238 0 0 1 6.75 12c0-.907.371-1.727.97-2.316L6.117 6.846A3.253 3.253 0 0 1 1.875 3.75a3.25 3.25 0 1 1 5.526 2.32l1.603 2.836A3.25 3.25 0 0 1 13.093 11h3.119a3.252 3.252 0 0 1 3.163-2.5ZM10 10.25a1.75 1.75 0 1 0-.001 3.499A1.75 1.75 0 0 0 10 10.25ZM5.125 2a1.75 1.75 0 1 0 0 3.5 1.75 1.75 0 0 0 0-3.5Zm12.5 9.75a1.75 1.75 0 1 0 3.5 0 1.75 1.75 0 0 0-3.5 0Zm-14.25 8.5a1.75 1.75 0 1 0 3.501-.001 1.75 1.75 0 0 0-3.501.001Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- GitHub Models
- <span class="HeaderMenu-label">
- New
- </span>
- </div>
+ <div class="color-fg-default h4">
+ GitHub Models
+
+ <span class="HeaderMenu-label">
+ New
+ </span>
+ </div>
+
Manage and compare prompts
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}" href="https://github.com/security/advanced-security">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}" href="https://github.com/security/advanced-security">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3">
<path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- GitHub Advanced Security
- </div>
+ <div class="color-fg-default h4">
+ GitHub Advanced Security
+
+ </div>
+
Find and fix vulnerabilities
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;actions&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}" href="https://github.com/features/actions">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;actions&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}" href="https://github.com/features/actions">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3">
<path d="M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Actions
- </div>
+ <div class="color-fg-default h4">
+ Actions
+
+ </div>
+
Automate any workflow
</div>
</a></li>
-
- </ul>
- </div>
- </div>
- <div class="HeaderMenu-column pl-lg-4 px-lg-4 pb-3 pb-lg-0">
- <div class="border-bottom border-lg-bottom-0 pb-3">
+ </ul>
+ </div>
+ </div>
+ <div class="HeaderMenu-column px-lg-4 pb-3 pb-lg-0 border-lg-right">
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 pb-3">
- <ul class="list-style-none f5" >
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;codespaces&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}" href="https://github.com/features/codespaces">
+ <ul class="list-style-none f5" >
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;codespaces&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}" href="https://github.com/features/codespaces">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3">
<path d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z"></path><path d="M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Codespaces
- </div>
+ <div class="color-fg-default h4">
+ Codespaces
+
+ </div>
+
Instant dev environments
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;issues&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}" href="https://github.com/features/issues">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;issues&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}" href="https://github.com/features/issues">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3">
<path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Issues
- </div>
+ <div class="color-fg-default h4">
+ Issues
+
+ </div>
+
Plan and track work
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;code_review&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}" href="https://github.com/features/code-review">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;code_review&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}" href="https://github.com/features/code-review">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3">
<path d="M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Code Review
- </div>
+ <div class="color-fg-default h4">
+ Code Review
+
+ </div>
+
Manage code changes
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;discussions&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;discussions_link_platform_navbar&quot;}" href="https://github.com/features/discussions">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;discussions&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;discussions_link_platform_navbar&quot;}" href="https://github.com/features/discussions">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3">
<path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Discussions
- </div>
+ <div class="color-fg-default h4">
+ Discussions
+
+ </div>
+
Collaborate outside of code
</div>
</a></li>
- <li>
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;code_search&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;code_search_link_platform_navbar&quot;}" href="https://github.com/features/code-search">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-square color-fg-subtle mr-3">
<path d="M10.3 8.24a.75.75 0 0 1-.04 1.06L7.352 12l2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M2 3.75C2 2.784 2.784 2 3.75 2h16.5c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0 1 20.25 22H3.75A1.75 1.75 0 0 1 2 20.25Zm1.75-.25a.25.25 0 0 0-.25.25v16.5c0 .138.112.25.25.25h16.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Code Search
- </div>
+ <div class="color-fg-default h4">
+ Code Search
+
+ </div>
+
Find more, search less
</div>
</a></li>
- </ul>
- </div>
- </div>
- <div class="HeaderMenu-column pl-lg-4 border-lg-left pr-lg-7">
- <div class="border-bottom border-lg-bottom-0 border-bottom-0">
- <span class="d-block h4 color-fg-default my-1" id="platform-explore-heading">Explore</span>
+ </ul>
+ </div>
+ </div>
+ <div class="HeaderMenu-column px-lg-4">
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 mb-3 pb-3">
+
+ <span class="d-block h4 color-fg-default my-1" id="platform-explore-heading">Explore</span>
- <ul class="list-style-none f5" aria-labelledby="platform-explore-heading">
- <li>
+ <ul class="list-style-none f5" aria-labelledby="platform-explore-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;why_github&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}" href="https://github.com/why-github">
Why GitHub
</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;all_features&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;all_features_link_platform_navbar&quot;}" href="https://github.com/features">
- All features
-
-
-</a></li>
-
- <li>
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;documentation&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" href="https://docs.github.com">
Documentation
@@ -536,7 +548,7 @@
</svg>
</a></li>
- <li>
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_skills&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_skills_link_platform_navbar&quot;}" href="https://skills.github.com">
GitHub Skills
@@ -545,7 +557,7 @@
</svg>
</a></li>
- <li>
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;blog&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" href="https://github.blog">
Blog
@@ -554,10 +566,33 @@
</svg>
</a></li>
- </ul>
- </div>
- </div>
+ </ul>
+ </div>
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 pb-3">
+
+ <span class="d-block h4 color-fg-default my-1" id="platform-integrations-heading">Integrations</span>
+ <ul class="list-style-none f5" aria-labelledby="platform-integrations-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;github_marketplace&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_marketplace_link_platform_navbar&quot;}" href="https://github.com/marketplace">
+ GitHub Marketplace
+
+
+</a></li>
+
+
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <div class="HeaderMenu-trailing-link rounded-bottom-2 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold">
+ <a data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all_features&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}" href="https://github.com/features">
+ View all features
+ <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right HeaderMenu-trailing-link-icon">
+ <path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path>
+</svg>
+</a> </div>
</div>
</li>
@@ -570,128 +605,135 @@
</svg>
</button>
- <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex flex-wrap dropdown-menu-wide">
- <div class="HeaderMenu-column pl-lg-4 px-lg-4 pb-3 pb-lg-0">
- <div class="border-bottom border-lg-bottom-0 mb-3 pb-3">
- <span class="d-block h4 color-fg-default my-1" id="solutions-by-company-size-heading">By company size</span>
+ <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 dropdown-menu-wide">
+ <div class="d-lg-flex dropdown-menu-wide">
+ <div class="HeaderMenu-column px-lg-4 pb-3 pb-lg-0 border-lg-right">
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 pb-3">
+
+ <span class="d-block h4 color-fg-default my-1" id="solutions-by-company-size-heading">By company size</span>
- <ul class="list-style-none f5" aria-labelledby="solutions-by-company-size-heading">
- <li>
+ <ul class="list-style-none f5" aria-labelledby="solutions-by-company-size-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;enterprises&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}" href="https://github.com/enterprise">
Enterprises
</a></li>
- <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;small_and_medium_teams&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}" href="https://github.com/team">
Small and medium teams
</a></li>
- <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;startups&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}" href="https://github.com/enterprise/startups">
Startups
</a></li>
- <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;nonprofits&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}" href="/solutions/industry/nonprofits">
Nonprofits
</a></li>
- </ul>
- </div>
- <div class="border-bottom border-lg-bottom-0 pb-3">
- <span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span>
+ </ul>
+ </div>
+ </div>
+ <div class="HeaderMenu-column px-lg-4 pb-3 pb-lg-0 border-lg-right">
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 pb-3">
- <ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading">
- <li>
+ <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
</a></li>
- <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;devops&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}" href="/solutions/use-case/devops">
DevOps
</a></li>
- <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;ci_cd&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ci_cd_link_solutions_navbar&quot;}" href="/solutions/use-case/ci-cd">
CI/CD
</a></li>
- <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;view_all_use_cases&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}" href="/solutions/use-case">
View all use cases
</a></li>
- </ul>
- </div>
- </div>
- <div class="HeaderMenu-column pl-lg-4 border-lg-left pr-lg-7">
- <div class="border-bottom border-lg-bottom-0 pb-3 pb-lg-0">
- <span class="d-block h4 color-fg-default my-1" id="solutions-by-industry-heading">By industry</span>
+ </ul>
+ </div>
+ </div>
+ <div class="HeaderMenu-column px-lg-4">
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 pb-3">
+
+ <span class="d-block h4 color-fg-default my-1" id="solutions-by-industry-heading">By industry</span>
- <ul class="list-style-none f5" aria-labelledby="solutions-by-industry-heading">
- <li>
+ <ul class="list-style-none f5" aria-labelledby="solutions-by-industry-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;healthcare&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}" href="/solutions/industry/healthcare">
Healthcare
</a></li>
- <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;financial_services&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}" href="/solutions/industry/financial-services">
Financial services
</a></li>
- <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;manufacturing&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}" href="/solutions/industry/manufacturing">
Manufacturing
</a></li>
- <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;government&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}" href="/solutions/industry/government">
Government
</a></li>
- <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;view_all_industries&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}" href="/solutions/industry">
View all industries
</a></li>
- </ul>
- </div>
- </div>
+ </ul>
+ </div>
+ </div>
+ </div>
- <div class="HeaderMenu-trailing-link rounded-bottom-2 flex-shrink-0 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold">
- <a href="/solutions">
+ <div class="HeaderMenu-trailing-link rounded-bottom-2 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold">
+ <a data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}" href="/solutions">
View all solutions
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right HeaderMenu-trailing-link-icon">
<path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path>
</svg>
-</a> </div>
+</a> </div>
</div>
</li>
@@ -704,56 +746,59 @@
</svg>
</button>
- <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide">
- <div class="HeaderMenu-column pl-lg-4 px-lg-4 pb-3 pb-lg-0">
- <div class="border-bottom border-lg-bottom-0 pb-3">
- <span class="d-block h4 color-fg-default my-1" id="resources-topics-heading">Topics</span>
+ <div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 dropdown-menu-wide">
+ <div class="d-lg-flex dropdown-menu-wide">
+ <div class="HeaderMenu-column px-lg-4 pb-3 pb-lg-0 border-lg-right">
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 pb-3">
- <ul class="list-style-none f5" aria-labelledby="resources-topics-heading">
- <li>
+ <span class="d-block h4 color-fg-default my-1" id="resources-topics-heading">Topics</span>
+
+ <ul class="list-style-none f5" aria-labelledby="resources-topics-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;ai&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}" href="/resources/articles/ai">
AI
</a></li>
- <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;devops&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}" href="/resources/articles/devops">
DevOps
</a></li>
- <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;security&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}" href="/resources/articles/security">
Security
</a></li>
- <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;software_development&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}" href="/resources/articles/software-development">
Software Development
</a></li>
- <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;view_all&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_link_resources_navbar&quot;}" href="/resources/articles">
View all
</a></li>
- </ul>
- </div>
- </div>
- <div class="HeaderMenu-column pl-lg-4 border-lg-left pr-lg-7">
- <div class="border-bottom border-lg-bottom-0 border-bottom-0">
- <span class="d-block h4 color-fg-default my-1" id="resources-explore-heading">Explore</span>
+ </ul>
+ </div>
+ </div>
+ <div class="HeaderMenu-column px-lg-4">
+ <div class="border-bottom border-lg-bottom-0 pb-lg-0 border-bottom-0">
- <ul class="list-style-none f5" aria-labelledby="resources-explore-heading">
- <li>
+ <span class="d-block h4 color-fg-default my-1" id="resources-explore-heading">Explore</span>
+
+ <ul class="list-style-none f5" aria-labelledby="resources-explore-heading">
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;learning_pathways&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;learning_pathways_link_resources_navbar&quot;}" href="https://resources.github.com/learn/pathways">
Learning Pathways
@@ -762,28 +807,28 @@
</svg>
</a></li>
- <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;events_amp_webinars&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;events_amp_webinars_link_resources_navbar&quot;}" href="https://github.com/resources/events">
Events &amp; Webinars
</a></li>
- <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;ebooks_amp_whitepapers&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ebooks_amp_whitepapers_link_resources_navbar&quot;}" href="https://github.com/resources/whitepapers">
Ebooks &amp; Whitepapers
</a></li>
- <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;customer_stories&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}" href="https://github.com/customer-stories">
Customer Stories
</a></li>
- <li>
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}" href="https://partner.github.com">
Partners
@@ -792,16 +837,17 @@
</svg>
</a></li>
- <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;executive_insights&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;executive_insights_link_resources_navbar&quot;}" href="https://github.com/solutions/executive-insights">
Executive Insights
</a></li>
- </ul>
- </div>
- </div>
+ </ul>
+ </div>
+ </div>
+ </div>
</div>
</li>
@@ -816,71 +862,78 @@
</button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4">
- <div class="HeaderMenu-column px-lg-4">
- <div class="border-bottom mb-3 mb-lg-3 pb-3">
+ <div class="d-lg-flex dropdown-menu-wide">
+ <div class="HeaderMenu-column px-lg-4">
+ <div class="border-bottom mb-3 mb-lg-3 pb-3">
- <ul class="list-style-none f5" >
- <li>
+ <ul class="list-style-none f5" >
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_sponsors&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}" href="/sponsors">
<div>
- <div class="color-fg-default h4">
- GitHub Sponsors
- </div>
+ <div class="color-fg-default h4">
+ GitHub Sponsors
+
+ </div>
+
Fund open source developers
</div>
</a></li>
- </ul>
- </div>
- <div class="border-bottom mb-3 mb-lg-3 pb-3">
+ </ul>
+ </div>
+ <div class="border-bottom mb-3 mb-lg-3 pb-3">
- <ul class="list-style-none f5" >
- <li>
+ <ul class="list-style-none f5" >
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;the_readme_project&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;the_readme_project_link_open_source_navbar&quot;}" href="https://github.com/readme">
<div>
- <div class="color-fg-default h4">
- The ReadME Project
- </div>
+ <div class="color-fg-default h4">
+ The ReadME Project
+
+ </div>
+
GitHub community articles
</div>
</a></li>
- </ul>
- </div>
- <div class="border-bottom border-bottom-0">
- <span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span>
+ </ul>
+ </div>
+ <div class="border-bottom border-bottom-0">
- <ul class="list-style-none f5" aria-labelledby="open-source-repositories-heading">
- <li>
+ <span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span>
+
+ <ul class="list-style-none f5" aria-labelledby="open-source-repositories-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;topics&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}" href="https://github.com/topics">
Topics
</a></li>
- <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;trending&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}" href="https://github.com/trending">
Trending
</a></li>
- <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;collections&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}" href="https://github.com/collections">
Collections
</a></li>
- </ul>
- </div>
- </div>
+ </ul>
+ </div>
+ </div>
+ </div>
</div>
</li>
@@ -895,86 +948,97 @@
</button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4">
- <div class="HeaderMenu-column px-lg-4">
- <div class="border-bottom mb-3 mb-lg-3 pb-3">
+ <div class="d-lg-flex dropdown-menu-wide">
+ <div class="HeaderMenu-column px-lg-4">
+ <div class="border-bottom mb-3 mb-lg-3 pb-3">
- <ul class="list-style-none f5" >
- <li>
+ <ul class="list-style-none f5" >
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}" href="/enterprise">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-stack color-fg-subtle mr-3">
<path d="M11.063 1.456a1.749 1.749 0 0 1 1.874 0l8.383 5.316a1.751 1.751 0 0 1 0 2.956l-8.383 5.316a1.749 1.749 0 0 1-1.874 0L2.68 9.728a1.751 1.751 0 0 1 0-2.956Zm1.071 1.267a.25.25 0 0 0-.268 0L3.483 8.039a.25.25 0 0 0 0 .422l8.383 5.316a.25.25 0 0 0 .268 0l8.383-5.316a.25.25 0 0 0 0-.422Z"></path><path d="M1.867 12.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path><path d="M1.867 16.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Enterprise platform
- </div>
+ <div class="color-fg-default h4">
+ Enterprise platform
+
+ </div>
+
AI-powered developer platform
</div>
</a></li>
- </ul>
- </div>
- <div class="border-bottom border-bottom-0">
- <span class="d-block h4 color-fg-default my-1" id="enterprise-available-add-ons-heading">Available add-ons</span>
+ </ul>
+ </div>
+ <div class="border-bottom border-bottom-0">
+
+ <span class="d-block h4 color-fg-default my-1" id="enterprise-available-add-ons-heading">Available add-ons</span>
- <ul class="list-style-none f5" aria-labelledby="enterprise-available-add-ons-heading">
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}" href="https://github.com/security/advanced-security">
+ <ul class="list-style-none f5" aria-labelledby="enterprise-available-add-ons-heading">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}" href="https://github.com/security/advanced-security">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3">
<path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- GitHub Advanced Security
- </div>
+ <div class="color-fg-default h4">
+ GitHub Advanced Security
+
+ </div>
+
Enterprise-grade security features
</div>
</a></li>
- <li>
- <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}" href="/features/copilot/copilot-business">
+ <li>
+ <a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description mb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}" href="/features/copilot/copilot-business">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3">
<path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Copilot for business
- </div>
+ <div class="color-fg-default h4">
+ Copilot for business
+
+ </div>
+
Enterprise-grade AI features
</div>
</a></li>
- <li>
+ <li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;premium_support&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}" href="/premium-support">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3">
<path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path>
</svg>
<div>
- <div class="color-fg-default h4">
- Premium Support
- </div>
+ <div class="color-fg-default h4">
+ Premium Support
+
+ </div>
+
Enterprise-grade 24/7 support
</div>
</a></li>
- </ul>
- </div>
- </div>
+ </ul>
+ </div>
+ </div>
+ </div>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
- <a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;global&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;pricing_link_global_navbar&quot;}" href="https://github.com/pricing">Pricing</a>
+ <a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;platform&quot;,&quot;context&quot;:&quot;global&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;platform_link_global_navbar&quot;}" href="https://github.com/pricing">Pricing</a>
</li>
</ul>
@@ -984,7 +1048,7 @@
-<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="8hGdrzIocji7rXT_65Onzv6BApXF8W7OYq-QQIZvfd9hU-lB8tZfGvl7OeXQ5L9wXUW61wx2XgzyFPnsoKGFMQ" 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="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">
<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"
@@ -1048,7 +1112,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-13121436-f95d-43eb-a1e0-68b34dad5920" 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-34dd41b7-0d22-4bff-822e-204a80368b1a" data-target="query-builder.input" data-action="
input:query-builder#inputChange
blur:query-builder#inputBlur
keydown:query-builder#inputKeydown
@@ -1286,7 +1350,7 @@
tabindex="-1"
></ul>
</div>
- <div class="FormControl-inlineValidation" id="validation-13121436-f95d-43eb-a1e0-68b34dad5920" hidden="hidden">
+ <div class="FormControl-inlineValidation" id="validation-34dd41b7-0d22-4bff-822e-204a80368b1a" 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>
@@ -1327,7 +1391,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="74QEvP0Sk3U2Q+o5f2mkkhCHaqx6tLSPtWGYmm+0nundoSEPoonMrlNLd0F49vcQLk9T89IYaIuBwmmT92IETw==" />
+ <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==" />
<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">
@@ -1365,7 +1429,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="IOk5zMi6jkZoG4ofVojvpLwkc1G1BiNv9ZWbb/9bvDHAEO+KfkPR+UXPyqtr077Zb1ZjU4B+OqW4TK/kSVTN+Q==" />
+ <!-- '"` --><!-- </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==" />
<div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
@@ -1383,7 +1447,7 @@
placeholder="github-ruby"
required
maxlength="50">
- <input type="hidden" data-csrf="true" value="zfChWpbsRfvaVpU8xl81Rfk8RovLAP4aFzoahrFIWlx2urfZe3ntGy3NiWnPoh5UYHEjucBBnplTR2Xp+J9Dcg==" />
+ <input type="hidden" data-csrf="true" value="A3CEDjCroexh7WP03UPAyJjRWGZfPOC2HGjE5KlLUPVxpbFBacRLTWhDMnxZHr4L3v6WQ2BFV+0i4eGC1ZLY/A==" />
</auto-check>
</div>
@@ -1438,7 +1502,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="V+DGiBkN/EShahK/cFsNKySZ0jdnGn2/hgrGleHLM5zM1q14I1xbMvmWfX90Z5MhxwFjw9fqorklOltH8jpbyw==" /> <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="9Gm695OSIVX5gYH8esTWA3YExmjW8b6i1AyL0MaNwja8sssgnNbEecmsOuLrUF3h8UCLqc1Bxd7WL1crB3ygvA==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" />
<label for="login_field">
Username or email address
@@ -1460,9 +1524,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_18ec" hidden="hidden" />
-<input class="form-control" type="hidden" name="timestamp" value="1756644847199" />
-<input class="form-control" type="hidden" name="timestamp_secret" value="028b14a47143cbb23254f23a9998ffd472a8b84847089ad9b0fe78fd54f4bc81" />
+<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 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" />
@@ -1489,13 +1553,13 @@
<div class="AppHeader-appearanceSettings">
<react-partial-anchor>
- <button data-target="react-partial-anchor.anchor" id="icon-button-c6c4fa13-5574-4709-8647-59c6cac7495b" aria-labelledby="tooltip-d1c49c05-5b2c-4fb3-bcfd-dbb4f81ccce5" 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-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">
<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-d1c49c05-5b2c-4fb3-bcfd-dbb4f81ccce5" for="icon-button-c6c4fa13-5574-4709-8647-59c6cac7495b" 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-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>
<template data-target="react-partial-anchor.template">
- <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.ccd7aec5fe9a23db3da7.module.css" />
+ <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" />
<react-partial
@@ -1530,10 +1594,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-dfc748ce-f8bc-408b-9f03-59afb8668568" aria-labelledby="tooltip-964a19cb-e218-4a46-8ce2-f2f75d8af77e" 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-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">
<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-964a19cb-e218-4a46-8ce2-f2f75d8af77e" for="icon-button-dfc748ce-f8bc-408b-9f03-59afb8668568" 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-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>
@@ -1675,9 +1739,9 @@
<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>
</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>
- </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>
+ </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>
</li>
diff --git a/index.md b/index.md
index 603fc331..0b012004 100644
--- a/index.md
+++ b/index.md
@@ -1,6 +1,6 @@
# Hello!
-> This site was generated at 2025-08-31T15:40:28+03:00 by `Gemtexter`
+> This site was generated at 2025-09-11T11:09:24+03:00 by `Gemtexter`
Welcome to the foo.zone!
diff --git a/uptime-stats.md b/uptime-stats.md
index 741ef974..81e1dd39 100644
--- a/uptime-stats.md
+++ b/uptime-stats.md
@@ -1,6 +1,6 @@
# My machine uptime stats
-> This site was last updated at 2025-08-31T15:40:28+03:00
+> This site was last updated at 2025-09-11T11:09:23+03:00
The following stats were collected via `uptimed` on all of my personal computers over many years and the output was generated by `guprecords`, the global uptime records stats analyser of mine.
@@ -30,12 +30,12 @@ Boots is the total number of host boots over the entire lifespan.
| 7. | makemake | 76 | Linux 6.9.9-200.fc40.x86_64 |
| 8. | uranus | 59 | NetBSD 10.1 |
| 9. | pluto | 51 | Linux 3.2.0-4-amd64 |
-| 10. | mega15289 | 50 | Darwin 23.4.0 |
-| 11. | *mega-m3-pro | 50 | Darwin 24.6.0 |
+| 10. | *mega-m3-pro | 50 | Darwin 24.6.0 |
+| 11. | mega15289 | 50 | Darwin 23.4.0 |
| 12. | *t450 | 44 | FreeBSD 14.2-RELEASE |
| 13. | fishfinger | 43 | OpenBSD 7.6 |
-| 14. | mega8477 | 40 | Darwin 13.4.0 |
-| 15. | phobos | 40 | Linux 3.4.0-CM-g1dd7cdf |
+| 14. | phobos | 40 | Linux 3.4.0-CM-g1dd7cdf |
+| 15. | mega8477 | 40 | Darwin 13.4.0 |
| 16. | blowfish | 38 | OpenBSD 7.6 |
| 17. | sun | 33 | FreeBSD 10.3-RELEASE-p24 |
| 18. | f2 | 25 | FreeBSD 14.2-RELEASE-p1 |
@@ -55,7 +55,7 @@ Uptime is the total uptime of a host over the entire lifespan.
| 1. | vulcan | 4 years, 5 months, 6 days | Linux 3.10.0-1160.81.1.el7.x86_64 |
| 2. | sun | 3 years, 9 months, 26 days | FreeBSD 10.3-RELEASE-p24 |
| 3. | uranus | 3 years, 9 months, 5 days | NetBSD 10.1 |
-| 4. | *earth | 3 years, 8 months, 19 days | Linux 6.15.9-201.fc42.x86_64 |
+| 4. | *earth | 3 years, 8 months, 29 days | Linux 6.15.9-201.fc42.x86_64 |
| 5. | blowfish | 3 years, 5 months, 16 days | OpenBSD 7.6 |
| 6. | uugrn | 3 years, 5 months, 5 days | FreeBSD 11.2-RELEASE-p4 |
| 7. | deltavega | 3 years, 1 months, 21 days | Linux 3.10.0-1160.11.1.el7.x86_64 |
@@ -85,7 +85,7 @@ Score is calculated by combining all other metrics.
+-----+----------------+-------+-----------------------------------+
| 1. | uranus | 340 | NetBSD 10.1 |
| 2. | vulcan | 275 | Linux 3.10.0-1160.81.1.el7.x86_64 |
-| 3. | *earth | 256 | Linux 6.15.9-201.fc42.x86_64 |
+| 3. | *earth | 257 | Linux 6.15.9-201.fc42.x86_64 |
| 4. | sun | 238 | FreeBSD 10.3-RELEASE-p24 |
| 5. | blowfish | 216 | OpenBSD 7.6 |
| 6. | uugrn | 211 | FreeBSD 11.2-RELEASE-p4 |
@@ -150,7 +150,7 @@ Lifespan is the total uptime + the total downtime of a host.
| 3. | alphacentauri | 6 years, 9 months, 13 days | FreeBSD 11.4-RELEASE-p7 |
| 4. | vulcan | 4 years, 5 months, 6 days | Linux 3.10.0-1160.81.1.el7.x86_64 |
| 5. | makemake | 4 years, 4 months, 7 days | Linux 6.9.9-200.fc40.x86_64 |
-| 6. | *earth | 4 years, 2 months, 5 days | Linux 6.15.9-201.fc42.x86_64 |
+| 6. | *earth | 4 years, 2 months, 16 days | Linux 6.15.9-201.fc42.x86_64 |
| 7. | sun | 3 years, 10 months, 2 days | FreeBSD 10.3-RELEASE-p24 |
| 8. | blowfish | 3 years, 5 months, 17 days | OpenBSD 7.6 |
| 9. | uugrn | 3 years, 5 months, 5 days | FreeBSD 11.2-RELEASE-p4 |
@@ -187,15 +187,15 @@ Boots is the total number of host boots over the entire lifespan.
| 9. | *FreeBSD 14... | 80 |
| 10. | Darwin 13... | 40 |
| 11. | Darwin 23... | 30 |
-| 12. | FreeBSD 5... | 25 |
-| 13. | *Darwin 24... | 25 |
+| 12. | *Darwin 24... | 25 |
+| 13. | FreeBSD 5... | 25 |
| 14. | Linux 2... | 22 |
| 15. | Darwin 21... | 17 |
| 16. | Darwin 15... | 15 |
| 17. | Darwin 22... | 12 |
| 18. | Darwin 18... | 11 |
-| 19. | FreeBSD 7... | 10 |
-| 20. | FreeBSD 6... | 10 |
+| 19. | FreeBSD 6... | 10 |
+| 20. | FreeBSD 7... | 10 |
+-----+----------------+-------+
```
@@ -211,7 +211,7 @@ Uptime is the total uptime of a host over the entire lifespan.
| 2. | OpenBSD 7... | 6 years, 9 months, 24 days |
| 3. | FreeBSD 10... | 5 years, 9 months, 9 days |
| 4. | Linux 5... | 4 years, 10 months, 21 days |
-| 5. | *Linux 6... | 2 years, 11 months, 15 days |
+| 5. | *Linux 6... | 2 years, 11 months, 25 days |
| 6. | Linux 4... | 2 years, 7 months, 22 days |
| 7. | FreeBSD 11... | 2 years, 4 months, 28 days |
| 8. | Linux 2... | 1 years, 11 months, 21 days |
@@ -242,7 +242,7 @@ Score is calculated by combining all other metrics.
| 2. | OpenBSD 7... | 432 |
| 3. | FreeBSD 10... | 406 |
| 4. | Linux 5... | 317 |
-| 5. | *Linux 6... | 199 |
+| 5. | *Linux 6... | 201 |
| 6. | Linux 4... | 175 |
| 7. | FreeBSD 11... | 159 |
| 8. | Linux 2... | 121 |
@@ -256,8 +256,8 @@ Score is calculated by combining all other metrics.
| 16. | Darwin 18... | 32 |
| 17. | Darwin 22... | 30 |
| 18. | Darwin 15... | 29 |
-| 19. | FreeBSD 5... | 25 |
-| 20. | FreeBSD 13... | 25 |
+| 19. | FreeBSD 13... | 25 |
+| 20. | FreeBSD 5... | 25 |
+-----+----------------+-------+
```
@@ -282,15 +282,15 @@ Boots is the total number of host boots over the entire lifespan.
Uptime is the total uptime of a host over the entire lifespan.
```
-+-----+------------+-----------------------------+
-| Pos | KernelName | Uptime |
-+-----+------------+-----------------------------+
-| 1. | *Linux | 27 years, 12 months, 8 days |
-| 2. | *FreeBSD | 11 years, 7 months, 30 days |
-| 3. | OpenBSD | 7 years, 5 months, 5 days |
-| 4. | *Darwin | 4 years, 11 months, 4 days |
-| 5. | NetBSD | 0 years, 1 months, 1 days |
-+-----+------------+-----------------------------+
++-----+------------+------------------------------+
+| Pos | KernelName | Uptime |
++-----+------------+------------------------------+
+| 1. | *Linux | 27 years, 12 months, 18 days |
+| 2. | *FreeBSD | 11 years, 7 months, 30 days |
+| 3. | OpenBSD | 7 years, 5 months, 5 days |
+| 4. | *Darwin | 4 years, 11 months, 4 days |
+| 5. | NetBSD | 0 years, 1 months, 1 days |
++-----+------------+------------------------------+
```
## Top 20 Score's by KernelName
@@ -301,7 +301,7 @@ Score is calculated by combining all other metrics.
+-----+------------+-------+
| Pos | KernelName | Score |
+-----+------------+-------+
-| 1. | *Linux | 1858 |
+| 1. | *Linux | 1860 |
| 2. | *FreeBSD | 814 |
| 3. | OpenBSD | 472 |
| 4. | *Darwin | 321 |