diff options
| author | Paul Buetow <paul@buetow.org> | 2025-07-09 00:48:10 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-07-09 00:48:10 +0300 |
| commit | a39dddfa69efc96cf894fdd4f686af547e17976c (patch) | |
| tree | 62f35324f211a14b623b641b853f13dac741960b | |
| parent | 656ba6f7b88730fe1175c08dc6a6762dd8633b30 (diff) | |
clean up the stats
38 files changed, 2749 insertions, 4618 deletions
diff --git a/about/resources.gmi b/about/resources.gmi index 7ab7ee49..bc724817 100644 --- a/about/resources.gmi +++ b/about/resources.gmi @@ -35,105 +35,105 @@ You won't find any links on this site because, over time, the links will break. In random order: -* Site Reliability Engineering; How Google runs production systems; O'Reilly +* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner * The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional -* Leanring eBPF; Liz Rice; O'Reilly -* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly +* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers +* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly +* Raku Recipes; J.J. Merelo; Apress +* Raku Fundamentals; Moritz Lenz; Apress +* Pro Puppet; James Turnbull, Jeffrey McCune; Apress +* The Pragmatic Programmer; David Thomas; Addison-Wesley +* Concurrency in Go; Katherine Cox-Buday; O'Reilly +* Polished Ruby Programming; Jeremy Evans; Packt Publishing * Java ist auch eine Insel; Christian Ullenboom; +* Effective Java; Joshua Bloch; Addison-Wesley Professional +* The Docker Book; James Turnbull; Kindle +* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson +* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications * DNS and BIND; Cricket Liu; O'Reilly -* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications * Funktionale Programmierung; Peter Pepper; Springer -* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton -* Perl New Features; Joshua McAdams, brian d foy; Perl School -* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook -* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers -* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson -* Effective Java; Joshua Bloch; Addison-Wesley Professional -* Concurrency in Go; Katherine Cox-Buday; O'Reilly -* Polished Ruby Programming; Jeremy Evans; Packt Publishing * Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press -* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly -* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly -* Raku Recipes; J.J. Merelo; Apress -* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible -* The Pragmatic Programmer; David Thomas; Addison-Wesley +* Developing Games in Java; David Brackeen and others...; New Riders * 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly -* Pro Puppet; James Turnbull, Jeffrey McCune; Apress -* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly -* Systemprogrammierung in Go; Frank Müller; dpunkt +* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible +* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt +* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers * Ultimate Go Notebook; Bill Kennedy -* Raku Fundamentals; Moritz Lenz; Apress -* The Docker Book; James Turnbull; Kindle +* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook +* Leanring eBPF; Liz Rice; O'Reilly +* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly +* Terraform Cookbook; Mikael Krief; Packt Publishing +* Systemprogrammierung in Go; Frank Müller; dpunkt +* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press +* Data Science at the Command Line; Jeroen Janssens; O'Reilly * Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly -* Modern Perl; Chromatic ; Onyx Neon Press -* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt -* Effective awk programming; Arnold Robbins; O'Reilly -* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner +* Perl New Features; Joshua McAdams, brian d foy; Perl School * C++ Programming Language; Bjarne Stroustrup; -* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press +* Site Reliability Engineering; How Google runs production systems; O'Reilly +* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly +* Effective awk programming; Arnold Robbins; O'Reilly * Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf +* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly +* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications +* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible * Higher Order Perl; Mark Dominus; Morgan Kaufmann -* Developing Games in Java; David Brackeen and others...; New Riders -* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers +* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly +* Modern Perl; Chromatic ; Onyx Neon Press * 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 -* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly -* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible -* Data Science at the Command Line; Jeroen Janssens; O'Reilly -* Terraform Cookbook; Mikael Krief; Packt Publishing -* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications +* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton ## 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: * BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley -* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly * Go: Design Patterns for Real-World Projects; Mat Ryer; Packt -* The Linux Programming Interface; Michael Kerrisk; No Starch Press -* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly -* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly * Relayd and Httpd Mastery; Michael W Lucas +* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly +* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly +* The Linux Programming Interface; Michael Kerrisk; No Starch Press * Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley +* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly ## Self-development and soft-skills books In random order: +* Ultralearning; Anna Laurent; Self-published via Amazon +* So Good They Can't Ignore You; Cal Newport; Business Plus +* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion +* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly +* Deep Work; Cal Newport; Piatkus +* Ultralearning; Scott Young; Thorsons +* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME) * Never Split the Difference; Chris Voss, Tahl Raz; Random House Business +* The Bullet Journal Method; Ryder Carroll; Fourth Estate +* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books +* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME) * Eat That Frog!; Brian Tracy; Hodder Paperbacks +* Stop starting, start finishing; Arne Roock; Lean-Kanban University +* The Joy of Missing Out; Christina Crook; New Society Publishers +* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select +* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook +* Soft Skills; John Sommez; Manning Publications +* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook * Slow Productivity; Cal Newport; Penguin Random House +* 101 Essays that change the way you think; Brianna Wiest; Audiobook +* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook +* Influence without Authority; A. Cohen, D. Bradford; Wiley * The Good Enough Job; Simone Stolzoff; Ebury Edge +* Atomic Habits; James Clear; Random House Business +* The Power of Now; Eckhard Tolle; Yellow Kite * Eat That Frog; Brian Tracy -* Getting Things Done; David Allen -* Soft Skills; John Sommez; Manning Publications -* Psycho-Cybernetics; Maxwell Maltz; Perigee Books * Digital Minimalism; Cal Newport; Portofolio Penguin -* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd -* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook -* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook -* Deep Work; Cal Newport; Piatkus +* Psycho-Cybernetics; Maxwell Maltz; Perigee Books * Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing -* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly -* The Joy of Missing Out; Christina Crook; New Society Publishers -* The Power of Now; Eckhard Tolle; Yellow Kite -* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press -* Ultralearning; Scott Young; Thorsons -* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne -* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME) -* So Good They Can't Ignore You; Cal Newport; Business Plus -* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME) * Meditation for Mortals, Oliver Burkeman, Audiobook -* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books -* Ultralearning; Anna Laurent; Self-published via Amazon -* Atomic Habits; James Clear; Random House Business -* Influence without Authority; A. Cohen, D. Bradford; Wiley -* The Bullet Journal Method; Ryder Carroll; Fourth Estate +* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press * The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK -* Stop starting, start finishing; Arne Roock; Lean-Kanban University -* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook -* 101 Essays that change the way you think; Brianna Wiest; Audiobook -* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion -* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select +* Getting Things Done; David Allen +* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne +* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd => ../notes/index.gmi Here are notes of mine for some of the books @@ -141,30 +141,30 @@ In random order: Some of these were in-person with exams; others were online learning lectures only. In random order: -* AWS Immersion Day; Amazon; 1-day interactive online training -* F5 Loadbalancers Training; 2-day on-site training; F5, Inc. * Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon -* Functional programming lecture; Remote University of Hagen -* MySQL Deep Dive Workshop; 2-day on-site training +* Ultimate Go Programming; Bill Kennedy; O'Reilly Online +* Structure and Interpretation of Computer Programs; Harold Abelson and more...; +* AWS Immersion Day; Amazon; 1-day interactive online training * Apache Tomcat Best Practises; 3-day on-site training -* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online +* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online * Scripting Vim; Damian Conway; O'Reilly Online -* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online -* Developing IaC with Terraform (with Live Lessons); O'Reilly Online +* F5 Loadbalancers Training; 2-day on-site training; F5, Inc. * Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training -* Structure and Interpretation of Computer Programs; Harold Abelson and more...; -* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online -* Ultimate Go Programming; Bill Kennedy; 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) * Protocol buffers; O'Reilly Online +* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online +* Functional programming lecture; Remote University of Hagen +* 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 +* MySQL Deep Dive Workshop; 2-day on-site training ## Technical guides These are not whole books, but guides (smaller or larger) which I found very useful. in random order: +* Raku Guide at https://raku.guide * How CPUs work at https://cpu.land * Advanced Bash-Scripting Guide -* Raku Guide at https://raku.guide ## Podcasts @@ -172,56 +172,56 @@ These are not whole books, but guides (smaller or larger) which I found very use In random order: -* The ProdCast (Google SRE Podcast) -* Modern Mentor -* The Changelog Podcast(s) -* Maintainable -* Pratical AI * Fork Around And Find Out * Backend Banter +* The Changelog Podcast(s) * Hidden Brain -* Fallthrough [Golang] -* Cup o' Go [Golang] +* Maintainable * BSD Now [BSD] -* The Pragmatic Engineer Podcast +* Modern Mentor +* Cup o' Go [Golang] * Deep Questions with Cal Newport * Dev Interrupted +* The ProdCast (Google SRE Podcast) +* Fallthrough [Golang] +* The Pragmatic Engineer Podcast +* 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. -* FLOSS weekly -* CRE: Chaosradio Express [german] * Modern Mentor -* Go Time (predecessor of fallthrough) * Java Pub House +* FLOSS weekly * Ship It (predecessor of Fork Around And Find Out) +* Go Time (predecessor of fallthrough) +* CRE: Chaosradio Express [german] ## Newsletters I like This is a mix of tech and non-tech newsletters I am subscribed to. In random order: -* Monospace Mentor +* Register Spill +* Ruby Weekly +* Applied Go Weekly Newsletter +* byteSizeGo * Golang Weekly +* VK Newsletter +* Monospace Mentor +* The Pragmatic Engineer * The Imperfectionist -* Andreas Brandhorst Newsletter (Sci-Fi author) * Changelog News -* Applied Go Weekly Newsletter -* Register Spill +* Andreas Brandhorst Newsletter (Sci-Fi author) * The Valuable Dev -* byteSizeGo -* Ruby Weekly -* The Pragmatic Engineer -* VK Newsletter ## 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 * Linux Magazine * freeX (not published anymore) +* Linux User * LWN (online only) # Formal education diff --git a/about/showcase.gmi b/about/showcase.gmi index c864ff28..23fa377e 100644 --- a/about/showcase.gmi +++ b/about/showcase.gmi @@ -1,6 +1,8 @@ # Project Showcase -This page showcases my open source 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. +Generated on: 2025-07-09 + +This page showcases my open source 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. ## Table of Contents @@ -28,14 +30,13 @@ This page showcases my open source projects, providing an overview of what each * ⇢ ⇢ ⇢ docker-radicale-server * ⇢ ⇢ ⇢ docker-anki-sync-server * ⇢ ⇢ ⇢ gorum -* ⇢ ⇢ ⇢ guprecords * ⇢ ⇢ ⇢ randomjournalpage * ⇢ ⇢ ⇢ sway-autorotate * ⇢ ⇢ ⇢ photoalbum * ⇢ ⇢ ⇢ algorithms * ⇢ ⇢ ⇢ geheim -* ⇢ ⇢ ⇢ xerl * ⇢ ⇢ ⇢ perl-c-fibonacci +* ⇢ ⇢ ⇢ guprecords * ⇢ ⇢ ⇢ ioriot * ⇢ ⇢ ⇢ staticfarm-apache-handlers * ⇢ ⇢ ⇢ dyndns @@ -43,6 +44,7 @@ This page showcases my open source projects, providing an overview of what each * ⇢ ⇢ ⇢ rubyfy * ⇢ ⇢ ⇢ pingdomfetch * ⇢ ⇢ ⇢ gotop +* ⇢ ⇢ ⇢ xerl * ⇢ ⇢ ⇢ debroid * ⇢ ⇢ ⇢ fapi * ⇢ ⇢ ⇢ template @@ -65,47 +67,64 @@ This page showcases my open source projects, providing an overview of what each ## Overall Statistics -* Total Projects: 55 -* Total Commits: 10,358 -* Total Lines of Code: 225,423 -* Total Lines of Documentation: 24,618 -* Languages: Java (25.1%), Go (19.3%), HTML (15.7%), C++ (10.0%), C (8.2%), C/C++ (6.5%), XML (5.4%), Shell (2.1%), Perl (1.9%), Config (1.7%), Ruby (1.3%), CSS (0.8%), Make (0.8%), JSON (0.3%), Python (0.3%), Haskell (0.3%), YAML (0.2%), TOML (0.1%) -* Documentation: Text (46.9%), Markdown (39.2%), LaTeX (13.9%) - -Generated on: 2025-07-08 +* 📦 Total Projects: 55 +* 📊 Total Commits: 10,373 +* 📈 Total Lines of Code: 252,766 +* 📄 Total Lines of Documentation: 24,100 +* 💻 Languages: Java (22.4%), Go (17.5%), HTML (14.0%), C++ (8.9%), C (7.3%), Perl (6.3%), Shell (6.3%), C/C++ (5.8%), XML (4.7%), Config (1.5%), Ruby (1.1%), HCL (1.1%), Make (0.7%), Python (0.6%), CSS (0.6%), JSON (0.3%), Raku (0.3%), Haskell (0.2%), YAML (0.2%), TOML (0.1%) +* 📚 Documentation: Text (47.5%), Markdown (38.3%), LaTeX (14.2%) +* 🤖 AI-Assisted Projects: 8 out of 55 (14.5% AI-assisted, 85.5% human-only) +* 🚀 Release Status: 31 released, 24 experimental (56.4% with releases, 43.6% experimental) ## Projects ### gitsyncer -* Languages: Go (83.6%), Shell (14.0%), YAML (1.8%), JSON (0.6%) -* Documentation: Markdown (100.0%) -* Commits: 35 -* Lines of Code: 5314 -* Lines of Documentation: 2239 -* Development Period: 2025-06-23 to 2025-07-08 -* Recent Activity: 11.0 days (avg. age of last 42 commits) -* License: BSD-2-Clause +* 💻 Languages: Go (85.6%), Shell (12.3%), YAML (1.6%), JSON (0.5%) +* 📚 Documentation: Markdown (100.0%) +* 📊 Commits: 50 +* 📈 Lines of Code: 6038 +* 📄 Lines of Documentation: 2239 +* 📅 Development Period: 2025-06-23 to 2025-07-08 +* 🔥 Recent Activity: 6.4 days (avg. age of last 42 commits) +* ⚖️ License: BSD-2-Clause +* 🏷️ Latest Release: v0.3.0 (2025-07-07) +* 🤖 AI-Assisted: This project was partially created with the help of generative AI -GitSyncer is a comprehensive Git repository synchronization tool that automatically keeps repositories in sync across multiple hosting platforms like GitHub and Codeberg. It's particularly useful for developers who maintain the same repository on multiple platforms or want to create resilient backups of their code. The tool supports both individual repository sync and bulk operations to sync all public repositories from one platform to another, with intelligent branch management that never deletes branches but creates them as needed. -The architecture follows a clean Go project structure with the core implementation handling repository cloning, remote management, and branch synchronization. It uses a JSON configuration file to define organizations and repositories, supports SSH backup locations with automatic bare repository creation, and includes features like branch exclusion patterns, dry-run mode, and merge conflict detection. The tool is designed to be resilient, with opt-in backup functionality that allows it to work normally even when backup servers are offline. +GitSyncer is a cross-platform repository synchronization tool that automatically keeps Git repositories in sync across multiple hosting platforms like GitHub, Codeberg, and private SSH servers. It solves the common problem of maintaining consistent code across different Git hosting services by cloning repositories, adding all configured platforms as remotes, and continuously merging and pushing changes bidirectionally while handling branch creation and conflict detection. + +The tool is implemented in Go with a clean architecture that supports both individual repository syncing and bulk operations for public repositories. Key features include automatic repository creation, SSH backup locations for private servers, branch exclusion patterns, and an opt-in backup mode for resilient offline backups. It uses a JSON configuration file to define organizations and repositories, employs safe merge strategies that never delete branches, and provides comprehensive error handling for merge conflicts and missing repositories. => https://codeberg.org/snonux/gitsyncer View on Codeberg => https://github.com/snonux/gitsyncer View on GitHub +Go from `internal/version/version.go`: + +```AUTO +var ( + Version = "0.4.0" + + GitCommit = "unknown" + + BuildDate = "unknown" +``` + --- ### timr -* Languages: Go (98.3%), YAML (1.7%) -* Documentation: Markdown (100.0%) -* Commits: 19 -* Lines of Code: 873 -* Lines of Documentation: 135 -* Development Period: 2025-06-25 to 2025-06-29 -* Recent Activity: 12.2 days (avg. age of last 42 commits) -* License: BSD-2-Clause +* 💻 Languages: Go (98.3%), YAML (1.7%) +* 📚 Documentation: Markdown (100.0%) +* 📊 Commits: 19 +* 📈 Lines of Code: 873 +* 📄 Lines of Documentation: 135 +* 📅 Development Period: 2025-06-25 to 2025-06-29 +* 🔥 Recent Activity: 12.3 days (avg. age of last 42 commits) +* ⚖️ License: BSD-2-Clause +* 🧪 Status: Experimental (no releases yet) +* 🤖 AI-Assisted: This project was partially created with the help of generative AI + `timr` is a minimalist command-line time tracking tool written in Go that provides a simple stopwatch-style timer for tracking work sessions. It offers commands to start, stop, reset, and check the status of the timer, with all state persisted across sessions in `~/.config/timr/.timr_state`. The tool is particularly useful for developers and professionals who need to track time spent on tasks without the overhead of complex time-tracking applications. @@ -114,18 +133,36 @@ The project is implemented using a clean modular architecture with the CLI entry => https://codeberg.org/snonux/timr View on Codeberg => https://github.com/snonux/timr View on GitHub +Go from `internal/timer/timer.go`: + +```AUTO +func GetStateFile() (string, error) { + if stateFilePathOverride != "" { + return stateFilePathOverride, nil + } + configDir, err := os.UserConfigDir() + if err != nil { + return "", err + } + return filepath.Join(configDir, "timr", stateFile), nil +} +``` + --- ### tasksamurai -* Languages: Go (99.8%), YAML (0.2%) -* Documentation: Markdown (100.0%) -* Commits: 215 -* Lines of Code: 6160 -* Lines of Documentation: 162 -* Development Period: 2025-06-19 to 2025-07-08 -* Recent Activity: 12.6 days (avg. age of last 42 commits) -* License: BSD-2-Clause +* 💻 Languages: Go (99.8%), YAML (0.2%) +* 📚 Documentation: Markdown (100.0%) +* 📊 Commits: 215 +* 📈 Lines of Code: 6160 +* 📄 Lines of Documentation: 162 +* 📅 Development Period: 2025-06-19 to 2025-07-08 +* 🔥 Recent Activity: 12.7 days (avg. age of last 42 commits) +* ⚖️ License: BSD-2-Clause +* 🏷️ Latest Release: v0.9.2 (2025-07-02) +* 🤖 AI-Assisted: This project was partially created with the help of generative AI + => showcase/tasksamurai/image-1.png tasksamurai screenshot @@ -138,18 +175,52 @@ The implementation follows a clean architecture with clear separation of concern => https://codeberg.org/snonux/tasksamurai View on Codeberg => https://github.com/snonux/tasksamurai View on GitHub +Go from `cmd/tasksamurai/main.go`: + +```AUTO +func main() { + debugLog := flag.String("debug-log", "", "path to debug log file") + browserCmd := flag.String("browser-cmd", "firefox", "command used to open URLs") + disco := flag.Bool("disco", false, "enable disco mode") + flag.Parse() + + if err := task.SetDebugLog(*debugLog); err != nil { + fmt.Fprintln(os.Stderr, "failed to enable debug log:", err) + os.Exit(1) + } + + m, err := ui.New(flag.Args(), *browserCmd) + if err != nil { + fmt.Fprintln(os.Stderr, "failed to load tasks:", err) + os.Exit(1) + } + + m.SetDisco(*disco) + + fmt.Print("\033[H\033[2J") + + p := tea.NewProgram(&m, tea.WithAltScreen()) + if _, err := p.Run(); err != nil { + fmt.Fprintln(os.Stderr, "error running ui:", err) + os.Exit(1) + } +} +``` + --- ### rexfiles -* Languages: Perl (34.8%), Shell (31.0%), Config (8.9%), CSS (8.7%), TOML (7.7%), Ruby (6.3%), Lua (1.9%), JSON (0.5%), INI (0.2%) -* Documentation: Text (97.3%), Markdown (2.7%) -* Commits: 871 -* Lines of Code: 3734 -* Lines of Documentation: 854 -* Development Period: 2021-12-28 to 2025-07-07 -* Recent Activity: 19.9 days (avg. age of last 42 commits) -* License: No license found +* 💻 Languages: Shell (34.8%), Perl (32.9%), Config (8.4%), CSS (8.3%), TOML (7.3%), Ruby (6.0%), Lua (1.8%), JSON (0.5%), INI (0.2%) +* 📚 Documentation: Text (97.3%), Markdown (2.7%) +* 📊 Commits: 871 +* 📈 Lines of Code: 3947 +* 📄 Lines of Documentation: 854 +* 📅 Development Period: 2021-12-28 to 2025-07-07 +* 🔥 Recent Activity: 20.0 days (avg. age of last 42 commits) +* ⚖️ License: No license found +* 🧪 Status: Experimental (no releases yet) + Based on my analysis of the codebase, **rexfiles** is a comprehensive infrastructure automation and configuration management project built with the Rex framework (a Perl-based alternative to Ansible, Puppet, or Chef). The project provides structured automation for managing multiple aspects of a personal infrastructure, including dotfiles, server configurations, and application deployments. @@ -158,18 +229,29 @@ The project consists of three main components: **dotfiles** management for perso => https://codeberg.org/snonux/rexfiles View on Codeberg => https://github.com/snonux/rexfiles View on GitHub +Shell from `frontends/scripts/sitestats.sh`: + +```AUTO +STATSFILE=/tmp/sitestats.csv +BOTSFILE=/tmp/sitebots.txt +TOP=20 +``` + --- ### foo.zone -* Languages: HTML (73.9%), XML (25.9%), CSS (0.2%) -* Documentation: Text (91.8%), Markdown (8.2%) -* Commits: 2892 -* Lines of Code: 42772 -* Lines of Documentation: 159 -* Development Period: 2021-04-29 to 2025-07-01 -* Recent Activity: 26.3 days (avg. age of last 42 commits) -* License: No license found +* 💻 Languages: HTML (73.9%), XML (25.9%), CSS (0.2%) +* 📚 Documentation: Text (91.8%), Markdown (8.2%) +* 📊 Commits: 2892 +* 📈 Lines of Code: 42772 +* 📄 Lines of Documentation: 159 +* 📅 Development Period: 2021-04-29 to 2025-07-01 +* 🔥 Recent Activity: 26.3 days (avg. age of last 42 commits) +* ⚖️ License: No license found +* 🧪 Status: Experimental (no releases yet) +* 🤖 AI-Assisted: This project was partially created with the help of generative AI + This is **foo.zone**, a personal blog and technical website belonging to Paul Buetow, a Site Reliability Engineer based in Sofia, Bulgaria. The project is a static website that serves as a comprehensive platform for sharing technical knowledge, book notes, and personal experiences in the fields of system administration, DevOps, and programming. @@ -178,18 +260,36 @@ The site is built using **Gemtexter**, a static site generator that creates both => https://codeberg.org/snonux/foo.zone View on Codeberg => https://github.com/snonux/foo.zone View on GitHub +HTML from `gemfeed/2024-08-05-typing-127.1-words-per-minute.html`: + +```AUTO +<span>Sometimes, there were brain farts, and I couldn't type at all. The trick was not to freak out about it, but to move on. If your average goes down a bit for a day, it doesn't matter; the long-term trend over several days and weeks matters, not the one-off wpm high score.</span><br /> +<br /> +<span>Although my wrist pain seemed to go away aftre the first week of using the Kinesis, my fingers became tired of adjusting to the new way of typing. My hands were stiff, as if I had been training for the Olympics. Only after three weeks did I start to feel comfortable with it. If it weren't for the comments I read online, I would have sent it back after week 2.</span><br /> +<br /> +<span>I also had a problem with the left pinky finger, where I could not comfortably reach the <span class='inlinecode'>p</span> key. This involved moving the whole hand. An easy fix was to swap <span class='inlinecode'>p</span> with <span class='inlinecode'>;</span> on the keyboard layout.</span><br /> +<br /> +<h2 style='display: inline' id='considering-alternate-layouts'>Considering alternate layouts</h2><br /> +<br /> +<span>As I was going to learn 10-finger touch typing from scratch, I also played with the thought of switching from the Qwerty to the Dvorak or Colemak keymap, but after reading some comments on the internet, I decided against it: </span><br /> +<br /> +``` + --- ### dtail -* Languages: Go (94.0%), JSON (2.8%), C (2.0%), Make (0.5%), C/C++ (0.3%), Config (0.2%), Shell (0.1%), Docker (0.1%) -* Documentation: Text (79.4%), Markdown (20.6%) -* Commits: 1049 -* Lines of Code: 20088 -* Lines of Documentation: 5674 -* Development Period: 2020-01-09 to 2025-06-20 -* Recent Activity: 51.7 days (avg. age of last 42 commits) -* License: Apache-2.0 +* 💻 Languages: Go (93.9%), JSON (2.8%), C (2.0%), Make (0.5%), C/C++ (0.3%), Config (0.2%), Shell (0.2%), Docker (0.1%) +* 📚 Documentation: Text (79.4%), Markdown (20.6%) +* 📊 Commits: 1049 +* 📈 Lines of Code: 20091 +* 📄 Lines of Documentation: 5674 +* 📅 Development Period: 2020-01-09 to 2025-06-20 +* 🔥 Recent Activity: 51.8 days (avg. age of l |
