diff options
| author | Paul Buetow <paul@buetow.org> | 2025-11-18 09:40:13 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-11-18 09:40:13 +0200 |
| commit | cde04561c61f99337f7c7006ae858adb2284f3bc (patch) | |
| tree | bf1943a039b6739b8eaceb2b81f9da22289c002a /about | |
| parent | 9aaf903f027c2d3b0bee6d6f6af05e18bd3a799f (diff) | |
Update content for html
Diffstat (limited to 'about')
| -rw-r--r-- | about/index.html | 29 | ||||
| -rw-r--r-- | about/resources.html | 201 | ||||
| -rw-r--r-- | about/showcase.html | 391 | ||||
| -rw-r--r-- | about/showcase/debroid/image-1.png | 130 | ||||
| -rw-r--r-- | about/technical-books.txt | 1 |
5 files changed, 387 insertions, 365 deletions
diff --git a/about/index.html b/about/index.html index 2692f07c..c5188473 100644 --- a/about/index.html +++ b/about/index.html @@ -43,33 +43,50 @@ <br /> <h2 style='display: inline' id='books'>Books</h2><br /> <br /> -<h3 style='display: inline' id='books-i-am-currently-reading--listening'>Books I am currently reading / listening</h3><br /> +<h3 style='display: inline' id='books-i-am-currently-reading--listening-4'>Books I am currently reading / listening (4)</h3><br /> <br /> <ul> -<li>Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook (Kobo kePub)</li> -<li>Sapiens: A Brief History of Humankind; Yuval Noah Harari; Audiobook (Libro.fm)</li> +<li>97 Things Every Cloud Engineer Should Know: Collective Wisdom from the Experts; Emily Freeman, Nathen Harvey; eBook (ePub)</li> +<li>How to talk so kids will listen & Listen so kids will talk; Audiobook (Audible)</li> <li>2005 - Okular; Alastair Reynolds; eBook (Kobo kePub)</li> <li>2021 - Inhibitor Phase; Alastair Reynolds; Audiobook (Libro.fm)</li> </ul><br /> -<h3 style='display: inline' id='next-books-already-in-my-shelf'>Next books already in my shelf</h3><br /> +<h3 style='display: inline' id='next-books-already-in-my-shelf-8'>Next books already in my shelf (8)</h3><br /> <br /> <ul> -<li>97 Things Every Cloud Engineer Should Know: Collective Wisdom from the Experts; Emily Freeman, Nathen Harvey; eBook (ePub)</li> +<li>Clean Code; Audiobook (Audible)</li> +<li>Bash it out</li> +<li>Positiv Wirkt: Wie du mit positivem Denken und Handeln aktiv dein Leben gestaltest (german); Armin Schubert; Paperback</li> +<li>The Courage To Be Happy; Ichiro Kishimi and Fumitake Koga; Paperback</li> <li>1992 - A Fire Upon the Deep (german: Ein Feuer auf der Tiefe); Vernor Vinge; eBook (buecher.de)</li> <li>2025 - Origin: Die Entdecknug (german); Andreas Brandhorst; eBook (buecher.de)</li> <li>2025 - Origin: Die Erweckung (german); Joschua Tree; eBook (buecher.de)</li> <li>2025 - Origin: Die Erloesung (german); Brandon Q. Morris; eBook (buecher.de)</li> </ul><br /> -<h3 style='display: inline' id='book-wishlist'>Book wishlist</h3><br /> +<h3 style='display: inline' id='book-wishlist-3'>Book wishlist (3)</h3><br /> <br /> <ul> <li>2025 - Gateway - Frederik Pohl (german)</li> +<li>Bozo Loop - https://rachelbythebay.gumroad.com/l/bozo-loop-epub</li> +<li>Maybe Understanding Distributed Systems - https://understandingdistributed.systems (or do I know most of it already?)</li> </ul><br /> <h3 style='display: inline' id='books-i-ve-read'>Books I've read</h3><br /> <br /> <a class='textlink' href='./resources.html'>Resources, Technical Books, Podcasts, Courses and Guides I recommend</a><br /> <a class='textlink' href='./novels.html'>Novels I've read</a><br /> <br /> +<h2 style='display: inline' id='things-i-am-currently-learning'>Things I am currently learning</h2><br /> +<br /> +<ul> +<li>Bulgarian language level 4 (A2)</li> +</ul><br /> +<h2 style='display: inline' id='things-i-want-to-learn-soon'>Things I want to learn (soon?)</h2><br /> +<br /> +<ul> +<li><span class='inlinecode'>jqlang</span> - Deep dive into https://jqlang.org</li> +<li><span class='inlinecode'>d2lant</span> - Deep dive into https://d2lang.com</li> +<li>Advanced Prometheus Course at Grafana Labs</li> +</ul><br /> <span>That's all for now...</span><br /> <br /> <a class='textlink' href='../'>Back to the main site</a><br /> diff --git a/about/resources.html b/about/resources.html index 06c11b4b..33bca6ac 100644 --- a/about/resources.html +++ b/about/resources.html @@ -50,111 +50,112 @@ <span>In random order:</span><br /> <br /> <ul> -<li>The Docker Book; James Turnbull; Kindle</li> -<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly</li> -<li>Java ist auch eine Insel; Christian Ullenboom; </li> -<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li> -<li>The Pragmatic Programmer; David Thomas; Addison-Wesley</li> -<li>The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress</li> -<li>The Kubernetes Book; Nigel Poulton; Unabridged Audiobook</li> -<li>Funktionale Programmierung; Peter Pepper; Springer</li> -<li>Raku Recipes; J.J. Merelo; Apress</li> -<li>Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly</li> -<li>Effective awk programming; Arnold Robbins; O'Reilly</li> -<li>Terraform Cookbook; Mikael Krief; Packt Publishing</li> -<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li> -<li>97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly</li> -<li>Leanring eBPF; Liz Rice; O'Reilly</li> -<li>21st Century C: C Tips from the New School; Ben Klemens; O'Reilly</li> -<li>Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press</li> -<li>Effective Java; Joshua Bloch; Addison-Wesley Professional</li> -<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li> -<li>The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional</li> -<li>Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press</li> <li>The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton</li> -<li>Developing Games in Java; David Brackeen and others...; New Riders</li> +<li>Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press</li> +<li>Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers </li> +<li>Higher Order Perl; Mark Dominus; Morgan Kaufmann</li> +<li>Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook</li> +<li>Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner</li> +<li>The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible</li> +<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly</li> +<li>DNS and BIND; Cricket Liu; O'Reilly</li> +<li>100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications</li> <li>Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson</li> -<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li> +<li>The Pragmatic Programmer; David Thomas; Addison-Wesley</li> <li>Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf</li> +<li>Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt </li> +<li>Raku Fundamentals; Moritz Lenz; Apress</li> +<li>Modern Perl; Chromatic ; Onyx Neon Press</li> +<li>Raku Recipes; J.J. Merelo; Apress</li> <li>Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications</li> +<li>Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly</li> +<li>The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional</li> +<li>The Kubernetes Book; Nigel Poulton; Unabridged Audiobook</li> +<li>The Docker Book; James Turnbull; Kindle</li> +<li>Data Science at the Command Line; Jeroen Janssens; O'Reilly</li> +<li>Effective Java; Joshua Bloch; Addison-Wesley Professional</li> +<li>Systemprogrammierung in Go; Frank Müller; dpunkt</li> <li>Concurrency in Go; Katherine Cox-Buday; O'Reilly</li> -<li>Polished Ruby Programming; Jeremy Evans; Packt Publishing</li> -<li>Site Reliability Engineering; How Google runs production systems; O'Reilly</li> +<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</li> +<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li> +<li>Leanring eBPF; Liz Rice; O'Reilly</li> <li>Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook</li> -<li>Higher Order Perl; Mark Dominus; Morgan Kaufmann</li> +<li>Funktionale Programmierung; Peter Pepper; Springer</li> +<li>Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly</li> +<li>Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly</li> +<li>Terraform Cookbook; Mikael Krief; Packt Publishing</li> +<li>Site Reliability Engineering; How Google runs production systems; O'Reilly</li> +<li>21st Century C: C Tips from the New School; Ben Klemens; O'Reilly</li> <li>Ultimate Go Notebook; Bill Kennedy</li> -<li>Data Science at the Command Line; Jeroen Janssens; O'Reilly</li> -<li>DNS and BIND; Cricket Liu; O'Reilly</li> -<li>Systemprogrammierung in Go; Frank Müller; dpunkt</li> -<li>The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible</li> -<li>Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly</li> <li>Pro Puppet; James Turnbull, Jeffrey McCune; Apress</li> -<li>Raku Fundamentals; Moritz Lenz; Apress</li> -<li>Perl New Features; Joshua McAdams, brian d foy; Perl School</li> -<li>Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly</li> +<li>Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press</li> +<li>Polished Ruby Programming; Jeremy Evans; Packt Publishing</li> +<li>Java ist auch eine Insel; Christian Ullenboom; </li> +<li>Effective awk programming; Arnold Robbins; O'Reilly</li> +<li>The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress</li> <li>C++ Programming Language; Bjarne Stroustrup;</li> -<li>Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers</li> -<li>Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly</li> -<li>Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers </li> -<li>Modern Perl; Chromatic ; Onyx Neon Press</li> +<li>Developing Games in Java; David Brackeen and others...; New Riders</li> +<li>DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible</li> +<li>97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly</li> +<li>Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly</li> </ul><br /> <h2 style='display: inline' id='technical-references'>Technical references</h2><br /> <br /> <span>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:</span><br /> <br /> <ul> -<li>Implementing Service Level Objectives; Alex Hidalgo; O'Reilly</li> -<li>The Linux Programming Interface; Michael Kerrisk; No Starch Press </li> +<li>Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly</li> <li>Relayd and Httpd Mastery; Michael W Lucas</li> <li>Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly</li> <li>Go: Design Patterns for Real-World Projects; Mat Ryer; Packt</li> -<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</li> -<li>Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly</li> +<li>Implementing Service Level Objectives; Alex Hidalgo; O'Reilly</li> <li>Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley</li> +<li>The Linux Programming Interface; Michael Kerrisk; No Starch Press </li> +<li>BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley</li> </ul><br /> <h2 style='display: inline' id='self-development-and-soft-skills-books'>Self-development and soft-skills books</h2><br /> <br /> <span>In random order:</span><br /> <br /> <ul> +<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK</li> <li>The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook </li> -<li>The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook</li> <li>Slow Productivity; Cal Newport; Penguin Random House</li> -<li>The Bullet Journal Method; Ryder Carroll; Fourth Estate</li> <li>Influence without Authority; A. Cohen, D. Bradford; Wiley</li> -<li>Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook</li> -<li>The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd</li> -<li>Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook</li> +<li>Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing</li> +<li>Soft Skills; John Sommez; Manning Publications</li> +<li>Meditation for Mortals, Oliver Burkeman, Audiobook</li> +<li>Never Split the Difference; Chris Voss, Tahl Raz; Random House Business</li> +<li>Getting Things Done; David Allen</li> +<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li> +<li>Stop starting, start finishing; Arne Roock; Lean-Kanban University </li> <li>Eat That Frog!; Brian Tracy; Hodder Paperbacks</li> -<li>Eat That Frog; Brian Tracy</li> -<li>Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly</li> -<li>The Joy of Missing Out; Christina Crook; New Society Publishers</li> <li>The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook</li> -<li>Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne</li> -<li>101 Essays that change the way you think; Brianna Wiest; Audiobook</li> -<li>Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press</li> <li>Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion</li> -<li>The Power of Now; Eckhard Tolle; Yellow Kite</li> -<li>Stop starting, start finishing; Arne Roock; Lean-Kanban University </li> -<li>The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select</li> -<li>So Good They Can't Ignore You; Cal Newport; Business Plus</li> -<li>Atomic Habits; James Clear; Random House Business</li> -<li>Soft Skills; John Sommez; Manning Publications</li> -<li>97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook</li> -<li>Never Split the Difference; Chris Voss, Tahl Raz; Random House Business</li> +<li>The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd</li> +<li>Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook</li> +<li>Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne</li> <li>Ultralearning; Scott Young; Thorsons</li> -<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li> -<li>Getting Things Done; David Allen</li> +<li>97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook</li> +<li>Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly</li> +<li>The Bullet Journal Method; Ryder Carroll; Fourth Estate</li> +<li>Atomic Habits; James Clear; Random House Business</li> <li>Digital Minimalism; Cal Newport; Portofolio Penguin</li> -<li>The Good Enough Job; Simone Stolzoff; Ebury Edge</li> -<li>Ultralearning; Anna Laurent; Self-published via Amazon</li> -<li>Meditation for Mortals, Oliver Burkeman, Audiobook</li> <li>The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)</li> +<li>Ultralearning; Anna Laurent; Self-published via Amazon</li> +<li>Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press</li> +<li>Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook</li> +<li>101 Essays that change the way you think; Brianna Wiest; Audiobook</li> +<li>So Good They Can't Ignore You; Cal Newport; Business Plus</li> +<li>The Power of Now; Eckhard Tolle; Yellow Kite</li> +<li>The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books</li> <li>Deep Work; Cal Newport; Piatkus</li> <li>Psycho-Cybernetics; Maxwell Maltz; Perigee Books</li> -<li>Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing</li> +<li>The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook</li> +<li>Eat That Frog; Brian Tracy</li> <li>Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)</li> -<li>The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK</li> +<li>The Joy of Missing Out; Christina Crook; New Society Publishers</li> +<li>The Good Enough Job; Simone Stolzoff; Ebury Edge</li> </ul><br /> <a class='textlink' href='../notes/index.html'>Here are notes of mine for some of the books</a><br /> <br /> @@ -163,31 +164,31 @@ <span>Some of these were in-person with exams; others were online learning lectures only. In random order:</span><br /> <br /> <ul> -<li>Protocol buffers; O'Reilly Online</li> <li>Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online</li> <li>Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training</li> -<li>The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online</li> <li>Developing IaC with Terraform (with Live Lessons); O'Reilly Online</li> -<li>Ultimate Go Programming; Bill Kennedy; O'Reilly Online</li> -<li>Functional programming lecture; Remote University of Hagen</li> -<li>Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon</li> -<li>MySQL Deep Dive Workshop; 2-day on-site training</li> <li>Structure and Interpretation of Computer Programs; Harold Abelson and more...; </li> -<li>Apache Tomcat Best Practises; 3-day on-site training</li> <li>The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online</li> +<li>Protocol buffers; O'Reilly Online</li> <li>Scripting Vim; Damian Conway; O'Reilly Online</li> -<li>Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)</li> <li>F5 Loadbalancers Training; 2-day on-site training; F5, Inc. </li> +<li>Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)</li> <li>AWS Immersion Day; Amazon; 1-day interactive online training </li> +<li>Functional programming lecture; Remote University of Hagen</li> +<li>Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon</li> +<li>Ultimate Go Programming; Bill Kennedy; O'Reilly Online</li> +<li>The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online</li> +<li>Apache Tomcat Best Practises; 3-day on-site training</li> +<li>MySQL Deep Dive Workshop; 2-day on-site training</li> </ul><br /> <h2 style='display: inline' id='technical-guides'>Technical guides</h2><br /> <br /> <span>These are not whole books, but guides (smaller or larger) which I found very useful. in random order:</span><br /> <br /> <ul> +<li>Raku Guide at https://raku.guide </li> <li>How CPUs work at https://cpu.land</li> <li>Advanced Bash-Scripting Guide </li> -<li>Raku Guide at https://raku.guide </li> </ul><br /> <h2 style='display: inline' id='podcasts'>Podcasts</h2><br /> <br /> @@ -196,61 +197,61 @@ <span>In random order:</span><br /> <br /> <ul> -<li>Cup o' Go [Golang]</li> -<li>Backend Banter</li> -<li>Wednesday Wisdom</li> -<li>BSD Now [BSD]</li> -<li>Maintainable</li> -<li>Fallthrough [Golang]</li> -<li>Modern Mentor</li> <li>Fork Around And Find Out</li> +<li>Fallthrough [Golang]</li> +<li>Deep Questions with Cal Newport</li> +<li>BSD Now [BSD]</li> +<li>Dev Interrupted</li> <li>Pratical AI</li> +<li>Modern Mentor</li> +<li>The Pragmatic Engineer Podcast</li> +<li>Wednesday Wisdom</li> +<li>Backend Banter</li> +<li>Maintainable</li> +<li>The Changelog Podcast(s)</li> +<li>Cup o' Go [Golang]</li> <li>The ProdCast (Google SRE Podcast)</li> <li>Hidden Brain</li> -<li>Dev Interrupted</li> -<li>The Changelog Podcast(s)</li> -<li>Deep Questions with Cal Newport</li> -<li>The Pragmatic Engineer Podcast</li> </ul><br /> <h3 style='display: inline' id='podcasts-i-liked'>Podcasts I liked</h3><br /> <br /> <span>I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.</span><br /> <br /> <ul> +<li>FLOSS weekly</li> <li>Java Pub House</li> <li>Ship It (predecessor of Fork Around And Find Out)</li> +<li>Go Time (predecessor of fallthrough)</li> <li>CRE: Chaosradio Express [german]</li> -<li>FLOSS weekly</li> <li>Modern Mentor</li> -<li>Go Time (predecessor of fallthrough)</li> </ul><br /> <h2 style='display: inline' id='newsletters-i-like'>Newsletters I like</h2><br /> <br /> <span>This is a mix of tech and non-tech newsletters I am subscribed to. In random order:</span><br /> <br /> <ul> -<li>Golang Weekly</li> -<li>VK Newsletter</li> -<li>Applied Go Weekly Newsletter</li> <li>The Imperfectionist</li> -<li>The Pragmatic Engineer</li> -<li>Andreas Brandhorst Newsletter (Sci-Fi author)</li> +<li>Monospace Mentor</li> <li>The Valuable Dev</li> <li>byteSizeGo</li> +<li>Applied Go Weekly Newsletter</li> +<li>Golang Weekly</li> <li>Changelog News</li> -<li>Register Spill</li> -<li>Monospace Mentor</li> <li>Ruby Weekly</li> +<li>Andreas Brandhorst Newsletter (Sci-Fi author)</li> +<li>VK Newsletter</li> +<li>Register Spill</li> +<li>The Pragmatic Engineer</li> </ul><br /> <h2 style='display: inline' id='magazines-i-liked'>Magazines I like(d)</h2><br /> <br /> <span>This is a mix of tech I like(d). I may not be a current subscriber, but now and then, I buy an issue. In random order:</span><br /> <br /> <ul> -<li>Linux Magazine</li> -<li>Linux User</li> -<li>freeX (not published anymore)</li> <li>LWN (online only)</li> +<li>freeX (not published anymore)</li> +<li>Linux User</li> +<li>Linux Magazine</li> </ul><br /> <h1 style='display: inline' id='formal-education'>Formal education</h1><br /> <br /> diff --git a/about/showcase.html b/about/showcase.html index 527eba66..e0eb7e54 100644 --- a/about/showcase.html +++ b/about/showcase.html @@ -13,7 +13,7 @@ </p> <h1 style='display: inline' id='project-showcase'>Project Showcase</h1><br /> <br /> -<span>Generated on: 2025-11-03</span><br /> +<span>Generated on: 2025-11-16</span><br /> <br /> <span>This page showcases my side projects, providing an overview of what each project does, its technical implementation, and key metrics. Each project summary includes information about the programming languages used, development activity, and licensing. The projects are ordered by recent activity, with the most actively maintained projects listed first.</span><br /> <br /> @@ -27,9 +27,9 @@ <li>⇢ ⇢ <a href='#yoga'>yoga</a></li> <li>⇢ ⇢ <a href='#hexai'>hexai</a></li> <li>⇢ ⇢ <a href='#foostats'>foostats</a></li> +<li>⇢ ⇢ <a href='#timr'>timr</a></li> <li>⇢ ⇢ <a href='#gitsyncer'>gitsyncer</a></li> <li>⇢ ⇢ <a href='#totalrecall'>totalrecall</a></li> -<li>⇢ ⇢ <a href='#timr'>timr</a></li> <li>⇢ ⇢ <a href='#tasksamurai'>tasksamurai</a></li> <li>⇢ ⇢ <a href='#ior'>ior</a></li> <li>⇢ ⇢ <a href='#gos'>gos</a></li> @@ -48,8 +48,8 @@ <li>⇢ ⇢ <a href='#geheim'>geheim</a></li> <li>⇢ ⇢ <a href='#sway-autorotate'>sway-autorotate</a></li> <li>⇢ ⇢ <a href='#photoalbum'>photoalbum</a></li> -<li>⇢ ⇢ <a href='#algorithms'>algorithms</a></li> <li>⇢ ⇢ <a href='#foozone'>foo.zone</a></li> +<li>⇢ ⇢ <a href='#algorithms'>algorithms</a></li> <li>⇢ ⇢ <a href='#perl-c-fibonacci'>perl-c-fibonacci</a></li> <li>⇢ ⇢ <a href='#guprecords'>guprecords</a></li> <li>⇢ ⇢ <a href='#ioriot'>ioriot</a></li> @@ -67,28 +67,28 @@ <li>⇢ ⇢ <a href='#netdiff'>netdiff</a></li> <li>⇢ ⇢ <a href='#pwgrep'>pwgrep</a></li> <li>⇢ ⇢ <a href='#japi'>japi</a></li> +<li>⇢ ⇢ <a href='#loadbars'>loadbars</a></li> <li>⇢ ⇢ <a href='#perl-poetry'>perl-poetry</a></li> <li>⇢ ⇢ <a href='#ipv6test'>ipv6test</a></li> <li>⇢ ⇢ <a href='#cpuinfo'>cpuinfo</a></li> -<li>⇢ ⇢ <a href='#loadbars'>loadbars</a></li> <li>⇢ ⇢ <a href='#perldaemon'>perldaemon</a></li> <li>⇢ ⇢ <a href='#awksite'>awksite</a></li> <li>⇢ ⇢ <a href='#jsmstrade'>jsmstrade</a></li> -<li>⇢ ⇢ <a href='#ychat'>ychat</a></li> <li>⇢ ⇢ <a href='#netcalendar'>netcalendar</a></li> +<li>⇢ ⇢ <a href='#ychat'>ychat</a></li> <li>⇢ ⇢ <a href='#hsbot'>hsbot</a></li> -<li>⇢ ⇢ <a href='#fype'>fype</a></li> <li>⇢ ⇢ <a href='#vs-sim'>vs-sim</a></li> +<li>⇢ ⇢ <a href='#fype'>fype</a></li> </ul><br /> <h2 style='display: inline' id='overall-statistics'>Overall Statistics</h2><br /> <br /> <ul> <li>📦 Total Projects: 56</li> -<li>📊 Total Commits: 11,329</li> -<li>📈 Total Lines of Code: 225,638</li> -<li>📄 Total Lines of Documentation: 22,247</li> -<li>💻 Languages: Go (38.0%), Java (17.9%), C (7.6%), C++ (7.5%), Perl (7.3%), C/C++ (5.4%), HTML (5.2%), Shell (2.7%), Config (1.6%), Ruby (1.3%), HCL (1.2%), YAML (0.8%), Python (0.7%), Make (0.6%), CSS (0.6%), Raku (0.3%), JSON (0.3%), XML (0.3%), Haskell (0.3%), TOML (0.1%)</li> -<li>📚 Documentation: Text (50.5%), Markdown (49.5%)</li> +<li>📊 Total Commits: 11,370</li> +<li>📈 Total Lines of Code: 287,019</li> +<li>📄 Total Lines of Documentation: 25,503</li> +<li>💻 Languages: Go (29.8%), Java (19.7%), C++ (13.0%), C/C++ (7.2%), C (6.7%), Perl (6.2%), Shell (5.3%), HTML (5.0%), Config (1.6%), Ruby (1.0%), HCL (1.0%), Make (0.7%), YAML (0.6%), Python (0.6%), CSS (0.5%), Raku (0.3%), JSON (0.3%), XML (0.2%), Haskell (0.2%), TOML (0.1%)</li> +<li>📚 Documentation: Text (43.5%), Markdown (43.1%), LaTeX (13.4%)</li> <li>🎵 Vibe-Coded Projects: 5 out of 56 (8.9%)</li> <li>🤖 AI-Assisted Projects (including vibe-coded): 9 out of 56 (16.1% AI-assisted, 83.9% human-only)</li> <li>🚀 Release Status: 37 released, 19 experimental (66.1% with releases, 33.9% experimental)</li> @@ -98,13 +98,13 @@ <h3 style='display: inline' id='conf'>conf</h3><br /> <br /> <ul> -<li>💻 Languages: Perl (30.5%), YAML (25.3%), Shell (22.6%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)</li> -<li>📚 Documentation: Text (69.4%), Markdown (30.6%)</li> -<li>📊 Commits: 1031</li> -<li>📈 Lines of Code: 6270</li> -<li>📄 Lines of Documentation: 1440</li> -<li>📅 Development Period: 2021-12-28 to 2025-11-02</li> -<li>🔥 Recent Activity: 20.9 days (avg. age of last 42 commits)</li> +<li>💻 Languages: Perl (30.4%), YAML (25.2%), Shell (22.8%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)</li> +<li>📚 Documentation: Markdown (69.8%), Text (30.2%)</li> +<li>📊 Commits: 1045</li> +<li>📈 Lines of Code: 6284</li> +<li>📄 Lines of Documentation: 632</li> +<li>📅 Development Period: 2021-12-28 to 2025-11-15</li> +<li>🔥 Recent Activity: 20.0 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -127,7 +127,7 @@ <li>📈 Lines of Code: 3408</li> <li>📄 Lines of Documentation: 82</li> <li>📅 Development Period: 2025-10-01 to 2025-10-24</li> -<li>🔥 Recent Activity: 26.5 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 40.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: v0.3.0 (2025-10-24)</li> <li>🎵 Vibe-Coded: This project has been vibe coded</li> @@ -147,15 +147,15 @@ <h3 style='display: inline' id='hexai'>hexai</h3><br /> <br /> <ul> -<li>💻 Languages: Go (69.5%), HTML (30.5%)</li> +<li>💻 Languages: Go (65.3%), HTML (34.7%)</li> <li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 238</li> -<li>📈 Lines of Code: 26565</li> -<li>📄 Lines of Documentation: 564</li> -<li>📅 Development Period: 2025-08-01 to 2025-10-04</li> -<li>🔥 Recent Activity: 40.9 days (avg. age of last 42 commits)</li> +<li>📊 Commits: 240</li> +<li>📈 Lines of Code: 28331</li> +<li>📄 Lines of Documentation: 562</li> +<li>📅 Development Period: 2025-08-01 to 2025-11-03</li> +<li>🔥 Recent Activity: 52.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> -<li>🏷️ Latest Release: v0.15.1 (2025-10-03)</li> +<li>🏷️ Latest Release: v0.15.3 (2025-11-03)</li> <li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li> </ul><br /> <br /> @@ -179,7 +179,7 @@ <li>📈 Lines of Code: 1902</li> <li>📄 Lines of Documentation: 423</li> <li>📅 Development Period: 2023-01-02 to 2025-11-01</li> -<li>🔥 Recent Activity: 72.8 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 86.3 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v0.2.0 (2025-10-21)</li> </ul><br /> @@ -193,6 +193,30 @@ <br /> <span>---</span><br /> <br /> +<h3 style='display: inline' id='timr'>timr</h3><br /> +<br /> +<ul> +<li>💻 Languages: Go (94.5%), Shell (5.5%)</li> +<li>📚 Documentation: Markdown (100.0%)</li> +<li>📊 Commits: 31</li> +<li>📈 Lines of Code: 991</li> +<li>📄 Lines of Documentation: 50</li> +<li>📅 Development Period: 2025-06-25 to 2025-11-08</li> +<li>🔥 Recent Activity: 104.8 days (avg. age of last 42 commits)</li> +<li>⚖️ License: BSD-2-Clause</li> +<li>🏷️ Latest Release: v0.3.0 (2025-11-08)</li> +<li>🎵 Vibe-Coded: This project has been vibe coded</li> +</ul><br /> +<br /> +<span><span class='inlinecode'>timr</span> is a minimalist command-line stopwatch timer written in Go that helps developers track time spent on tasks. It provides a persistent timer that saves state to disk, allowing you to start, stop, pause, and resume time tracking across terminal sessions. The tool supports multiple viewing modes including a standard status display (with formatted or raw output in seconds/minutes), a live full-screen view with keyboard controls, and specialized output for shell prompt integration.</span><br /> +<br /> +<span>The architecture is straightforward: it's a Go-based CLI application that persists timer state to the filesystem, enabling continuous tracking even when the program isn't actively running. Key features include basic timer controls (start/stop/continue/reset), flexible status reporting formats for automation, and fish shell integration that displays a color-coded timer icon and elapsed time directly in your prompt—making it effortless to keep track of how long you've been working without context switching.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/timr'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/timr'>View on GitHub</a><br /> +<br /> +<span>---</span><br /> +<br /> <h3 style='display: inline' id='gitsyncer'>gitsyncer</h3><br /> <br /> <ul> @@ -202,7 +226,7 @@ <li>📈 Lines of Code: 10152</li> <li>📄 Lines of Documentation: 2431</li> <li>📅 Development Period: 2025-06-23 to 2025-10-31</li> -<li>🔥 Recent Activity: 91.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 105.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: BSD-2-Clause</li> <li>🏷️ Latest Release: v0.10.1 (2025-10-31)</li> <li>🎵 Vibe-Coded: This project has been vibe coded</li> @@ -226,7 +250,7 @@ <li>📈 Lines of Code: 12003</li> <li>📄 Lines of Documentation: 361</li> <li>📅 Development Period: 2025-07-14 to 2025-08-02</li> -<li>🔥 Recent Activity: 103.7 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 117.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: MIT</li> <li>🏷️ Latest Release: v0.7.5 (2025-08-02)</li> <li>🎵 Vibe-Coded: This project has been vibe coded</li> @@ -245,30 +269,6 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='timr'>timr</h3><br /> -<br /> -<ul> -<li>💻 Languages: Go (100.0%)</li> -<li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 27</li> -<li>📈 Lines of Code: 931</li> -<li>📄 Lines of Documentation: 81</li> -<li>📅 Development Period: 2025-06-25 to 2025-10-18</li> -<li>🔥 Recent Activity: 105.6 days (avg. age of last 42 commits)</li> -<li>⚖️ License: BSD-2-Clause</li> -<li>🏷️ Latest Release: v0.2.0 (2025-10-18)</li> -<li>🎵 Vibe-Coded: This project has been vibe coded</li> -</ul><br /> -<br /> -<span><span class='inlinecode'>timr</span> is a minimalist command-line stopwatch timer written in Go that helps developers track time spent on tasks. It provides a persistent timer that saves state to disk, allowing you to start, stop, pause, and resume time tracking across terminal sessions. The tool supports multiple viewing modes including a standard status display (with formatted or raw output in seconds/minutes), a live full-screen view with keyboard controls, and specialized output for shell prompt integration.</span><br /> -<br /> -<span>The architecture is straightforward: it's a Go-based CLI application that persists timer state to the filesystem, enabling continuous tracking even when the program isn't actively running. Key features include basic timer controls (start/stop/continue/reset), flexible status reporting formats for automation, and fish shell integration that displays a color-coded timer icon and elapsed time directly in your prompt—making it effortless to keep track of how long you've been working without context switching.</span><br /> -<br /> -<a class='textlink' href='https://codeberg.org/snonux/timr'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/timr'>View on GitHub</a><br /> -<br /> -<span>---</span><br /> -<br /> <h3 style='display: inline' id='tasksamurai'>tasksamurai</h3><br /> <br /> <ul> @@ -278,7 +278,7 @@ <li>📈 Lines of Code: 6168</li> <li>📄 Lines of Documentation: 164</li> <li>📅 Development Period: 2025-06-19 to 2025-11-02</li> -<li>🔥 Recent Activity: 123.7 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 137.3 days (avg. age of last 42 commits)</li> <li>⚖️ License: BSD-2-Clause</li> <li>🏷️ Latest Release: v0.9.3 (2025-10-05)</li> <li>🎵 Vibe-Coded: This project has been vibe coded</li> @@ -306,7 +306,7 @@ <li>📈 Lines of Code: 13072</li> <li>📄 Lines of Documentation: 680</li> <li>📅 Development Period: 2024-01-18 to 2025-10-09</li> -<li>🔥 Recent Activity: 142.1 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 155.6 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> <li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li> @@ -334,7 +334,7 @@ <li>📈 Lines of Code: 4102</li> <li>📄 Lines of Documentation: 357</li> <li>📅 Development Period: 2024-05-04 to 2025-09-24</li> -<li>🔥 Recent Activity: 165.3 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 178.9 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.2.0 (2025-09-24)</li> </ul><br /> @@ -361,7 +361,7 @@ <li>📈 Lines of Code: 20091</li> <li>📄 Lines of Documentation: 5674</li> <li>📅 Development Period: 2020-01-09 to 2025-06-20</li> -<li>🔥 Recent Activity: 168.9 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 182.5 days (avg. age of last 42 commits)</li> <li>⚖️ License: Apache-2.0</li> <li>🏷️ Latest Release: v4.3.3 (2024-08-23)</li> <li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li> @@ -389,7 +389,7 @@ <li>📈 Lines of Code: 396</li> <li>📄 Lines of Documentation: 24</li> <li>📅 Development Period: 2025-04-18 to 2025-05-11</li> -<li>🔥 Recent Activity: 188.2 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 201.8 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.0.0 (2025-05-11)</li> </ul><br /> @@ -412,7 +412,7 @@ <li>📈 Lines of Code: 25762</li> <li>📄 Lines of Documentation: 3101</li> <li>📅 Development Period: 2008-05-15 to 2025-06-27</li> -<li>🔥 Recent Activity: 201.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 215.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> <li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li> @@ -438,7 +438,7 @@ <li>📈 Lines of Code: 33</li> <li>📄 Lines of Documentation: 3</li> <li>📅 Development Period: 2025-04-03 to 2025-04-03</li> -<li>🔥 Recent Activity: 214.2 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 227.7 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -461,7 +461,7 @@ <li>📈 Lines of Code: 1373</li> <li>📄 Lines of Documentation: 48</li> <li>📅 Development Period: 2024-12-05 to 2025-02-28</li> -<li>🔥 Recent Activity: 254.9 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 268.4 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -480,11 +480,11 @@ <ul> <li>💻 Languages: Shell (68.3%), CSS (28.4%), Config (1.9%), HTML (1.3%)</li> <li>📚 Documentation: Text (76.1%), Markdown (23.9%)</li> -<li>📊 Commits: 466</li> +<li>📊 Commits: 468</li> <li>📈 Lines of Code: 2285</li> <li>📄 Lines of Documentation: 1180</li> -<li>📅 Development Period: 2021-05-21 to 2025-08-31</li> -<li>🔥 Recent Activity: 300.2 days (avg. age of last 42 commits)</li> +<li>📅 Development Period: 2021-05-21 to 2025-11-06</li> +<li>🔥 Recent Activity: 293.0 days (avg. age of last 42 commits)</li> <li>⚖️ License: GPL-3.0</li> <li>🏷️ Latest Release: 3.0.0 (2024-10-01)</li> </ul><br /> @@ -507,7 +507,7 @@ <li>📈 Lines of Code: 1246</li> <li>📄 Lines of Documentation: 211</li> <li>📅 Development Period: 2023-04-17 to 2025-10-28</li> -<li>🔥 Recent Activity: 500.5 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 514.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.2.1 (2025-10-27)</li> </ul><br /> @@ -532,7 +532,7 @@ <li>📈 Lines of Code: 1133</li> <li>📄 Lines of Documentation: 78</li> <li>📅 Development Period: 2024-01-20 to 2025-09-13</li> -<li>🔥 Recent Activity: 520.8 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 534.3 days (avg. age of last 42 commits)</li> <li>⚖️ License: MIT</li> <li>🏷️ Latest Release: v0.0.4 (2025-09-13)</li> </ul><br /> @@ -559,7 +559,7 @@ <li>📈 Lines of Code: 40</li> <li>📄 Lines of Documentation: 3</li> <li>📅 Development Period: 2023-12-31 to 2025-08-11</li> -<li>🔥 Recent Activity: 554.5 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 568.0 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -582,7 +582,7 @@ <li>📈 Lines of Code: 2851</li> <li>📄 Lines of Documentation: 52</li> <li>📅 Development Period: 2023-08-27 to 2025-08-08</li> -<li>🔥 Recent Activity: 590.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 604.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: MIT</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -605,7 +605,7 @@ <li>📈 Lines of Code: 1525</li> <li>📄 Lines of Documentation: 15</li> <li>📅 Development Period: 2023-04-17 to 2023-11-19</li> -<li>🔥 Recent Activity: 817.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 831.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -629,7 +629,7 @@ <li>📈 Lines of Code: 51</li> <li>📄 Lines of Documentation: 26</li> <li>📅 Development Period: 2022-06-02 to 2024-04-20</li> -<li>🔥 Recent Activity: 882.4 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 895.9 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -653,7 +653,7 @@ <li>📈 Lines of Code: 822</li> <li>📄 Lines of Documentation: 106</li> <li>📅 Development Period: 2018-05-26 to 2025-11-01</li> -<li>🔥 Recent Activity: 1093.7 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 1107.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: v0.3.1 (2025-11-01)</li> </ul><br /> @@ -676,7 +676,7 @@ <li>📈 Lines of Code: 41</li> <li>📄 Lines of Documentation: 17</li> <li>📅 Development Period: 2020-01-30 to 2025-04-30</li> -<li>🔥 Recent Activity: 1175.9 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 1189.4 days (avg. age of last 42 commits)</li> <li>⚖️ License: GPL-3.0</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -699,7 +699,7 @@ <li>📈 Lines of Code: 342</li> <li>📄 Lines of Documentation: 39</li> <li>📅 Development Period: 2011-11-19 to 2022-04-02</li> -<li>🔥 Recent Activity: 1395.5 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 1409.0 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 0.5.0 (2022-02-21)</li> </ul><br /> @@ -714,48 +714,48 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='algorithms'>algorithms</h3><br /> +<h3 style='display: inline' id='foozone'>foo.zone</h3><br /> <br /> <ul> -<li>💻 Languages: Go (99.2%), Make (0.8%)</li> <li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 82</li> -<li>📈 Lines of Code: 1728</li> -<li>📄 Lines of Documentation: 18</li> -<li>📅 Development Period: 2020-07-12 to 2023-04-09</li> -<li>🔥 Recent Activity: 1546.6 days (avg. age of last 42 commits)</li> -<li>⚖️ License: Custom License</li> +<li>📊 Commits: 3214</li> +<li>📈 Lines of Code: 0</li> +<li>📄 Lines of Documentation: 23</li> +<li>📅 Development Period: 2021-05-21 to 2022-04-02</li> +<li>🔥 Recent Activity: 1575.7 days (avg. age of last 42 commits)</li> +<li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> <span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> <br /> -<span>This is a Go-based algorithms refresher repository implementing fundamental computer science data structures and algorithms. It serves as educational practice material covering four main areas: sorting (insertion, selection, shell, merge, quicksort with 3-way partitioning, and parallel variants), searching (binary search trees, red-black trees, hash tables, and elementary search), priority queues (heap-based and elementary implementations), and basic data structures like array lists.</span><br /> -<br /> -<span>The project is implemented in Go 1.19+ with comprehensive unit tests and benchmarking capabilities via Make targets, allowing developers to validate correctness and compare performance characteristics of different algorithmic approaches (e.g., parallel vs sequential sorting, heap vs elementary priority queues). The Makefile also includes profiling support for deeper performance analysis of specific algorithms.</span><br /> +<span>foo.zone: source code repository.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/algorithms'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/algorithms'>View on GitHub</a><br /> +<a class='textlink' href='https://codeberg.org/snonux/foo.zone'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/foo.zone'>View on GitHub</a><br /> <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='foozone'>foo.zone</h3><br /> +<h3 style='display: inline' id='algorithms'>algorithms</h3><br /> <br /> <ul> -<li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 3195</li> -<li>📈 Lines of Code: 0</li> -<li>📄 Lines of Documentation: 23</li> -<li>📅 Development Period: 2021-05-21 to 2022-04-02</li> -<li>🔥 Recent Activity: 1562.2 days (avg. age of last 42 commits)</li> -<li>⚖️ License: No license found</li> +<li>💻 Languages: Go (99.2%), Make (0.8%)</li> +<li>📚 Documentation: Text (90.3%), Markdown (9.7%)</li> +<li>📊 Commits: 82</li> +<li>📈 Lines of Code: 1682</li> +<li>📄 Lines of Documentation: 185</li> +<li>📅 Development Period: 2020-07-12 to 2023-04-02</li> +<li>🔥 Recent Activity: 1696.5 days (avg. age of last 42 commits)</li> +<li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> <span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> <br /> -<span>foo.zone: source code repository.</span><br /> +<span>This is a Go-based algorithms refresher repository implementing fundamental computer science data structures and algorithms. It serves as educational practice material covering four main areas: sorting (insertion, selection, shell, merge, quicksort with 3-way partitioning, and parallel variants), searching (binary search trees, red-black trees, hash tables, and elementary search), priority queues (heap-based and elementary implementations), and basic data structures like array lists.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/foo.zone'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/foo.zone'>View on GitHub</a><br /> +<span>The project is implemented in Go 1.19+ with comprehensive unit tests and benchmarking capabilities via Make targets, allowing developers to validate correctness and compare performance characteristics of different algorithmic approaches (e.g., parallel vs sequential sorting, heap vs elementary priority queues). The Makefile also includes profiling support for deeper performance analysis of specific algorithms.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/algorithms'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/algorithms'>View on GitHub</a><br /> <br /> <span>---</span><br /> <br /> @@ -768,7 +768,7 @@ <li>📈 Lines of Code: 51</li> <li>📄 Lines of Documentation: 69</li> <li>📅 Development Period: 2014-03-24 to 2022-04-23</li> -<li>🔥 Recent Activity: 2027.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 2041.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -788,7 +788,7 @@ <li>📊 Commits: 95</li> <li>📈 Lines of Code: 195</li> <li>📅 Development Period: 2013-03-22 to 2023-03-09</li> -<li>🔥 Recent Activity: 2242.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 2256.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: v1.0.0 (2023-04-29)</li> </ul><br /> @@ -812,7 +812,7 @@ <li>📈 Lines of Code: 12420</li> <li>📄 Lines of Documentation: 610</li> <li>📅 Development Period: 2018-03-01 to 2020-01-22</li> -<li>🔥 Recent Activity: 2569.1 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 2582.6 days (avg. age of last 42 commits)</li> <li>⚖️ License: Apache-2.0</li> <li>🏷️ Latest Release: 0.5.1 (2019-01-04)</li> </ul><br /> @@ -838,7 +838,7 @@ <li>📈 Lines of Code: 919</li> <li>📄 Lines of Documentation: 12</li> <li>📅 Development Period: 2015-01-02 to 2021-11-04</li> -<li>🔥 Recent Activity: 3077.8 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3091.3 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 1.1.3 (2015-01-02)</li> </ul><br /> @@ -862,7 +862,7 @@ <li>📈 Lines of Code: 18</li> <li>📄 Lines of Documentation: 49</li> <li>📅 Development Period: 2014-03-24 to 2021-11-05</li> -<li>🔥 Recent Activity: 3313.7 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3327.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -886,7 +886,7 @@ <li>📈 Lines of Code: 5360</li> <li>📄 Lines of Documentation: 789</li> <li>📅 Development Period: 2015-01-02 to 2021-11-05</li> -<li>🔥 Recent Activity: 3580.4 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3593.9 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 1.0.1 (2015-01-02)</li> </ul><br /> @@ -910,7 +910,7 @@ <li>📈 Lines of Code: 273</li> <li>📄 Lines of Documentation: 32</li> <li>📅 Development Period: 2015-09-29 to 2021-11-05</li> -<li>🔥 Recent Activity: 3584.5 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3598.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: Apache-2.0</li> <li>🏷️ Latest Release: 0 (2015-10-26)</li> </ul><br /> @@ -934,7 +934,7 @@ <li>📈 Lines of Code: 1839</li> <li>📄 Lines of Documentation: 412</li> <li>📅 Development Period: 2015-01-02 to 2021-11-05</li> -<li>🔥 Recent Activity: 3664.2 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3677.7 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 1.0.2 (2015-01-02)</li> </ul><br /> @@ -958,7 +958,7 @@ <li>📈 Lines of Code: 499</li> <li>📄 Lines of Documentation: 8</li> <li>📅 Development Period: 2015-05-24 to 2021-11-03</li> -<li>🔥 Recent Activity: 3674.9 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3688.4 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 0.1 (2015-06-01)</li> </ul><br /> @@ -980,7 +980,7 @@ <li>📊 Commits: 670</li> <li>📈 Lines of Code: 1675</li> <li>📅 Development Period: 2011-03-06 to 2018-12-22</li> -<li>🔥 Recent Activity: 3730.5 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3744.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.0.0 (2018-12-22)</li> </ul><br /> @@ -1004,7 +1004,7 @@ <li>📈 Lines of Code: 88</li> <li>📄 Lines of Documentation: 148</li> <li>📅 Development Period: 2015-06-18 to 2015-12-05</li> -<li>🔥 Recent Activity: 3778.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 3792.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -1030,7 +1030,7 @@ <li>📈 Lines of Code: 1681</li> <li>📄 Lines of Documentation: 539</li> <li>📅 Development Period: 2014-03-10 to 2021-11-03</li> -<li>🔥 Recent Activity: 4056.6 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4070.2 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 1.0.2 (2014-11-17)</li> </ul><br /> @@ -1054,7 +1054,7 @@ <li>📈 Lines of Code: 65</li> <li>📄 Lines of Documentation: 228</li> <li>📅 Development Period: 2013-03-22 to 2021-11-04</li> -<li>🔥 Recent Activity: 4111.1 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4124.6 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 0.0.0.0 (2013-03-22)</li> </ul><br /> @@ -1078,7 +1078,7 @@ <li>📈 Lines of Code: 136</li> <li>📄 Lines of Documentation: 96</li> <li>📅 Development Period: 2013-03-22 to 2021-11-05</li> -<li>🔥 Recent Activity: 4124.1 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4137.6 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 0.2.0 (2014-07-05)</li> </ul><br /> @@ -1102,7 +1102,7 @@ <li>📈 Lines of Code: 134</li> <li>📄 Lines of Documentation: 106</li> <li>📅 Development Period: 2013-03-22 to 2021-11-05</li> -<li>🔥 Recent Activity: 4131.5 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4145.1 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 0.1.5 (2014-06-22)</li> </ul><br /> @@ -1126,7 +1126,7 @@ <li>📈 Lines of Code: 493</li> <li>📄 Lines of Documentation: 26</li> <li>📅 Development Period: 2009-09-27 to 2021-11-02</li> -<li>🔥 Recent Activity: 4174.8 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4188.4 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 0.9.3 (2014-06-14)</li> </ul><br /> @@ -1150,7 +1150,7 @@ <li>📈 Lines of Code: 286</li> <li>📄 Lines of Documentation: 144</li> <li>📅 Development Period: 2013-03-22 to 2021-11-05</li> -<li>🔥 Recent Activity: 4179.9 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4193.4 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 0.4.3 (2014-06-16)</li> </ul><br /> @@ -1165,6 +1165,28 @@ <br /> <span>---</span><br /> <br /> +<h3 style='display: inline' id='loadbars'>loadbars</h3><br /> +<br /> +<ul> +<li>💻 Languages: Perl (97.4%), Make (2.6%)</li> +<li>📚 Documentation: Text (100.0%)</li> +<li>📊 Commits: 527</li> +<li>📈 Lines of Code: 1828</li> +<li>📄 Lines of Documentation: 200</li> +<li>📅 Development Period: 2010-11-05 to 2021-11-03</li> +<li>🔥 Recent Activity: 4213.7 days (avg. age of last 42 commits)</li> +<li>⚖️ License: No license found</li> +<li>🏷️ Latest Release: 0.7.5 (2014-06-22)</li> +</ul><br /> +<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> +<br /> +<span>loadbars: source code repository.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/loadbars'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/loadbars'>View on GitHub</a><br /> +<br /> +<span>---</span><br /> +<br /> <h3 style='display: inline' id='perl-poetry'>perl-poetry</h3><br /> <br /> <ul> @@ -1174,7 +1196,7 @@ <li>📈 Lines of Code: 191</li> <li>📄 Lines of Documentation: 8</li> <li>📅 Development Period: 2014-03-24 to 2014-03-24</li> -<li>🔥 Recent Activity: 4241.1 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4254.7 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -1196,7 +1218,7 @@ <li>📊 Commits: 7</li> <li>📈 Lines of Code: 80</li> <li>📅 Development Period: 2011-07-09 to 2015-01-13</li> -<li>🔥 Recent Activity: 4321.2 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4334.7 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -1220,7 +1242,7 @@ <li>📈 Lines of Code: 124</li> <li>📄 Lines of Documentation: 75</li> <li>📅 Development Period: 2010-11-05 to 2021-11-05</li> -<li>🔥 Recent Activity: 4361.8 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4375.4 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: 1.0.2 (2014-06-22)</li> </ul><br /> @@ -1235,28 +1257,6 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='loadbars'>loadbars</h3><br /> -<br /> -<ul> -<li>💻 Languages: Perl (97.4%), Make (2.6%)</li> -<li>📚 Documentation: Text (100.0%)</li> -<li>📊 Commits: 527</li> -<li>📈 Lines of Code: 1828</li> -<li>📄 Lines of Documentation: 100</li> -<li>📅 Development Period: 2010-11-05 to 2015-05-23</li> -<li>🔥 Recent Activity: 4391.9 days (avg. age of last 42 commits)</li> -<li>⚖️ License: No license found</li> -<li>🏷️ Latest Release: 0.7.5 (2014-06-22)</li> -</ul><br /> -<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> -<br /> -<span>loadbars: source code repository.</span><br /> -<br /> -<a class='textlink' href='https://codeberg.org/snonux/loadbars'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/loadbars'>View on GitHub</a><br /> -<br /> -<span>---</span><br /> -<br /> <h3 style='display: inline' id='perldaemon'>perldaemon</h3><br /> <br /> <ul> @@ -1264,7 +1264,7 @@ <li>📊 Commits: 110</li> <li>📈 Lines of Code: 614</li> <li>📅 Development Period: 2011-02-05 to 2022-04-21</li> -<li>🔥 Recent Activity: 4441.4 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4454.9 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.4 (2022-04-29)</li> </ul><br /> @@ -1288,7 +1288,7 @@ <li>📈 Lines of Code: 122</li> <li>📄 Lines of Documentation: 10</li> <li>📅 Development Period: 2011-01-27 to 2014-06-22</li> -<li>🔥 Recent Activity: 4772.4 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4785.9 days (avg. age of last 42 commits)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: v0.2 (2011-01-27)</li> </ul><br /> @@ -1312,7 +1312,7 @@ <li>📈 Lines of Code: 720</li> <li>📄 Lines of Documentation: 6</li> <li>📅 Development Period: 2008-06-21 to 2021-11-03</li> -<li>🔥 Recent Activity: 4835.1 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 4848.6 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v0.3 (2009-02-08)</li> </ul><br /> @@ -1329,30 +1329,6 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='ychat'>ychat</h3><br /> -<br /> -<ul> -<li>💻 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%)</li> -<li>📚 Documentation: Text (100.0%)</li> -<li>📊 Commits: 67</li> -<li>📈 Lines of Code: 27104</li> -<li>📄 Lines of Documentation: 109</li> -<li>📅 Development Period: 2008-05-15 to 2014-07-01</li> -<li>🔥 Recent Activity: 5436.1 days (avg. age of last 42 commits)</li> -<li>⚖️ License: GPL-2.0</li> -<li>🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)</li> -</ul><br /> -<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> -<br /> -<span>yChat is a high-performance, web-based chat server written in C++ that allows users to connect through standard web browsers without requiring special client software. It functions as a standalone HTTP server on a customizable port (default 2000), eliminating the need for Apache or other web servers, and uses only HTML, CSS, and JavaScript on the client side. The project was developed under the GNU GPL and designed for portability across POSIX-compliant systems including Linux, FreeBSD, and other UNIX variants.</span><br /> -<br /> -<span>The architecture emphasizes speed and scalability through several key design choices: multi-threaded POSIX implementation with thread pooling to efficiently handle concurrent users, hash maps for O(1) data lookups, and a smart garbage collection system that caches inactive user and room objects for quick reuse. It features MySQL database support for registered users, a modular plugin system through dynamically loadable modules, HTML template-based customization, XML configuration, and an ncurses-based administration interface with CLI support. The codebase can also be converted to yhttpd, a standalone web server subset. Performance benchmarks show it handling over 1000 requests/second while using minimal CPU resources, with the system supporting comprehensive logging, multi-language support, and Apache-compatible log formats.</span><br /> -<br /> -<a class='textlink' href='https://codeberg.org/snonux/ychat'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/ychat'>View on GitHub</a><br /> -<br /> -<span>---</span><br /> -<br /> <h3 style='display: inline' id='netcalendar'>netcalendar</h3><br /> <br /> <ul> @@ -1362,7 +1338,7 @@ <li>📈 Lines of Code: 17380</li> <li>📄 Lines of Documentation: 947</li> <li>📅 Development Period: 2009-02-07 to 2021-05-01</li> -<li>🔥 Recent Activity: 5465.8 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 5479.3 days (avg. age of last 42 commits)</li> <li>⚖️ License: GPL-2.0</li> <li>🏷️ Latest Release: v0.1 (2009-02-08)</li> </ul><br /> @@ -1381,6 +1357,30 @@ <br /> <span>---</span><br /> <br /> +<h3 style='display: inline' id='ychat'>ychat</h3><br /> +<br /> +<ul> +<li>💻 Languages: C++ (54.9%), C/C++ (23.0%), Shell (13.8%), Perl (2.5%), HTML (2.5%), Config (2.3%), Make (0.8%), CSS (0.2%)</li> +<li>📚 Documentation: Text (100.0%)</li> +<li>📊 Commits: 67</li> +<li>📈 Lines of Code: 67884</li> +<li>📄 Lines of Documentation: 127</li> +<li>📅 Development Period: 2008-05-15 to 2014-06-30</li> +<li>🔥 Recent Activity: 5499.6 days (avg. age of last 42 commits)</li> +<li>⚖️ License: GPL-2.0</li> +<li>🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)</li> +</ul><br /> +<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> +<br /> +<span>yChat is a high-performance, web-based chat server written in C++ that allows users to connect through standard web browsers without requiring special client software. It functions as a standalone HTTP server on a customizable port (default 2000), eliminating the need for Apache or other web servers, and uses only HTML, CSS, and JavaScript on the client side. The project was developed under the GNU GPL and designed for portability across POSIX-compliant systems including Linux, FreeBSD, and other UNIX variants.</span><br /> +<br /> +<span>The architecture emphasizes speed and scalability through several key design choices: multi-threaded POSIX implementation with thread pooling to efficiently handle concurrent users, hash maps for O(1) data lookups, and a smart garbage collection system that caches inactive user and room objects for quick reuse. It features MySQL database support for registered users, a modular plugin system through dynamically loadable modules, HTML template-based customization, XML configuration, and an ncurses-based administration interface with CLI support. The codebase can also be converted to yhttpd, a standalone web server subset. Performance benchmarks show it handling over 1000 requests/second while using minimal CPU resources, with the system supporting comprehensive logging, multi-language support, and Apache-compatible log formats.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/ychat'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/ychat'>View on GitHub</a><br /> +<br /> +<span>---</span><br /> +<br /> <h3 style='display: inline' id='hsbot'>hsbot</h3><br /> <br /> <ul> @@ -1388,7 +1388,7 @@ <li>📊 Commits: 80</li> <li>📈 Lines of Code: 601</li> <li>📅 Development Period: 2009-11-22 to 2011-10-17</li> -<li>🔥 Recent Activity: 5561.4 days (avg. age of last 42 commits)</li> +<li>🔥 Recent Activity: 5574.9 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -1403,50 +1403,53 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='fype'>fype</h3><br /> +<h3 style='display: inline' id='vs-sim'>vs-sim</h3><br /> <br /> <ul> -<li>💻 Languages: C (63.7%), C/C++ (25.3%), HTML (9.2%), Make (1.8%)</li> -<li>📚 Documentation: Text (100.0%)</li> -<li>📊 Commits: 99</li> -<li>📈 Lines of Code: 6450</li> -<li>📄 Lines of Documentation: 516</li> -<li>📅 Development Period: 2008-05-15 to 2014-06-30</li> -<li>🔥 Recent Activity: 5691.8 days (avg. age of last 42 commits)</li> +<li>💻 Languages: Java (98.8%), Shell (0.7%), XML (0.4%)</li> +<li>📚 Documentation: LaTeX (98.4%), Text (1.4%), Markdown (0.2%)</li> +<li>📊 Commits: 411</li> +<li>📈 Lines of Code: 16303</li> +<li>📄 Lines of Documentation: 2903</li> +<li>📅 Development Period: 2008-05-15 to 2021-05-01</li> +<li>🔥 Recent Activity: 5871.4 days (avg. age of last 42 commits)</li> <li>⚖️ License: Custom License</li> -<li>🧪 Status: Experimental (no releases yet)</li> +<li>🏷️ Latest Release: v1.0 (2008-08-24)</li> </ul><br /> <span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> <br /> -<span>Fype is a 32-bit scripting language designed as a fun, AWK-inspired alternative with a simpler syntax. It supports variables with automatic type conversion, functions, loops, control structures, and built-in operations for math, I/O, and system calls. A notable feature is its support for "synonyms" (references/aliases to variables and functions), along with both procedures (using the caller's namespace) and functions (with lexical scoping). The language uses a straightforward syntax with single-character comments (#) and statement-based execution terminated by semicolons.</span><br /> +<a href='showcase/vs-sim/image-1.jpg'><img alt='vs-sim screenshot' title='vs-sim screenshot' src='showcase/vs-sim/image-1.jpg' /></a><br /> <br /> -<span>The implementation uses a simple top-down parser with maximum lookahead of 1, interpreting code simultaneously as it parses, which means syntax errors are only caught at runtime. Written in C and compiled with GCC, it's designed for BSD systems (tested on FreeBSD 7.0) and uses NetBSD Make for building. The project is still unreleased and incomplete, but aims to eventually match AWK's capabilities while potentially adding modern features like function pointers and closures, though explicitly avoiding complexity like OOP, Unicode, or threading.</span><br /> +<span>VS-Sim is a Java-based open source simulator for distributed systems, designed to help students and researchers visualize and understand distributed computing concepts. Based on the roadmap, it appears to support simulating various distributed systems protocols including Lamport and vector clocks for logical time management, and potentially distributed file systems like NFS and AFS. The simulator features event-based simulation, logging capabilities, and a plugin architecture.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/fype'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/fype'>View on GitHub</a><br /> +<span>The project appears to be currently inactive, with the repository containing minimal source code at present. It was originally developed as part of academic work (referenced as "diplomarbeit.pdf" in the roadmap), likely for teaching distributed systems concepts through interactive simulation and protocol visualization.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/vs-sim'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/vs-sim'>View on GitHub</a><br /> <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='vs-sim'>vs-sim</h3><br /> +<h3 style='display: inline' id='fype'>fype</h3><br /> <br /> <ul> -<li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 411</li> -<li>📈 Lines of Code: 0</li> -<li>📄 Lines of Documentation: 7</li> -<li>📅 Development Period: 2008-05-15 to 2015-05-23</li> -<li>🔥 Recent Activity: 5922.4 days (avg. age of last 42 commits)</li> -<li>⚖️ License: No license found</li> -<li>🏷️ Latest Release: v1.0 (2008-08-24)</li> +<li>💻 Languages: C (71.2%), C/C++ (20.7%), HTML (6.6%), Make (1.5%)</li> +<li>📚 Documentation: Text (60.3%), LaTeX (39.7%)</li> +<li>📊 Commits: 99</li> +<li>📈 Lines of Code: 8954</li> +<li>📄 Lines of Documentation: 1432</li> +<li>📅 Development Period: 2008-05-15 to 2014-06-30</li> +<li>🔥 Recent Activity: 5961.6 days (avg. age of last 42 commits)</li> +<li>⚖️ License: Custom License</li> +<li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> <span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br /> <br /> -<span>VS-Sim is a Java-based open source simulator for distributed systems, designed to help students and researchers visualize and understand distributed computing concepts. Based on the roadmap, it appears to support simulating various distributed systems protocols including Lamport and vector clocks for logical time management, and potentially distributed file systems like NFS and AFS. The simulator features event-based simulation, logging capabilities, and a plugin architecture.</span><br /> +<span>Fype is a 32-bit scripting language designed as a fun, AWK-inspired alternative with a simpler syntax. It supports variables with automatic type conversion, functions, loops, control structures, and built-in operations for math, I/O, and system calls. A notable feature is its support for "synonyms" (references/aliases to variables and functions), along with both procedures (using the caller's namespace) and functions (with lexical scoping). The language uses a straightforward syntax with single-character comments (#) and statement-based execution terminated by semicolons.</span><br /> <br /> -<span>The project appears to be currently inactive, with the repository containing minimal source code at present. It was originally developed as part of academic work (referenced as "diplomarbeit.pdf" in the roadmap), likely for teaching distributed systems concepts through interactive simulation and protocol visualization.</span><br /> +<span>The implementation uses a simple top-down parser with maximum lookahead of 1, interpreting code simultaneously as it parses, which means syntax errors are only caught at runtime. Written in C and compiled with GCC, it's designed for BSD systems (tested on FreeBSD 7.0) and uses NetBSD Make for building. The project is still unreleased and incomplete, but aims to eventually match AWK's capabilities while potentially adding modern features like function pointers and closures, though explicitly avoiding complexity like OOP, Unicode, or threading.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/vs-sim'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/vs-sim'>View on GitHub</a><br /> +<a class='textlink' href='https://codeberg.org/snonux/fype'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/fype'>View on GitHub</a><br /> <p class="footer"> Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter 3.0.1-develop</a> | served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/relayd.8">relayd(8)</a>+<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> | diff --git a/about/showcase/debroid/image-1.png b/about/showcase/debroid/image-1.png index ba4ff7fe..77c8c2e0 100644 --- a/about/showcase/debroid/image-1.png +++ b/about/showcase/debroid/image-1.png @@ -27,12 +27,12 @@ <link rel="preconnect" href="https://github.githubassets.com" crossorigin> <link rel="preconnect" href="https://avatars.githubusercontent.com"> - <link crossorigin="anonymous" rel="preload" as="script" href="https://github.githubassets.com/assets/global-banner-disable-bd97b48d5503.js" /> + <link crossorigin="anonymous" rel="preload" as="script" href="https://github.githubassets.com/assets/global-banner-disable-54e442fb573b.js" /> <link rel="preload" href="https://github.githubassets.com/assets/mona-sans-14595085164a.woff2" as="font" type="font/woff2" crossorigin> - <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-44e67b0cd5d5.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-b51c2fae25e8.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-cb035ed575b8.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-99e9b1169976.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-44e67b0cd5d5.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-b51c2fae25e8.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-dadcba82130c.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-cdc36145225e.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-0ca195e3b5f3.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-f9fb5556a83f.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-cb035ed575b8.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-99e9b1169976.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-9541c4141757.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-bc604fc65912.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-384776200fd7.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-489c70dedd0a.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-1545a2e9e540.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-4c1792a987c3.css" /> + <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-8e973f836952.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-34b642d57214.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-4bce7af39e21.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-ad512d3e2f3b.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-8e973f836952.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-34b642d57214.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-54be93e666a7.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-8ae7edf5489c.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-84d50df427c0.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-a80873375146.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-4bce7af39e21.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-ad512d3e2f3b.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-d152d6cd6879.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-fa4060c1a9da.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-d7bad0fb00bb.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-4a0107c0f60c.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-045e6b6ac094.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-5de537db5e79.css" /> <style type="text/css"> :root { @@ -52,37 +52,37 @@ - <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_enable_snapshot_keyword","actions_image_version_event","alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","billing_hide_expired_credits","billing_split_pru_skus","billing_split_pru_skus","billing_unfiltered_discounts","client_version_header","codespaces_prebuild_region_target_update","contentful_lp_footnotes","copilot_agent_cli_public_preview","copilot_agent_task_list_v2","copilot_agent_tasks_btn_code_nav","copilot_agent_tasks_btn_code_view","copilot_agent_tasks_btn_code_view_lines","copilot_api_agentic_issue_marshal_yaml","copilot_api_github_draft_update_issue_skill","copilot_chat_agents_empty_state","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_skip_thread_create","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_deprecation_notice","copilot_features_raycast_logo","copilot_file_block_ref_matching","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_insights_column_chart_axis_legibility_fix","copilot_insights_public_preview","copilot_insights_usage_export_ndjson","copilot_no_floating_button","copilot_read_shared_conversation","copilot_security_alert_assignee_options","copilot_spaces_as_attachments","copilot_spaces_ga","copilot_spark_empty_state","copilot_spark_loading_webgl","copilot_spark_progressive_error_handling","copilot_spark_use_billing_headers","copilot_stable_conversation_view","copilot_swe_agent_progress_commands","copilot_swe_agent_use_subagents","copilot_workbench_agent_seed_tool","copilot_workbench_cache","copilot_workbench_preview_analytics","copilot_workbench_skip_repo_on_codespace","copilot_workbench_use_single_prompt","deployment_record_api","direct_to_salesforce","disable_dashboard_universe_2025_private_preview","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_2025_logged_out_batch_1","hyperspace_nudges_universe25","hyperspace_nudges_universe25_post_event","inp_reduced_threshold","insert_before_patch","issue_fields_report_usage","issues_copilot_cross_repo_assign","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_sticky_sidebar","kb_convert_to_space","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_mwl_filter_field_delimiter","new_traffic_page_banner","open_agent_session_in_vscode_insiders","pinned_issue_fields","primer_react_segmented_control_tooltip","primer_react_unified_portal_root","primer_react_use_styled_react_theming","react_fetch_graphql_validate_base_url","record_sso_banner_metrics","remove_child_patch","repos_insights_remove_new_url","sample_network_conn_type","scheduled_reminders_updated_limits","site_features_copilot_universe","site_homepage_collaborate_video","site_homepage_contentful","site_homepage_eyebrow_banner","site_homepage_universe_animations","site_msbuild_webgl_hero","spark_fix_rename","spark_force_push_after_checkout","spark_improve_image_upload","spark_kv_encocoded_keys","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-f3788027bd8d.js"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-1cc776af0381.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-468bf7cab607.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_stacktrace-parser_dist_stack-trace-parser_esm_js-node_modules_github_bro-2f4e04-280c10ec004d.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-b4e74adb6411.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-3eee64e5ddf0.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-9ab93471824e.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-ef89d23fcc0a.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-0d7d60-ad3a87b2f0eb.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-754f5b5e9e7e.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-665e70-ac788066c220.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-d41270eb61be.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-777ce2-9ec8c103bf42.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-9e1d42c09c62.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-91c24873dcb9.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-bb80ec-f11c694928ba.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-9012bef51135.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-c1896e-ba47f43192a8.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-9ba0881c72fb.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-8eb9b2209bcd.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_hotkey_dist_index_js-node_modules_github_hydro-analytics-client_d-502318-b6850e6a8b08.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-7154bb-4c81ec053a86.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_document-metadata_document-metadata_ts-packages_failbot_failbot_ts-06156f7d8d1a.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/packages_updatable-content_updatable-content_ts-38f5e2f7c2a7.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_details-6493f1-cecb020e2bb7.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_throttled-input_ts-047775-cfe8770908d1.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-d8c5bfe37d1d.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-debf59ec3fe9.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-ef6d0f-20d6767cecc0.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-d89a4ddd4532.js" defer="defer"></script> + <script type="application/json" id="client-env">{"locale":"en","featureFlags":["a11y_status_checks_ruleset","actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_enable_snapshot_keyword","actions_image_version_event","alternate_user_config_repo","api_insights_show_missing_data_banner","attestations_filtering","attestations_sorting","client_version_header","codespaces_prebuild_region_target_update","contentful_lp_footnotes","copilot_agent_cli_public_preview","copilot_agent_task_list_v2","copilot_agent_tasks_btn_code_nav","copilot_agent_tasks_btn_code_view","copilot_agent_tasks_btn_code_view_lines","copilot_agent_tasks_btn_repo","copilot_api_agentic_issue_marshal_yaml","copilot_api_draft_issues_with_dependencies","copilot_api_github_draft_update_issue_skill","copilot_chat_agents_empty_state","copilot_chat_attach_multiple_images","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_raycast_logo","copilot_file_block_ref_matching","copilot_free_to_paid_telem","copilot_ftp_hyperspace_upgrade_prompt","copilot_ftp_settings_upgrade","copilot_ftp_upgrade_to_pro_from_models","copilot_ftp_your_copilot_settings","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_insights_column_chart_axis_legibility_fix","copilot_insights_public_preview","copilot_insights_usage_export_ndjson","copilot_no_floating_button","copilot_org_policy_page_focus_mode","copilot_security_alert_assignee_options","copilot_share_active_subthread","copilot_spaces_as_attachments","copilot_spaces_ga","copilot_spark_empty_state","copilot_spark_loading_webgl","copilot_spark_progressive_error_handling","copilot_spark_use_billing_headers","copilot_stable_conversation_view","copilot_swe_agent_progress_commands","copilot_swe_agent_use_subagents","copilot_workbench_agent_seed_tool","copilot_workbench_agent_user_edit_awareness","copilot_workbench_cache","copilot_workbench_preview_analytics","copilot_workbench_use_single_prompt","deployment_record_api","direct_to_salesforce","disable_dashboard_universe_2025_private_preview","dotcom_chat_client_side_skills","failbot_report_error_react_apps_on_page","fetch_graphql_improved_error_serialization","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","global_search_multi_orgs","hpc_improve_dom_insertion_observer","hyperspace_2025_logged_out_batch_1","hyperspace_nudges_universe25","hyperspace_nudges_universe25_post_event","initial_per_page_pagination_updates","inp_reduced_threshold","insert_before_patch","issue_fields_report_usage","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_blur_item_picker_on_close","issues_react_bots_timeline_pagination","issues_react_prohibit_title_fallback","issues_react_remove_placeholders","issues_report_sidebar_interactions","issues_sticky_sidebar","item_picker_issue_type_tsq_migration","item_picker_label_tsq_migration","item_picker_search_cancellation","kb_convert_to_space","lifecycle_label_name_updates","link_contact_sales_swp_marketo","marketing_pages_search_explore_provider","mcp_registry_install","memex_default_issue_create_repository","memex_grouped_by_edit_route","memex_mwl_filter_field_delimiter","mission_control_use_body_html","new_traffic_page_banner","open_agent_session_in_vscode_stable","pinned_issue_fields","primer_react_segmented_control_tooltip","projects_assignee_max_limit","react_fetch_graphql_ignore_expected_errors","record_sso_banner_metrics","remove_child_patch","repos_insights_remove_new_url","ruleset_deletion_confirmation","sample_network_conn_type","scheduled_reminders_updated_limits","site_features_copilot_universe","site_homepage_collaborate_video","site_homepage_contentful","site_homepage_eyebrow_banner","site_homepage_universe_animations","site_msbuild_webgl_hero","spark_fix_rename","spark_force_push_after_checkout","spark_improve_image_upload","spark_kv_encocoded_keys","spark_show_data_access_on_publish","spark_sync_repository_after_iteration","viewscreen_sandbox","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"}</script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/high-contrast-cookie-1a011967750c.js"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-c0d7e050063d.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/913-ca2305638c53.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/6488-de87864e6818.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/environment-6bd9f830d320.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/11683-aa3d1ebe6648.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/43784-4652ae97a661.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/4712-809eac2badf7.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/81028-5b8c5e07a4fa.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/74911-6a311b93ee8e.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/91853-b5d2e5602241.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/78143-31968346cf4c.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/52430-c46e2de36eb2.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-5b3e77949adb.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-dcdab6fcfcb8.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/28546-ee41c9313871.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/17688-a9e16fb5ed13.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/2869-a4ba8f17edb3.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/70191-5122bf27bf3e.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/7332-9a7cba14a8ba.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/3200-a7d4487d8022.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/95964-b27baff007f7.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/89708-adb89ad4eedf.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/51519-dc0d4e14166a.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/7534-44b89d9287f7.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/96384-750ef5263abe.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/19718-676a65610616.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-72c6ef216daa.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/48011-5b6f71a93de7.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-eb21f5b0029d.js" defer="defer"></script> <title>Page not found · GitHub · GitHub</title> @@ -92,13 +92,13 @@ <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient> <meta name="route-controller" content="blob" data-turbo-transient> <meta name="route-action" content="show" data-turbo-transient> - <meta name="fetch-nonce" content="v2:d5e91dbe-6cdd-6b84-df6c-8eec3d8186e8"> + <meta name="fetch-nonce" content="v2:bb232dc1-3f10-0ebb-052b-aafba9b1f13d"> <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb"> - <meta name="request-id" content="ABF0:33AB88:150F4BB:110D954:69080BE8" data-pjax-transient="true"/><meta name="html-safe-nonce" content="98267c91378deb6d42ce9eabdd777741ded35fbb294947bfa8b34114bd7f6dfc" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQkYwOjMzQUI4ODoxNTBGNEJCOjExMEQ5NTQ6NjkwODBCRTgiLCJ2aXNpdG9yX2lkIjoiNjkyMTIwODE3OTk5MzM0OTA5NiIsInJlZ2lvbl9lZGdlIjoiZnJhIiwicmVnaW9uX3JlbmRlciI6ImZyYSJ9" data-pjax-transient="true"/><meta name="visitor-hmac" content="39b38857812d16c5ea2cace4f6d67d2803e20dd6c4b5de76d5beea8d88894bb1" data-pjax-transient="true"/> + <meta name="request-id" content="AB6C:3AE3C8:B142D:8ED54:6919DEDA" data-pjax-transient="true"/><meta name="html-safe-nonce" content="fd352624324617d18655b2cbb7b052cb2c0ca05d68942eb2383912a140648791" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQjZDOjNBRTNDODpCMTQyRDo4RUQ1NDo2OTE5REVEQSIsInZpc2l0b3JfaWQiOiI4MjY3MDA4Mzk4MDUyNjc5Mzg2IiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="4f4a36e3b91e537f2d27be1322ea52d04170eeb69dc75aed188ca331ee5a4456" data-pjax-transient="true"/> @@ -174,10 +174,10 @@ <meta name="expected-hostname" content="github.com"> - <meta http-equiv="x-pjax-version" content="9890aecdee21df493c1ea7e1fcff6415eb8cc0af6ed8c7ce9734fcd5fe65cf1a" data-turbo-track="reload"> + <meta http-equiv="x-pjax-version" content="5b4914921197b3702f1fb352e19c44a5f207b8a04a7db2fdfe0fb288ffea30d4" data-turbo-track="reload"> <meta http-equiv="x-pjax-csp-version" content="21a43568025709b66240454fc92d4f09335a96863f8ab1c46b4a07f6a5b67102" data-turbo-track="reload"> <meta http-equiv="x-pjax-css-version" content="64aa48ca69ddc4d1267863e96c8a5c11e0cb33842931f16e1441b54a84bcc1ad" data-turbo-track="reload"> - <meta http-equiv="x-pjax-js-version" content="b390268bacc1336925a16a0d32843839c3db64b65cf390fb0f19a7510eee3e4f" data-turbo-track="reload"> + <meta http-equiv="x-pjax-js-version" content="a5c4545150b46df9e5c9779d08059514e8f37741d422b687916e43f97a161da7" data-turbo-track="reload"> <meta name="turbo-cache-control" content="no-preview" data-turbo-transient=""> @@ -201,7 +201,7 @@ <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> - <meta name="release" content="6f0a50c83824a7b7b3ed4ac8a758c063075591b0"> + <meta name="release" content="22a3c54b60e2433cd9de7a5b3dced0c6838d93c7"> <meta name="ui-target" content="full"> <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000"> @@ -216,7 +216,7 @@ </head> - <body class="logged-out env-production page-responsive min-height-full d-flex flex-column" style="word-wrap: break-word;"> + <body class="logged-out env-production page-responsive min-height-full d-flex flex-column" style="word-wrap: break-word;" > <div data-turbo-body class="logged-out env-production page-responsive min-height-full d-flex flex-column" style="word-wrap: break-word;"> @@ -229,8 +229,8 @@ <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span> </span> - <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.5e7f07b3b8c1e951002c.module.css" /> -<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.2de9c7d6456a311fce49.module.css" /> + <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.2ed7297523f7a189873b.module.css" /> +<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.29aaeaafa90f007c6f61.module.css" /> <react-partial partial-name="keyboard-shortcuts-dialog" @@ -252,9 +252,9 @@ -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_gsap_index_js-6265bea06e74.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-dc050877d1bf.js" defer="defer"></script> -<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-917229b8a853.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/21481-a66c6eab7bbf.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/85110-f7be2f54525a.js" defer="defer"></script> +<script crossorigin="anonymous" type="application/javascript" src="https://github.githubassets.com/assets/sessions-8cc3729f6e8d.js" defer="defer"></script> <header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark> <h2 class="sr-only">Navigation Menu</h2> @@ -294,14 +294,14 @@ </a> <div class="AppHeader-appearanceSettings"> <react-partial-anchor> - <button data-target="react-partial-anchor.anchor" id="icon-button-e0f7bc70-090b-4f96-9006-ae6e5da6289e" aria-labelledby="tooltip-55026fd4-974b-455f-a70b-74866c4e9b3f" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual"> + <button data-target="react-partial-anchor.anchor" id="icon-button-69160ffe-4431-481a-b8db-27d709f5b98b" aria-labelledby="tooltip-710f4eef-2e0b-4960-a6d2-069776df4448" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual"> <path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path> </svg> -</button><tool-tip id="tooltip-55026fd4-974b-455f-a70b-74866c4e9b3f" for="icon-button-e0f7bc70-090b-4f96-9006-ae6e5da6289e" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip> +</button><tool-tip id="tooltip-710f4eef-2e0b-4960-a6d2-069776df4448" for="icon-button-69160ffe-4431-481a-b8db-27d709f5b98b" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip> <template data-target="react-partial-anchor.template"> - <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.5e7f07b3b8c1e951002c.module.css" /> -<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" /> + <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.2ed7297523f7a189873b.module.css" /> +<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.753d458774a2f782559b.module.css" /> <react-partial partial-name="appearance-settings" @@ -1060,7 +1060,7 @@ -<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="H39UR3xE6Yi7LIQP0cU_3jwFLddyPikFr1RTHWRry1E-6iXZazxdrcmjd1h-EQambNUpSv58tGBvn6BZRBYHCQ" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true"> +<qbsearch-input class="search-input" data-scope="owner:buetow" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="SWFWPA3pETroz3T9J4em4Rb3cXLe15Xxn5A6Bstn3jsRjtDUHUiBIVHHNWqb0MM5lHzM6J2BK9C7zMsnWhGODQ" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="" data-current-org="" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true"> <div class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded" data-action="click:qbsearch-input#searchInputContainerClicked" @@ -1124,7 +1124,7 @@ ></div> <div class="QueryBuilder-InputWrapper"> <div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div> - <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-9e7fb537-2c3c-4ba6-bda4-2c21f3254fca" data-target="query-builder.input" data-action=" + <input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-325fac4a-ee7f-4f0a-823e-44060bef3257" data-target="query-builder.input" data-action=" input:query-builder#inputChange blur:query-builder#inputBlur keydown:query-builder#inputKeydown @@ -1362,7 +1362,7 @@ tabindex="-1" ></ul> </div> - <div class="FormControl-inlineValidation" id="validation-9e7fb537-2c3c-4ba6-bda4-2c21f3254fca" hidden="hidden"> + <div class="FormControl-inlineValidation" id="validation-325fac4a-ee7f-4f0a-823e-44060bef3257" hidden="hidden"> <span class="FormControl-inlineValidation--visual"> <svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill"> <path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path> @@ -1403,7 +1403,7 @@ </div> <scrollable-region data-labelled-by="feedback-dialog-title"> - <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="SprBCrqqI4A207YUc3P+bt4Qi6v/ygZbtkx1Y1yTkizGGaGVM5h21+Q9cSKAdbUBgUqcd2dcZvym6bRMB0kQwQ==" /> + <div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="FNP3v92uI/gFjF9ympJKL/vHXCiidd2IyeEMqTOhCGGax+hNz7zsrOt67dm4pH6EnA867OBsNsvOQKYUIGidGA==" /> <p>We read every piece of feedback, and take your input very seriously.</p> <textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea> <input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox"> @@ -1441,7 +1441,7 @@ <div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm"> - <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="n+Eptz32xIX5zE2wImtLCWbTZ5wPmzUaFSnLSfF1WG52LjwVThWPjXd14wNw9VKwi8BFJc2izu2wAjSITtVYCA==" /> + <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="35Amt5WiN1Qjoeo4zF5nkTSEDINwFw6sSQaLuLZOW7Vaov9DR/ahNKa7ouOe1pnaRyu911Lk1+/RXMMl9flr5Q==" /> <div data-target="custom-scopes.customScopesModalDialogFlash"></div> <input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField"> @@ -1459,7 +1459,7 @@ placeholder="github-ruby" required maxlength="50"> - <input type="hidden" data-csrf="true" value="lMKxQqXGdLR8D9by9512UiffHAm99miZtrX63BNPOzlChH0XfX/Aq22IsbMwf2yUskiivEGbPJVZtgJSyn0/Mw==" /> + <input type="hidden" data-csrf="true" value="ehmlQCvuzNS5R/Ycc8rZwJsppFkDNZYcJS82/5wYg9SuRX5+CV1FdA75PsrtyvX5T66GDmLipIUaewSvP4Lj/Q==" /> </auto-check> </div> @@ -1514,7 +1514,7 @@ <h4 data-view-component="true" class="color-fg-default mb-2"> Sign in to GitHub </h4> -<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="lhDxKFqYG6JiizKbt3DrM9FOZrjqqKSC+wZTdAvdebg2TLibk+bI596Si11wPNyu4bKi0/2axOH2m9NSjGh48g==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" /> +<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-turbo="false" action="/session" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="ohxdd7CiAzKEBsLH2G+aofIna5lSNwD+79z4EYhgBoMErSLqCQxMfJGwCfnQTzVjtkSPQpGKsjWysoD7yN1Qig==" /> <input type="hidden" name="add_account" id="add_account" autocomplete="off" class="form-control" /> <label for="login_field"> Username or email address @@ -1536,9 +1536,9 @@ <input type="hidden" name="allow_signup" id="allow_signup" autocomplete="off" class="form-control" /> <input type="hidden" name="client_id" id="client_id" autocomplete="off" class="form-control" /> <input type="hidden" name="integration" id="integration" autocomplete="off" class="form-control" /> -<input class="form-control" type="text" name="required_field_759b" hidden="hidden" /> -<input class="form-control" type="hidden" name="timestamp" value="1762135017095" /> -<input class="form-control" type="hidden" name="timestamp_secret" value="4c46cad419fd18795908de5e87b0ec4a2520a01243eaf94cf05b9fe6cdb98c8d" /> +<input class="form-control" type="text" name="required_field_8a0c" hidden="hidden" /> +<input class="form-control" type="hidden" name="timestamp" value="1763303130489" /> +<input class="form-control" type="hidden" name="timestamp_secret" value="c5ae33b801b3edaaa79e89907595a5031a5cd9fa9bfb0d55577ac58a569c1031" /> <input type="submit" name="commit" value="Sign in" class="btn btn-primary btn-block js-sign-in-button" data-disable-with="Signing in…" data-signin-label="Sign in" data-sso-label="Sign in with your identity provider" development="false" disable-emu-sso="false" /> @@ -1565,14 +1565,14 @@ <div class="AppHeader-appearanceSettings"> <react-partial-anchor> - <button data-target="react-partial-anchor.anchor" id="icon-button-fee17bea-67fd-434b-a6a7-caffb31a1fda" aria-labelledby="tooltip-2e054135-7ee7-4af9-8a3d-c6777a64a2e4" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual"> + <button data-target="react-partial-anchor.anchor" id="icon-button-e1f09dc8-82a4-49ac-981a-9c52aa29c2f2" aria-labelledby="tooltip-c553ac69-f6d2-4897-9bd9-44b722efc6f5" type="button" disabled="disabled" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium AppHeader-button HeaderMenu-link border cursor-wait"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-sliders Button-visual"> <path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path> </svg> -</button><tool-tip id="tooltip-2e054135-7ee7-4af9-8a3d-c6777a64a2e4" for="icon-button-fee17bea-67fd-434b-a6a7-caffb31a1fda" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip> +</button><tool-tip id="tooltip-c553ac69-f6d2-4897-9bd9-44b722efc6f5" for="icon-button-e1f09dc8-82a4-49ac-981a-9c52aa29c2f2" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Appearance settings</tool-tip> <template data-target="react-partial-anchor.template"> - <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.5e7f07b3b8c1e951002c.module.css" /> -<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.6c63a6de228d6520804d.module.css" /> + <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.2ed7297523f7a189873b.module.css" /> +<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/appearance-settings.753d458774a2f782559b.module.css" /> <react-partial partial-name="appearance-settings" @@ -1606,10 +1606,10 @@ <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span> - <button id="icon-button-259021ef-897f-41ab-a65b-1079b1e21f1c" aria-labelledby="tooltip-db96fde7-49b6-4d2c-aca0-3acda83c0892" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> + <button id="icon-button-0dceafc0-1e4c-47f9-90a6-2038a03d7c45" aria-labelledby="tooltip-a5bd6334-f9cd-4f5d-bf5a-e5a0cded4731" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg> -</button><tool-tip id="tooltip-db96fde7-49b6-4d2c-aca0-3acda83c0892" for="icon-button-259021ef-897f-41ab-a65b-1079b1e21f1c" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> +</button><tool-tip id="tooltip-a5bd6334-f9cd-4f5d-bf5a-e5a0cded4731" for="icon-button-0dceafc0-1e4c-47f9-90a6-2038a03d7c45" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip> @@ -1728,7 +1728,7 @@ <h3 class="h5 mt-4 mb-0" id="subscribe-to-newsletter">Subscribe to our developer newsletter</h3> <p class="f5 color-fg-muted mb-3">Get tips, technical guides, and best practices. Twice a month.</p> - <a class="btn-mktg mb-4 btn-muted-mktg" data-analytics-event="{"category":"Subscribe","action":"click to Subscribe","label":"ref_cta:Subscribe;"}" href="https://resources.github.com/newsletter/"> + <a class="btn-mktg mb-4 btn-muted-mktg" data-analytics-event="{"category":"Subscribe","action":"click to Subscribe","label":"ref_cta:Subscribe;"}" href="https://github.com/newsletter"> Subscribe diff --git a/about/technical-books.txt b/about/technical-books.txt index dc02365d..bf3b7a57 100644 --- a/about/technical-books.txt +++ b/about/technical-books.txt @@ -1,3 +1,4 @@ +* Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook * Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook * 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications * The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton |
