summaryrefslogtreecommitdiff
path: root/about
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-10-31 20:27:50 +0200
committerPaul Buetow <paul@buetow.org>2025-10-31 20:27:50 +0200
commitd73bcf391dee93f4bf1c11cc017f1bcf3e2a2af3 (patch)
tree502064910b8913e472f476fddafa265db03795e8 /about
parentf224a7412c2887ba4271055d104da208167b10b4 (diff)
Update content for md
Diffstat (limited to 'about')
-rw-r--r--about/resources.md202
-rw-r--r--about/showcase.md583
-rw-r--r--about/showcase/debroid/image-1.png66
3 files changed, 403 insertions, 448 deletions
diff --git a/about/resources.md b/about/resources.md
index a6579767..76149ef8 100644
--- a/about/resources.md
+++ b/about/resources.md
@@ -35,109 +35,109 @@ You won't find any links on this site because, over time, the links will break.
In random order:
-* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
-* Java ist auch eine Insel; Christian Ullenboom;
-* Leanring eBPF; Liz Rice; O'Reilly
-* Raku Fundamentals; Moritz Lenz; Apress
-* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
-* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
-* Systemprogrammierung in Go; Frank Müller; dpunkt
-* Site Reliability Engineering; How Google runs production systems; O'Reilly
-* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
-* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
-* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
-* The Pragmatic Programmer; David Thomas; Addison-Wesley
+* Perl New Features; Joshua McAdams, brian d foy; Perl School
* The Docker Book; James Turnbull; Kindle
-* Higher Order Perl; Mark Dominus; Morgan Kaufmann
-* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
-* Concurrency in Go; Katherine Cox-Buday; O'Reilly
+* Data Science at the Command Line; Jeroen Janssens; O'Reilly
+* Raku Fundamentals; Moritz Lenz; Apress
+* Funktionale Programmierung; Peter Pepper; Springer
* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
-* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
-* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
+* Effective awk programming; Arnold Robbins; O'Reilly
* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
-* Data Science at the Command Line; Jeroen Janssens; O'Reilly
-* The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress
-* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
-* Developing Games in Java; David Brackeen and others...; New Riders
-* Polished Ruby Programming; Jeremy Evans; Packt Publishing
* DNS and BIND; Cricket Liu; O'Reilly
+* Higher Order Perl; Mark Dominus; Morgan Kaufmann
+* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
-* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
-* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
+* Polished Ruby Programming; Jeremy Evans; Packt Publishing
* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
-* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
-* Perl New Features; Joshua McAdams, brian d foy; Perl School
+* Developing Games in Java; David Brackeen and others...; New Riders
+* Concurrency in Go; Katherine Cox-Buday; O'Reilly
* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
-* Modern Perl; Chromatic ; Onyx Neon Press
+* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* C++ Programming Language; Bjarne Stroustrup;
+* Effective Java; Joshua Bloch; Addison-Wesley Professional
* Ultimate Go Notebook; Bill Kennedy
-* Terraform Cookbook; Mikael Krief; Packt Publishing
+* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
+* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
+* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
+* Leanring eBPF; Liz Rice; O'Reilly
+* Site Reliability Engineering; How Google runs production systems; O'Reilly
+* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
+* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
+* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+* Systemprogrammierung in Go; Frank Müller; dpunkt
+* Terraform Cookbook; Mikael Krief; Packt Publishing
+* Java ist auch eine Insel; Christian Ullenboom;
+* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
+* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
+* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
+* The Pragmatic Programmer; David Thomas; Addison-Wesley
+* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+* Modern Perl; Chromatic ; Onyx Neon Press
+* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
* Raku Recipes; J.J. Merelo; Apress
-* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
+* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
+* 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
* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
-* C++ Programming Language; Bjarne Stroustrup;
-* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
-* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-* Effective Java; Joshua Bloch; Addison-Wesley Professional
-* Funktionale Programmierung; Peter Pepper; Springer
-* Effective awk programming; Arnold Robbins; O'Reilly
## Technical references
I didn't read them from the beginning to the end, but I am using them to look up things. The books are in random order:
-* Relayd and Httpd Mastery; Michael W Lucas
-* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
-* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
+* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
-* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
-* Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
* The Linux Programming Interface; Michael Kerrisk; No Starch Press
-* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
+* Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
+* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
+* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
+* Relayd and Httpd Mastery; Michael W Lucas
+* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
## Self-development and soft-skills books
In random order:
-* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
-* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
-* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
-* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
-* Getting Things Done; David Allen
* The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
-* So Good They Can't Ignore You; Cal Newport; Business Plus
-* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
-* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
-* Slow Productivity; Cal Newport; Penguin Random House
-* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
-* Atomic Habits; James Clear; Random House Business
-* The Joy of Missing Out; Christina Crook; New Society Publishers
-* Meditation for Mortals, Oliver Burkeman, Audiobook
-* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
-* Soft Skills; John Sommez; Manning Publications
+* Getting Things Done; David Allen
* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
-* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
-* Digital Minimalism; Cal Newport; Portofolio Penguin
-* Eat That Frog!; Brian Tracy; Hodder Paperbacks
+* Atomic Habits; James Clear; Random House Business
+* The Bullet Journal Method; Ryder Carroll; Fourth Estate
+* The Good Enough Job; Simone Stolzoff; Ebury Edge
+* The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook
+* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
+* Influence without Authority; A. Cohen, D. Bradford; Wiley
+* Slow Productivity; Cal Newport; Penguin Random House
+* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
-* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
+* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
* The Power of Now; Eckhard Tolle; Yellow Kite
-* The Bullet Journal Method; Ryder Carroll; Fourth Estate
-* Ultralearning; Anna Laurent; Self-published via Amazon
* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
+* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
+* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* 101 Essays that change the way you think; Brianna Wiest; Audiobook
* Ultralearning; Scott Young; Thorsons
-* Stop starting, start finishing; Arne Roock; Lean-Kanban University
-* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
+* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
+* Digital Minimalism; Cal Newport; Portofolio Penguin
+* The Joy of Missing Out; Christina Crook; New Society Publishers
* Deep Work; Cal Newport; Piatkus
-* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
-* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
-* The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook
-* The Good Enough Job; Simone Stolzoff; Ebury Edge
+* So Good They Can't Ignore You; Cal Newport; Business Plus
+* Stop starting, start finishing; Arne Roock; Lean-Kanban University
+* Ultralearning; Anna Laurent; Self-published via Amazon
+* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
+* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
+* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
+* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
+* Eat That Frog!; Brian Tracy; Hodder Paperbacks
+* Soft Skills; John Sommez; Manning Publications
* Eat That Frog; Brian Tracy
-* Influence without Authority; A. Cohen, D. Bradford; Wiley
-* 101 Essays that change the way you think; Brianna Wiest; Audiobook
+* Meditation for Mortals, Oliver Burkeman, Audiobook
+* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
[Here are notes of mine for some of the books](../notes/index.md)
@@ -145,30 +145,30 @@ In random order:
Some of these were in-person with exams; others were online learning lectures only. In random order:
-* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
-* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
-* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
-* Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
-* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
+* Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
+* MySQL Deep Dive Workshop; 2-day on-site training
* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
-* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
* AWS Immersion Day; Amazon; 1-day interactive online training
+* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
+* Protocol buffers; O'Reilly Online
+* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
* Scripting Vim; Damian Conway; O'Reilly Online
* Apache Tomcat Best Practises; 3-day on-site training
-* Functional programming lecture; Remote University of Hagen
+* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
-* MySQL Deep Dive Workshop; 2-day on-site training
-* Protocol buffers; O'Reilly Online
+* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
+* Functional programming lecture; Remote University of Hagen
+* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
## Technical guides
These are not whole books, but guides (smaller or larger) which I found very useful. in random order:
+* Advanced Bash-Scripting Guide
* How CPUs work at https://cpu.land
* Raku Guide at https://raku.guide
-* Advanced Bash-Scripting Guide
## Podcasts
@@ -176,58 +176,58 @@ These are not whole books, but guides (smaller or larger) which I found very use
In random order:
-* Fork Around And Find Out
-* The Pragmatic Engineer Podcast
-* The Changelog Podcast(s)
+* Maintainable
+* Pratical AI
* The ProdCast (Google SRE Podcast)
+* Wednesday Wisdom
* Cup o' Go [Golang]
+* Fork Around And Find Out
+* Deep Questions with Cal Newport
+* Dev Interrupted
* Modern Mentor
-* Maintainable
* BSD Now [BSD]
-* Deep Questions with Cal Newport
* Fallthrough [Golang]
+* The Changelog Podcast(s)
+* The Pragmatic Engineer Podcast
* Backend Banter
-* Wednesday Wisdom
* Hidden Brain
-* Dev Interrupted
-* Pratical AI
### Podcasts I liked
I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.
-* Java Pub House
-* Modern Mentor
* CRE: Chaosradio Express [german]
* FLOSS weekly
-* Ship It (predecessor of Fork Around And Find Out)
+* Modern Mentor
* Go Time (predecessor of fallthrough)
+* Java Pub House
+* Ship It (predecessor of Fork Around And Find Out)
## Newsletters I like
This is a mix of tech and non-tech newsletters I am subscribed to. In random order:
-* byteSizeGo
-* The Imperfectionist
-* Golang Weekly
+* VK Newsletter
+* The Valuable Dev
* Monospace Mentor
+* Applied Go Weekly Newsletter
* The Pragmatic Engineer
-* The Valuable Dev
-* Andreas Brandhorst Newsletter (Sci-Fi author)
+* Golang Weekly
* Ruby Weekly
* Register Spill
-* Applied Go Weekly Newsletter
+* byteSizeGo
* Changelog News
-* VK Newsletter
+* Andreas Brandhorst Newsletter (Sci-Fi author)
+* The Imperfectionist
## Magazines I like(d)
This is a mix of tech I like(d). I may not be a current subscriber, but now and then, I buy an issue. In random order:
-* Linux User
-* LWN (online only)
* freeX (not published anymore)
* Linux Magazine
+* Linux User
+* LWN (online only)
# Formal education
diff --git a/about/showcase.md b/about/showcase.md
index 9199ac4e..3c0904a6 100644
--- a/about/showcase.md
+++ b/about/showcase.md
@@ -1,6 +1,6 @@
# Project Showcase
-Generated on: 2025-10-24
+Generated on: 2025-10-31
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.
@@ -10,9 +10,9 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ Overall Statistics](#overall-statistics)
* [⇢ ⇢ Projects](#projects)
* [⇢ ⇢ ⇢ yoga](#yoga)
-* [⇢ Yoga](#yoga)
* [⇢ ⇢ ⇢ conf](#conf)
* [⇢ ⇢ ⇢ hexai](#hexai)
+* [⇢ ⇢ ⇢ foo.zone](#foozone)
* [⇢ ⇢ ⇢ foostats](#foostats)
* [⇢ ⇢ ⇢ gitsyncer](#gitsyncer)
* [⇢ ⇢ ⇢ totalrecall](#totalrecall)
@@ -26,20 +26,19 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ ⇢ sillybench](#sillybench)
* [⇢ ⇢ ⇢ rcm](#rcm)
* [⇢ ⇢ ⇢ gemtexter](#gemtexter)
+* [⇢ ⇢ ⇢ gogios](#gogios)
* [⇢ ⇢ ⇢ quicklogger](#quicklogger)
* [⇢ ⇢ ⇢ docker-radicale-server](#docker-radicale-server)
* [⇢ ⇢ ⇢ terraform](#terraform)
-* [⇢ ⇢ ⇢ gogios](#gogios)
* [⇢ ⇢ ⇢ gorum](#gorum)
* [⇢ ⇢ ⇢ guprecords](#guprecords)
* [⇢ ⇢ ⇢ randomjournalpage](#randomjournalpage)
* [⇢ ⇢ ⇢ sway-autorotate](#sway-autorotate)
+* [⇢ ⇢ ⇢ photoalbum](#photoalbum)
* [⇢ ⇢ ⇢ geheim](#geheim)
* [⇢ ⇢ ⇢ algorithms](#algorithms)
-* [⇢ ⇢ ⇢ foo.zone](#foozone)
* [⇢ ⇢ ⇢ perl-c-fibonacci](#perl-c-fibonacci)
* [⇢ ⇢ ⇢ ioriot](#ioriot)
-* [⇢ ⇢ ⇢ photoalbum](#photoalbum)
* [⇢ ⇢ ⇢ staticfarm-apache-handlers](#staticfarm-apache-handlers)
* [⇢ ⇢ ⇢ dyndns](#dyndns)
* [⇢ ⇢ ⇢ mon](#mon)
@@ -61,8 +60,8 @@ This page showcases my side projects, providing an overview of what each project
* [⇢ ⇢ ⇢ perldaemon](#perldaemon)
* [⇢ ⇢ ⇢ awksite](#awksite)
* [⇢ ⇢ ⇢ jsmstrade](#jsmstrade)
-* [⇢ ⇢ ⇢ netcalendar](#netcalendar)
* [⇢ ⇢ ⇢ ychat](#ychat)
+* [⇢ ⇢ ⇢ netcalendar](#netcalendar)
* [⇢ ⇢ ⇢ hsbot](#hsbot)
* [⇢ ⇢ ⇢ fype](#fype)
* [⇢ ⇢ ⇢ vs-sim](#vs-sim)
@@ -70,11 +69,11 @@ This page showcases my side projects, providing an overview of what each project
## Overall Statistics
* 📦 Total Projects: 56
-* 📊 Total Commits: 11,247
-* 📈 Total Lines of Code: 211,790
-* 📄 Total Lines of Documentation: 23,887
-* 💻 Languages: Go (40.3%), Java (19.1%), C (9.6%), Perl (7.6%), HTML (5.2%), C/C++ (3.9%), Shell (3.3%), C++ (2.4%), Config (1.4%), Ruby (1.3%), HCL (1.3%), YAML (0.9%), Python (0.8%), Make (0.7%), CSS (0.6%), Raku (0.4%), JSON (0.4%), XML (0.3%), Haskell (0.3%), TOML (0.1%)
-* 📚 Documentation: Text (50.2%), Markdown (47.7%), LaTeX (2.1%)
+* 📊 Total Commits: 11,284
+* 📈 Total Lines of Code: 276,238
+* 📄 Total Lines of Documentation: 53,986
+* 💻 Languages: Go (31.0%), Java (14.6%), C++ (13.5%), Shell (7.7%), C/C++ (7.5%), C (7.3%), Perl (6.4%), HTML (4.6%), Config (1.7%), Ruby (1.0%), HCL (1.0%), YAML (0.7%), Make (0.7%), Python (0.6%), CSS (0.5%), Raku (0.3%), JSON (0.3%), XML (0.2%), Haskell (0.2%), TOML (0.1%)
+* 📚 Documentation: Markdown (76.6%), Text (22.4%), LaTeX (0.9%)
* 🎵 Vibe-Coded Projects: 4 out of 56 (7.1%)
* 🤖 AI-Assisted Projects (including vibe-coded): 10 out of 56 (17.9% AI-assisted, 82.1% human-only)
* 🚀 Release Status: 36 released, 20 experimental (64.3% with releases, 35.7% experimental)
@@ -85,19 +84,21 @@ This page showcases my side projects, providing an overview of what each project
* 💻 Languages: Go (100.0%)
* 📚 Documentation: Markdown (100.0%)
-* 📊 Commits: 11
-* 📈 Lines of Code: 3376
+* 📊 Commits: 12
+* 📈 Lines of Code: 3408
* 📄 Lines of Documentation: 82
-* 📅 Development Period: 2025-10-01 to 2025-10-12
-* 🔥 Recent Activity: 18.3 days (avg. age of last 42 commits)
+* 📅 Development Period: 2025-10-01 to 2025-10-24
+* 🔥 Recent Activity: 24.2 days (avg. age of last 42 commits)
* ⚖️ License: No license found
-* 🏷️ Latest Release: v0.2.5 (2025-10-12)
+* 🏷️ Latest Release: v0.3.0 (2025-10-24)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
[![yoga screenshot](showcase/yoga/image-1.png "yoga screenshot")](showcase/yoga/image-1.png)
-# Yoga
+Yoga is a terminal-based video browser designed for managing and playing local yoga video collections. It scans a directory (defaulting to `~/Yoga`) for common video formats, probes and caches their durations, and provides a keyboard-driven interface for quickly filtering videos by name, duration range, or tags. Users can sort by name, length, or age, and launch videos directly in VLC with optional crop settings—all without leaving the terminal. The tool is optimized for quick navigation and playback, making it easy to find and start a specific practice session in seconds.
+
+The project is implemented in Go with a TUI interface, organized around a clean `cmd/yoga` entry point that wires together internal packages for filesystem operations (`internal/fsutil`), metadata caching (`internal/meta`), and UI flow (`internal/app`). Video metadata is persisted in `.video_duration_cache.json` files to avoid re-probing on every launch. Development uses Mage for build tasks, enforces ≥85% test coverage, and follows standard Go idioms with `gofumpt` formatting.
[View on Codeberg](https://codeberg.org/snonux/yoga)
[View on GitHub](https://github.com/snonux/yoga)
@@ -106,19 +107,20 @@ This page showcases my side projects, providing an overview of what each project
### conf
-* 💻 Languages: Perl (30.9%), YAML (24.4%), Shell (22.8%), Config (5.4%), CSS (5.3%), TOML (4.7%), Ruby (4.1%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
-* 📚 Documentation: Text (69.1%), Markdown (30.9%)
-* 📊 Commits: 1018
-* 📈 Lines of Code: 6185
-* 📄 Lines of Documentation: 1445
-* 📅 Development Period: 2021-12-28 to 2025-10-22
-* 🔥 Recent Activity: 25.6 days (avg. age of last 42 commits)
+* 💻 Languages: Perl (30.5%), YAML (25.3%), Shell (22.5%), Config (5.4%), CSS (5.2%), TOML (4.7%), Ruby (4.0%), Lua (1.1%), Docker (0.6%), JSON (0.5%)
+* 📚 Documentation: Text (69.4%), Markdown (30.6%)
+* 📊 Commits: 1026
+* 📈 Lines of Code: 6262
+* 📄 Lines of Documentation: 1440
+* 📅 Development Period: 2021-12-28 to 2025-10-31
+* 🔥 Recent Activity: 24.4 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🧪 Status: Experimental (no releases yet)
-conf
-====
+This is a personal configuration management repository that centralizes infrastructure and application configurations across multiple environments. It serves as a single source of truth for system administration tasks, dotfiles, Docker deployments, and Kubernetes/Helm manifests, making it easier to maintain consistency across machines and deploy self-hosted services.
+
+The project is organized into distinct subdirectories: `dotfiles/` contains shell configurations (bash, fish), editor settings (helix, nvim), and window manager configs (sway, waybar); `f3s/` houses Kubernetes/Helm manifests for various self-hosted applications like Miniflux, FreshRSS, and Syncthing; `babylon5/` includes Docker startup scripts for services like Nextcloud, Vaultwarden, and Audiobookshelf; and `frontends/` and `playground/` for additional configurations. The repository uses Rex (a Perl-based deployment tool) as its automation framework, with a top-level Rexfile that includes subdirectory Rexfiles for modular task execution.
[View on Codeberg](https://codeberg.org/snonux/conf)
[View on GitHub](https://github.com/snonux/conf)
@@ -133,7 +135,7 @@ conf
* 📈 Lines of Code: 26565
* 📄 Lines of Documentation: 564
* 📅 Development Period: 2025-08-01 to 2025-10-04
-* 🔥 Recent Activity: 31.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 38.6 days (avg. age of last 42 commits)
* ⚖️ License: No license found
* 🏷️ Latest Release: v0.15.1 (2025-10-03)
* 🤖 AI-Assisted: This project was partially created with the help of generative AI
@@ -141,15 +143,36 @@ conf
[![hexai screenshot](showcase/hexai/image-1.png "hexai screenshot")](showcase/hexai/image-1.png)
-Hexai is an AI-powered extension designed to enhance the Helix Editor by integrating advanced code assistance features through Language Server Protocol (LSP) and large language models (LLMs). Its core capabilities include LSP-based code auto-completion, code actions, and an in-editor chat interface that allows users to interact directly with AI models for coding help and suggestions. Additionally, Hexai provides a standalone command-line tool for interacting with LLMs outside the editor. It supports multiple AI backends, including OpenAI, GitHub Copilot, and Ollama, making it flexible for various user preferences and workflows.
+Hexai is a Go-based AI integration tool designed primarily for the Helix editor that provides LSP (Language Server Protocol) powered AI features. It offers code auto-completion, AI-driven code actions, in-editor chat with LLMs, and a standalone CLI tool for direct LLM interaction. A standout feature is its ability to query multiple AI providers (OpenAI, OpenRouter, GitHub Copilot, Ollama) in parallel, allowing developers to compare responses side-by-side. It has enhanced capabilities for Go code understanding, such as generating unit tests from functions, while supporting other programming languages as well.
-The project is implemented primarily in Go and uses Mage as its build and task automation tool. The architecture consists of two main binaries: one for general LLM interaction and another for LSP integration with the editor. Hexai communicates with LLM providers via their APIs, relaying code context and user queries to generate intelligent responses or code completions. The modular design allows for easy configuration and extension, and while it is tailored for Helix, it may work with other editors that support LSP. This makes Hexai a valuable tool for developers seeking AI-assisted productivity directly within their coding environment.
+The project is implemented as an LSP server written in Go, with a TUI component built using Bubble Tea for the tmux-based code action runner (`hexai-tmux-action`). This architecture allows it to integrate seamlessly into LSP-compatible editors, with special focus on Helix + tmux workflows. The custom prompt feature lets developers use their preferred editor to craft prompts, making it flexible for various development workflows.
[View on Codeberg](https://codeberg.org/snonux/hexai)
[View on GitHub](https://github.com/snonux/hexai)
---
+### foo.zone
+
+* 💻 Languages: Shell (74.7%), Go (24.9%), YAML (0.4%)
+* 📚 Documentation: Markdown (99.5%), Text (0.5%)
+* 📊 Commits: 3167
+* 📈 Lines of Code: 253
+* 📄 Lines of Documentation: 30185
+* 📅 Development Period: 2021-04-29 to 2025-10-29
+* 🔥 Recent Activity: 48.7 days (avg. age of last 42 commits)
+* ⚖️ License: No license found
+* 🧪 Status: Experimental (no releases yet)
+* 🤖 AI-Assisted: This project was partially created with the help of generative AI
+
+
+foo.zone: source code repository.
+
+[View on Codeberg](https://codeberg.org/snonux/foo.zone)
+[View on GitHub](https://github.com/snonux/foo.zone)
+
+---
+
### foostats
* 💻 Languages: Perl (100.0%)
@@ -158,14 +181,14 @@ The project is implemented primarily in Go and uses Mage as its build and task a
* 📈 Lines of Code: 1902
* 📄 Lines of Documentation: 421
* 📅 Development Period: 2023-01-02 to 2025-10-21
-* 🔥 Recent Activity: 66.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 73.5 days (avg. age of last 42 commits)
* ⚖️ License: Custom License
* 🏷️ Latest Release: v0.2.0 (2025-10-21)
-**foostats** is a privacy-focused web analytics tool designed specifically for OpenBSD environments, with support for both traditional web (HTTP/HTTPS) and Gemini protocol logs. Its primary function is to generate anonymous, comprehensive site statistics for the foo.zone ecosystem and similar sites, while strictly preserving visitor privacy. This is achieved by hashing all IP addresses with SHA3-512 before storage, ensuring no personally identifiable information is retained. The tool provides detailed daily, monthly, and summary reports in Gemtext format, tracks feed subscribers, and includes robust filtering to block and log suspicious requests based on configurable patterns.
+**foostats** is a privacy-respecting web analytics tool designed for OpenBSD that processes both traditional HTTP/HTTPS server logs and Gemini protocol logs to generate anonymous site statistics. It immediately hashes all IP addresses using SHA3-512 before storage, ensuring no personal information is retained while still providing meaningful traffic insights. The tool supports distributed deployments with node-to-node replication, filters out suspicious requests based on configurable patterns, and generates comprehensive daily and monthly reports in both Gemtext and HTML formats. It's particularly useful for privacy-conscious site operators who need traffic analytics without compromising visitor anonymity.
-Architecturally, foostats is modular, with components for log parsing, filtering, aggregation, replication, and reporting. It processes logs from OpenBSD httpd and Gemini servers (vger/relayd), aggregates statistics, and outputs compressed JSON files and human-readable reports. Its distributed design allows replication and merging of stats across multiple nodes, supporting comprehensive analytics for federated sites. Key features include multi-protocol and IPv4/IPv6 support, privacy-first data handling, and flexible configuration for filtering and reporting, making it a secure and privacy-respecting alternative to conventional analytics platforms.
+The implementation uses a modular Perl architecture with specialized components: **Logreader** parses logs from httpd and Gemini servers (vger/relayd), **Filter** blocks suspicious patterns, **Aggregator** compiles statistics, **Replicator** synchronizes data between partner nodes, and **Reporter** generates human-readable reports. Statistics are stored as compressed JSON files, supporting both IPv4 and IPv6, with built-in feed analytics for tracking Atom/RSS and Gemfeed subscribers. The tool is designed specifically for the foo.zone ecosystem but can be adapted for any OpenBSD-based hosting environment requiring privacy-first analytics.
[View on Codeberg](https://codeberg.org/snonux/foostats)
[View on GitHub](https://github.com/snonux/foostats)
@@ -180,15 +203,15 @@ Architecturally, foostats is modular, with components for log parsing, filtering
* 📈 Lines of Code: 10036
* 📄 Lines of Documentation: 2433
* 📅 Development Period: 2025-06-23 to 2025-09-08
-* 🔥 Recent Activity: 91.0 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 98.5 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.9.2 (2025-09-08)
* 🎵 Vibe-Coded: This project has been vibe coded
-**GitSyncer** is an automation tool designed to synchronize git repositories across multiple organizations and hosting platforms, such as GitHub, Codeberg, and private SSH servers. Its primary purpose is to keep all branches and tags in sync between these platforms, ensuring that codebases remain consistent and up-to-date everywhere. GitSyncer is especially useful for developers and teams managing projects across different git hosts, providing features like automatic branch and repository creation, one-way backups to offline or private servers, and robust error handling for merge conflicts and missing resources. It also includes advanced capabilities like AI-powered project showcase generation, batch synchronization for automation, and flexible configuration for branch exclusions and backup strategies.
+GitSyncer is a Go-based CLI tool that automatically synchronizes git repositories across multiple hosting platforms (GitHub, Codeberg, SSH servers). It maintains all branches in sync bidirectionally, never deleting branches but automatically creating and updating them as needed. The tool excels at providing repository redundancy and backup, with special support for one-way SSH backups to private servers (like home NAS devices) that may be offline intermittently. It includes AI-powered features for generating release notes and project showcase documentation, plus automated weekly batch synchronization for hands-off maintenance.
-The tool is implemented as a modern CLI application in Go, with a modular, command-based architecture. Users configure organizations, repositories, and backup locations via a JSON file, and interact with GitSyncer through intuitive commands (e.g., `gitsyncer sync`, `gitsyncer release create`). Under the hood, GitSyncer clones repositories, adds all remotes, fetches and merges branches, and pushes updates to all destinations, handling repository and branch creation as needed. SSH backup locations are supported for one-way, opt-in backups, with automatic bare repo initialization. The AI-powered showcase feature analyzes repositories and uses Claude or other AI tools to generate comprehensive project summaries and statistics. The architecture emphasizes automation, safety (never deleting branches), and extensibility, making GitSyncer a powerful solution for multi-platform git management and backup.
+The implementation uses a git remotes approach: it clones from one organization, adds others as remotes, then fetches, merges, and pushes changes across all configured locations. Built with a modern command-based structure (using Cobra), it offers fine-grained control through subcommands for syncing (individual repos, all repos, platform-specific, bidirectional), release management, testing, and repository management. Key architectural features include merge conflict detection, regex-based branch exclusion, automatic repository creation on both web platforms and SSH servers, configurable backup locations with opt-in syncing, and integration with multiple AI tools (hexai, claude, aichat) for intelligent release note generation.
[View on Codeberg](https://codeberg.org/snonux/gitsyncer)
[View on GitHub](https://github.com/snonux/gitsyncer)
@@ -203,7 +226,7 @@ The tool is implemented as a modern CLI application in Go, with a modular, comma
* 📈 Lines of Code: 12003
* 📄 Lines of Documentation: 361
* 📅 Development Period: 2025-07-14 to 2025-08-02
-* 🔥 Recent Activity: 93.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 101.3 days (avg. age of last 42 commits)
* ⚖️ License: MIT
* 🏷️ Latest Release: v0.7.5 (2025-08-02)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -211,13 +234,11 @@ The tool is implemented as a modern CLI application in Go, with a modular, comma
[![totalrecall screenshot](showcase/totalrecall/image-1.png "totalrecall screenshot")](showcase/totalrecall/image-1.png)
-**Summary of totalrecall - Bulgarian Anki Flashcard Generator**
+TotalRecall is a Go-based tool that generates comprehensive Anki flashcard materials for Bulgarian language learning. It creates high-quality audio pronunciations using OpenAI TTS (with 11 voice options), AI-generated contextual images via DALL-E, IPA phonetic transcriptions, and automatic Bulgarian-English translations. The tool supports both single-word and batch processing, making it efficient for building large vocabulary decks. It outputs Anki-compatible packages (APKG) with all media files bundled, ready for immediate import.
[![totalrecall screenshot](showcase/totalrecall/image-2.png "totalrecall screenshot")](showcase/totalrecall/image-2.png)
-`totalrecall` is a specialized tool designed to streamline the creation of Anki flashcards for Bulgarian vocabulary learners. It automates the generation of high-quality study materials—including audio pronunciations, AI-generated contextual images, phonetic transcriptions (IPA), and translations—by leveraging OpenAI’s TTS and DALL-E APIs. The tool supports both a fast, keyboard-driven graphical user interface (GUI) and a flexible command-line interface (CLI), making it accessible for users with different preferences. Key features include batch processing of word lists, randomization of voices and art styles for variety, and seamless export to Anki-compatible formats (APKG and CSV), ensuring that learners can quickly build rich, multimedia flashcard decks.
-
-Architecturally, totalrecall is implemented in Go and integrates with OpenAI services via API keys for audio and image generation. It processes input in various formats, automatically handling translation and media generation as needed. Output files—including MP3s, images, and Anki packages—are organized in a user’s local state directory, with configuration options for customization. The project’s modular design allows for easy installation, desktop integration (especially on GNOME/Fedora), and extensibility. By automating the most time-consuming aspects of flashcard creation and enhancing cards with multimedia and phonetic data, totalrecall significantly improves the efficiency and quality of language learning for Bulgarian.
+The project offers both a keyboard-driven GUI for interactive use and a CLI for automation, built with Go using the Cobra framework for command handling. It leverages OpenAI's APIs for both audio synthesis and image generation, creating memorable visual contexts with random art styles to enhance retention. The architecture follows clean Go package structure with separate internal packages for audio, image, config, and Anki format generation, making it maintainable and extensible for future enhancements.
[View on Codeberg](https://codeberg.org/snonux/totalrecall)
[View on GitHub](https://github.com/snonux/totalrecall)
@@ -232,17 +253,15 @@ Architecturally, totalrecall is implemented in Go and integrates with OpenAI ser
* 📈 Lines of Code: 931
* 📄 Lines of Documentation: 81
* 📅 Development Period: 2025-06-25 to 2025-10-18
-* 🔥 Recent Activity: 95.8 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 103.3 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.2.0 (2025-10-18)
* 🎵 Vibe-Coded: This project has been vibe coded
-**Summary of the `timr` Project**
-
-`timr` is a lightweight, command-line time tracking tool designed to help users monitor the time they spend on tasks directly from their terminal. Its core functionality revolves around simple commands to start, stop, pause, reset, and check the status of a stopwatch-style timer, making it ideal for developers, freelancers, or anyone who prefers a minimalist workflow without the overhead of complex time-tracking applications. The tool also offers a live, full-screen timer mode with keyboard controls and can display the timer status in real-time within the fish shell prompt, enhancing productivity by keeping time tracking seamlessly integrated into the user's environment.
+`timr` is a minimalist command-line stopwatch timer written in Go that helps developers track time spent on tasks. It provides a persistent timer that saves state to disk, allowing you to start, stop, pause, and resume time tracking across terminal sessions. The tool supports multiple viewing modes including a standard status display (with formatted or raw output in seconds/minutes), a live full-screen view with keyboard controls, and specialized output for shell prompt integration.
-From an architectural standpoint, `timr` is implemented in Go, ensuring cross-platform compatibility and efficient performance. The timer's state is persistently stored on the user's system, allowing for accurate tracking even across sessions. The command structure is straightforward, with subcommands for each primary action (`start`, `stop`, `status`, etc.), and the project includes shell integration scripts for fish to display timer status in the prompt. This combination of simplicity, persistence, and shell integration makes `timr` a practical and unobtrusive solution for time management at the command line.
+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.
[View on Codeberg](https://codeberg.org/snonux/timr)
[View on GitHub](https://github.com/snonux/timr)
@@ -257,7 +276,7 @@ From an architectural standpoint, `timr` is implemented in Go, ensuring cross-pl
* 📈 Lines of Code: 6168
* 📄 Lines of Documentation: 162
* 📅 Development Period: 2025-06-19 to 2025-10-05
-* 🔥 Recent Activity: 117.1 days (avg. age of last 42 commits)
+* 🔥 Recent Activity: 124.6 days (avg. age of last 42 commits)
* ⚖️ License: BSD-2-Clause
* 🏷️ Latest Release: v0.9.3 (2025-10-05)
* 🎵 Vibe-Coded: This project has been vibe coded
@@ -265,11 +284,11 @@ From an architectural standpoint, `timr` is implemented in Go, ensuring cross-pl
[![tasksamurai screenshot](showcase/tasksamurai/image-1.png "tasksamurai screenshot")](showcase/tasksamurai/image-1.png)
-**Task Samurai** is a fast, keyboard-driven terminal interface for [Taskwarrior](https://taskwarrior.org/), designed to streamline task management directly from the command line. Built in Go using the [Bubble Tea](https://github.com/charmbracelet/bubbletea) TUI framework, it displays tasks in an interactive table and allows users to add, modify, and complete tasks efficiently using intuitive hotkeys. The interface is optimized for speed and responsiveness, offering a modern alternative to other Taskwarrior UIs like `vit`.
+**Task Samurai** is a fast, keyboard-driven terminal UI for Taskwarrior built in Go using the Bubble Tea framework. It displays your Taskwarrior tasks in an interactive table where you can manage them entirely through hotkeys—adding, starting, completing, and annotating tasks without touching the mouse. It supports all Taskwarrior filters as command-line arguments, allowing you to start with focused views like `tasksamurai +tag status:pending` or `tasksamurai project:work due:today`.
[![tasksamurai screenshot](showcase/tasksamurai/image-2.png "tasksamurai screenshot")](showcase/tasksamurai/image-2.png)
-The core architecture leverages the Bubble Tea framework for rendering the terminal UI, while all task operations are performed by invoking the native `task` command-line tool. Each user action—such as adding or completing a task—triggers the corresponding Taskwarrior command, and the UI refreshes automatically to reflect changes. Key features include hotkey-driven task management, real-time updates, and support for all Taskwarrior filters and queries. Optional features like "disco mode" add visual flair by changing the theme after each task modification. Installation is straightforward via Go tooling, and the project is particularly useful for users who want a fast, fully keyboard-controlled Taskwarrior experience in the terminal.
+Under the hood, Task Samurai acts as a front-end wrapper that invokes the native `task` command to read and modify tasks, ensuring compatibility with your existing Taskwarrior setup. The UI automatically refreshes after each action to keep the table current. It was created as an experiment in agentic coding and as a faster alternative to Python-based tools like vit, leveraging Go's performance and the Bubble Tea framework's efficient terminal rendering. The project even includes a "disco mode" flag that cycles through themes for a more playful experience.
[View on Codeberg](https://codeberg.org/snonux/tasksamurai)
[View on GitHub](https://github.com/snonux/tasksamurai)
@@ -284,7 +303,7 @@ The core architecture leverages the Bubble Tea framework for rendering the termi
* 📈 Lines of Code: 13072
* 📄 Lines of Documentation: 680
* 📅 Development Period: 2024-01-18 to 2025-10-09
-* 🔥 Recent A