diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-03 09:08:55 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-03 09:08:55 +0200 |
| commit | 2b58c14b4354f40cd45ae9c6f543e72c55ac09cf (patch) | |
| tree | 4251f959e998a6d11edbaf26ef893ab13b8dfb96 /about/showcase.html | |
| parent | 33de86c66141e5c0fc816404b19f8e126577df3e (diff) | |
Update content for html
Diffstat (limited to 'about/showcase.html')
| -rw-r--r-- | about/showcase.html | 632 |
1 files changed, 328 insertions, 304 deletions
diff --git a/about/showcase.html b/about/showcase.html index 3516efe2..ac803651 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: 2026-02-22</span><br /> +<span>Generated on: 2026-03-02</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 ranked by score, which combines project size and recent activity.</span><br /> <br /> @@ -23,92 +23,94 @@ <li><a href='#project-showcase'>Project Showcase</a></li> <li>⇢ <a href='#overall-statistics'>Overall Statistics</a></li> <li>⇢ <a href='#projects'>Projects</a></li> -<li>⇢ ⇢ <a href='#1-ior'>1. ior</a></li> -<li>⇢ ⇢ <a href='#2-dotfiles'>2. dotfiles</a></li> -<li>⇢ ⇢ <a href='#3-hexai'>3. hexai</a></li> -<li>⇢ ⇢ <a href='#4-epimetheus'>4. epimetheus</a></li> -<li>⇢ ⇢ <a href='#5-conf'>5. conf</a></li> -<li>⇢ ⇢ <a href='#6-foozone'>6. foo.zone</a></li> -<li>⇢ ⇢ <a href='#7-scifi'>7. scifi</a></li> -<li>⇢ ⇢ <a href='#8-log4jbench'>8. log4jbench</a></li> -<li>⇢ ⇢ <a href='#9-gogios'>9. gogios</a></li> -<li>⇢ ⇢ <a href='#10-yoga'>10. yoga</a></li> -<li>⇢ ⇢ <a href='#11-perc'>11. perc</a></li> -<li>⇢ ⇢ <a href='#12-totalrecall'>12. totalrecall</a></li> -<li>⇢ ⇢ <a href='#13-gitsyncer'>13. gitsyncer</a></li> -<li>⇢ ⇢ <a href='#14-tasksamurai'>14. tasksamurai</a></li> -<li>⇢ ⇢ <a href='#15-foostats'>15. foostats</a></li> -<li>⇢ ⇢ <a href='#16-timr'>16. timr</a></li> -<li>⇢ ⇢ <a href='#17-gos'>17. gos</a></li> -<li>⇢ ⇢ <a href='#18-dtail'>18. dtail</a></li> -<li>⇢ ⇢ <a href='#19-ds-sim'>19. ds-sim</a></li> -<li>⇢ ⇢ <a href='#20-wireguardmeshgenerator'>20. wireguardmeshgenerator</a></li> -<li>⇢ ⇢ <a href='#21-gemtexter'>21. gemtexter</a></li> -<li>⇢ ⇢ <a href='#22-rcm'>22. rcm</a></li> -<li>⇢ ⇢ <a href='#23-terraform'>23. terraform</a></li> -<li>⇢ ⇢ <a href='#24-quicklogger'>24. quicklogger</a></li> -<li>⇢ ⇢ <a href='#25-sillybench'>25. sillybench</a></li> -<li>⇢ ⇢ <a href='#26-goprecords'>26. goprecords</a></li> -<li>⇢ ⇢ <a href='#27-gorum'>27. gorum</a></li> -<li>⇢ ⇢ <a href='#28-guprecords'>28. guprecords</a></li> -<li>⇢ ⇢ <a href='#29-geheim'>29. geheim</a></li> -<li>⇢ ⇢ <a href='#30-docker-radicale-server'>30. docker-radicale-server</a></li> -<li>⇢ ⇢ <a href='#31-algorithms'>31. algorithms</a></li> -<li>⇢ ⇢ <a href='#32-randomjournalpage'>32. randomjournalpage</a></li> -<li>⇢ ⇢ <a href='#33-photoalbum'>33. photoalbum</a></li> -<li>⇢ ⇢ <a href='#34-ioriot'>34. ioriot</a></li> -<li>⇢ ⇢ <a href='#35-ipv6test'>35. ipv6test</a></li> -<li>⇢ ⇢ <a href='#36-sway-autorotate'>36. sway-autorotate</a></li> -<li>⇢ ⇢ <a href='#37-mon'>37. mon</a></li> -<li>⇢ ⇢ <a href='#38-staticfarm-apache-handlers'>38. staticfarm-apache-handlers</a></li> -<li>⇢ ⇢ <a href='#39-pingdomfetch'>39. pingdomfetch</a></li> -<li>⇢ ⇢ <a href='#40-xerl'>40. xerl</a></li> -<li>⇢ ⇢ <a href='#41-ychat'>41. ychat</a></li> -<li>⇢ ⇢ <a href='#42-fapi'>42. fapi</a></li> -<li>⇢ ⇢ <a href='#43-perl-c-fibonacci'>43. perl-c-fibonacci</a></li> -<li>⇢ ⇢ <a href='#44-netcalendar'>44. netcalendar</a></li> -<li>⇢ ⇢ <a href='#45-loadbars'>45. loadbars</a></li> -<li>⇢ ⇢ <a href='#46-gotop'>46. gotop</a></li> -<li>⇢ ⇢ <a href='#47-rubyfy'>47. rubyfy</a></li> -<li>⇢ ⇢ <a href='#48-fype'>48. fype</a></li> -<li>⇢ ⇢ <a href='#49-pwgrep'>49. pwgrep</a></li> -<li>⇢ ⇢ <a href='#50-perldaemon'>50. perldaemon</a></li> -<li>⇢ ⇢ <a href='#51-jsmstrade'>51. jsmstrade</a></li> -<li>⇢ ⇢ <a href='#52-japi'>52. japi</a></li> -<li>⇢ ⇢ <a href='#53-perl-poetry'>53. perl-poetry</a></li> -<li>⇢ ⇢ <a href='#54-muttdelay'>54. muttdelay</a></li> -<li>⇢ ⇢ <a href='#55-netdiff'>55. netdiff</a></li> -<li>⇢ ⇢ <a href='#56-debroid'>56. debroid</a></li> -<li>⇢ ⇢ <a href='#57-hsbot'>57. hsbot</a></li> -<li>⇢ ⇢ <a href='#58-cpuinfo'>58. cpuinfo</a></li> -<li>⇢ ⇢ <a href='#59-template'>59. template</a></li> -<li>⇢ ⇢ <a href='#60-awksite'>60. awksite</a></li> -<li>⇢ ⇢ <a href='#61-dyndns'>61. dyndns</a></li> -<li>⇢ ⇢ <a href='#62-vs-sim'>62. vs-sim</a></li> +<li>⇢ ⇢ <a href='#1-ior-1now-na1w-na2w-na3w-na4w'>1. ior [#1(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#2-hexai-2now-na1w-na2w-na3w-na4w'>2. hexai [#2(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#3-dotfiles-3now-na1w-na2w-na3w-na4w'>3. dotfiles [#3(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#4-epimetheus-4now-na1w-na2w-na3w-na4w'>4. epimetheus [#4(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#5-conf-5now-na1w-na2w-na3w-na4w'>5. conf [#5(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#6-foozone-6now-na1w-na2w-na3w-na4w'>6. foo.zone [#6(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#7-foostore-7now-na1w-na2w-na3w-na4w'>7. foostore [#7(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li><a href='#foostore'>foostore</a></li> +<li>⇢ ⇢ <a href='#8-scifi-8now-na1w-na2w-na3w-na4w'>8. scifi [#8(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#9-log4jbench-9now-na1w-na2w-na3w-na4w'>9. log4jbench [#9(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#10-rcm-10now-na1w-na2w-na3w-na4w'>10. rcm [#10(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#11-gogios-11now-na1w-na2w-na3w-na4w'>11. gogios [#11(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#12-yoga-12now-na1w-na2w-na3w-na4w'>12. yoga [#12(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#13-perc-13now-na1w-na2w-na3w-na4w'>13. perc [#13(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#14-totalrecall-14now-na1w-na2w-na3w-na4w'>14. totalrecall [#14(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#15-gitsyncer-15now-na1w-na2w-na3w-na4w'>15. gitsyncer [#15(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#16-tasksamurai-16now-na1w-na2w-na3w-na4w'>16. tasksamurai [#16(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#17-foostats-17now-na1w-na2w-na3w-na4w'>17. foostats [#17(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#18-gos-18now-na1w-na2w-na3w-na4w'>18. gos [#18(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#19-timr-19now-na1w-na2w-na3w-na4w'>19. timr [#19(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#20-dtail-20now-na1w-na2w-na3w-na4w'>20. dtail [#20(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#21-ds-sim-21now-na1w-na2w-na3w-na4w'>21. ds-sim [#21(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#22-gemtexter-22now-na1w-na2w-na3w-na4w'>22. gemtexter [#22(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#23-wireguardmeshgenerator-23now-na1w-na2w-na3w-na4w'>23. wireguardmeshgenerator [#23(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#24-goprecords-24now-na1w-na2w-na3w-na4w'>24. goprecords [#24(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#25-quicklogger-25now-na1w-na2w-na3w-na4w'>25. quicklogger [#25(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#26-terraform-26now-na1w-na2w-na3w-na4w'>26. terraform [#26(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#27-sillybench-27now-na1w-na2w-na3w-na4w'>27. sillybench [#27(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#28-gorum-28now-na1w-na2w-na3w-na4w'>28. gorum [#28(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#29-guprecords-29now-na1w-na2w-na3w-na4w'>29. guprecords [#29(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#30-geheim-30now-na1w-na2w-na3w-na4w'>30. geheim [#30(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#31-docker-radicale-server-31now-na1w-na2w-na3w-na4w'>31. docker-radicale-server [#31(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#32-algorithms-32now-na1w-na2w-na3w-na4w'>32. algorithms [#32(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#33-randomjournalpage-33now-na1w-na2w-na3w-na4w'>33. randomjournalpage [#33(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#34-photoalbum-34now-na1w-na2w-na3w-na4w'>34. photoalbum [#34(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#35-ioriot-35now-na1w-na2w-na3w-na4w'>35. ioriot [#35(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#36-ipv6test-36now-na1w-na2w-na3w-na4w'>36. ipv6test [#36(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#37-fype-37now-na1w-na2w-na3w-na4w'>37. fype [#37(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#38-sway-autorotate-38now-na1w-na2w-na3w-na4w'>38. sway-autorotate [#38(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#39-mon-39now-na1w-na2w-na3w-na4w'>39. mon [#39(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#40-staticfarm-apache-handlers-40now-na1w-na2w-na3w-na4w'>40. staticfarm-apache-handlers [#40(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#41-pingdomfetch-41now-na1w-na2w-na3w-na4w'>41. pingdomfetch [#41(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#42-xerl-42now-na1w-na2w-na3w-na4w'>42. xerl [#42(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#43-ychat-43now-na1w-na2w-na3w-na4w'>43. ychat [#43(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#44-fapi-44now-na1w-na2w-na3w-na4w'>44. fapi [#44(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#45-perl-c-fibonacci-45now-na1w-na2w-na3w-na4w'>45. perl-c-fibonacci [#45(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#46-netcalendar-46now-na1w-na2w-na3w-na4w'>46. netcalendar [#46(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#47-loadbars-47now-na1w-na2w-na3w-na4w'>47. loadbars [#47(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#48-gotop-48now-na1w-na2w-na3w-na4w'>48. gotop [#48(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#49-rubyfy-49now-na1w-na2w-na3w-na4w'>49. rubyfy [#49(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#50-pwgrep-50now-na1w-na2w-na3w-na4w'>50. pwgrep [#50(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#51-perldaemon-51now-na1w-na2w-na3w-na4w'>51. perldaemon [#51(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#52-jsmstrade-52now-na1w-na2w-na3w-na4w'>52. jsmstrade [#52(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#53-japi-53now-na1w-na2w-na3w-na4w'>53. japi [#53(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#54-perl-poetry-54now-na1w-na2w-na3w-na4w'>54. perl-poetry [#54(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#55-muttdelay-55now-na1w-na2w-na3w-na4w'>55. muttdelay [#55(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#56-netdiff-56now-na1w-na2w-na3w-na4w'>56. netdiff [#56(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#57-debroid-57now-na1w-na2w-na3w-na4w'>57. debroid [#57(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#58-hsbot-58now-na1w-na2w-na3w-na4w'>58. hsbot [#58(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#59-cpuinfo-59now-na1w-na2w-na3w-na4w'>59. cpuinfo [#59(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#60-template-60now-na1w-na2w-na3w-na4w'>60. template [#60(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#61-awksite-61now-na1w-na2w-na3w-na4w'>61. awksite [#61(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#62-dyndns-62now-na1w-na2w-na3w-na4w'>62. dyndns [#62(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> +<li>⇢ ⇢ <a href='#63-vs-sim-63now-na1w-na2w-na3w-na4w'>63. vs-sim [#63(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</a></li> </ul><br /> <h2 style='display: inline' id='overall-statistics'>Overall Statistics</h2><br /> <br /> <ul> -<li>📦 Total Projects: 62</li> -<li>📊 Total Commits: 12,631</li> -<li>📈 Total Lines of Code: 317,099</li> -<li>📄 Total Lines of Documentation: 40,325</li> -<li>💻 Languages: Go (37.7%), Java (12.9%), C++ (8.0%), C (6.1%), XML (6.1%), Shell (5.8%), Perl (5.5%), C/C++ (5.1%), YAML (5.0%), HTML (1.9%), Config (1.2%), Ruby (0.9%), HCL (0.9%), Python (0.6%), CSS (0.6%), Make (0.5%), JSON (0.4%), Haskell (0.2%), JavaScript (0.2%), Raku (0.1%), TOML (0.1%)</li> -<li>📚 Documentation: Markdown (71.4%), Text (27.2%), LaTeX (1.4%)</li> -<li>🚀 Release Status: 39 released, 23 experimental (62.9% with releases, 37.1% experimental)</li> +<li>📦 Total Projects: 63</li> +<li>📊 Total Commits: 13,058</li> +<li>📈 Total Lines of Code: 344,311</li> +<li>📄 Total Lines of Documentation: 43,164</li> +<li>💻 Languages: Go (42.7%), Java (11.9%), C++ (7.4%), C (5.6%), XML (5.6%), Shell (5.5%), Perl (5.0%), YAML (4.6%), C/C++ (4.5%), HTML (1.7%), Config (1.1%), Ruby (0.9%), HCL (0.8%), Python (0.6%), CSS (0.5%), Make (0.5%), JSON (0.4%), Haskell (0.2%), JavaScript (0.1%), Raku (0.1%)</li> +<li>📚 Documentation: Markdown (71.1%), Text (27.6%), LaTeX (1.3%)</li> +<li>🚀 Release Status: 41 released, 22 experimental (65.1% with releases, 34.9% experimental)</li> </ul><br /> <h2 style='display: inline' id='projects'>Projects</h2><br /> <br /> -<h3 style='display: inline' id='1-ior'>1. ior</h3><br /> +<h3 style='display: inline' id='1-ior-1now-na1w-na2w-na3w-na4w'>1. ior [#1(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> -<li>💻 Languages: Go (73.1%), C (26.3%), C/C++ (0.6%)</li> -<li>📚 Documentation: Markdown (80.3%), Text (19.7%)</li> -<li>📊 Commits: 384</li> -<li>📈 Lines of Code: 21785</li> -<li>📄 Lines of Documentation: 2428</li> -<li>📅 Development Period: 2024-01-18 to 2026-02-21</li> -<li>🏆 Score: 2219.6 (combines code size and activity)</li> +<li>💻 Languages: Go (85.6%), C (14.1%), C/C++ (0.3%)</li> +<li>📚 Documentation: Markdown (80.0%), Text (20.0%)</li> +<li>📊 Commits: 563</li> +<li>📈 Lines of Code: 41775</li> +<li>📄 Lines of Documentation: 2409</li> +<li>📅 Development Period: 2024-01-18 to 2026-03-02</li> +<li>🏆 Score: 1544.8 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -126,55 +128,55 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='2-dotfiles'>2. dotfiles</h3><br /> +<h3 style='display: inline' id='2-hexai-2now-na1w-na2w-na3w-na4w'>2. hexai [#2(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> -<li>💻 Languages: Shell (58.9%), CSS (11.0%), Config (10.2%), TOML (10.1%), Ruby (8.4%), JSON (1.1%), INI (0.2%)</li> +<li>💻 Languages: Go (100.0%)</li> <li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 783</li> -<li>📈 Lines of Code: 2961</li> -<li>📄 Lines of Documentation: 949</li> -<li>📅 Development Period: 2023-07-30 to 2026-02-22</li> -<li>🏆 Score: 427.7 (combines code size and activity)</li> +<li>📊 Commits: 373</li> +<li>📈 Lines of Code: 31057</li> +<li>📄 Lines of Documentation: 4089</li> +<li>📅 Development Period: 2025-08-01 to 2026-03-02</li> +<li>🏆 Score: 725.1 (combines code size and activity)</li> <li>⚖️ License: No license found</li> -<li>🧪 Status: Experimental (no releases yet)</li> +<li>🏷️ Latest Release: v0.21.0 (2026-02-12)</li> </ul><br /> <br /> -<span>This is a personal dotfiles management project that uses [Rex](https://www.rexify.org/) (a Perl-based infrastructure automation framework) to declaratively install and synchronize configuration files across local machines and remote servers. The <span class='inlinecode'>Rexfile</span> defines individual tasks for each config area — shell (bash, zsh, fish), editor (Helix), terminal (Ghostty, tmux), window manager (Sway/Waybar), SSH, scripts, Pipewire audio, AI prompt links, and more — plus OS-specific package installation tasks for Fedora, FreeBSD, and Termux. A top-level <span class='inlinecode'>home</span> task runs all <span class='inlinecode'>home_*</span> tasks at once for a full install.</span><br /> +<a href='showcase/hexai/image-1.png'><img alt='hexai screenshot' title='hexai screenshot' src='showcase/hexai/image-1.png' /></a><br /> <br /> -<span>The architecture is straightforward: config files live in subdirectories mirroring their purpose, and helper functions (<span class='inlinecode'>ensure_file</span>, <span class='inlinecode'>ensure_dir</span>) copy or symlink them into the appropriate <span class='inlinecode'>$HOME</span> locations with correct permissions. It supports both a public repo (this one) and a private companion repo for sensitive configs like calendar data, keeping secrets separate while sharing the same deployment mechanism.</span><br /> +<span>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.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/dotfiles'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/dotfiles'>View on GitHub</a><br /> +<span>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 (<span class='inlinecode'>hexai-tmux-action</span>). 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.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/hexai'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/hexai'>View on GitHub</a><br /> <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='3-hexai'>3. hexai</h3><br /> +<h3 style='display: inline' id='3-dotfiles-3now-na1w-na2w-na3w-na4w'>3. dotfiles [#3(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> -<li>💻 Languages: Go (100.0%)</li> +<li>💻 Languages: Shell (65.8%), CSS (11.2%), Config (10.4%), TOML (10.3%), JSON (1.1%), Ruby (1.0%), INI (0.2%)</li> <li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 343</li> -<li>📈 Lines of Code: 29895</li> -<li>📄 Lines of Documentation: 5508</li> -<li>📅 Development Period: 2025-08-01 to 2026-02-22</li> -<li>🏆 Score: 341.8 (combines code size and activity)</li> +<li>📊 Commits: 815</li> +<li>📈 Lines of Code: 2918</li> +<li>📄 Lines of Documentation: 2971</li> +<li>📅 Development Period: 2023-07-30 to 2026-03-02</li> +<li>🏆 Score: 513.4 (combines code size and activity)</li> <li>⚖️ License: No license found</li> -<li>🏷️ Latest Release: v0.21.0 (2026-02-12)</li> +<li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> <br /> -<a href='showcase/hexai/image-1.png'><img alt='hexai screenshot' title='hexai screenshot' src='showcase/hexai/image-1.png' /></a><br /> -<br /> -<span>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.</span><br /> +<span>This is a personal dotfiles management project that uses [Rex](https://www.rexify.org/) (a Perl-based infrastructure automation framework) to declaratively install and synchronize configuration files across local machines and remote servers. The <span class='inlinecode'>Rexfile</span> defines individual tasks for each config area — shell (bash, zsh, fish), editor (Helix), terminal (Ghostty, tmux), window manager (Sway/Waybar), SSH, scripts, Pipewire audio, AI prompt links, and more — plus OS-specific package installation tasks for Fedora, FreeBSD, and Termux. A top-level <span class='inlinecode'>home</span> task runs all <span class='inlinecode'>home_*</span> tasks at once for a full install.</span><br /> <br /> -<span>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 (<span class='inlinecode'>hexai-tmux-action</span>). 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.</span><br /> +<span>The architecture is straightforward: config files live in subdirectories mirroring their purpose, and helper functions (<span class='inlinecode'>ensure_file</span>, <span class='inlinecode'>ensure_dir</span>) copy or symlink them into the appropriate <span class='inlinecode'>$HOME</span> locations with correct permissions. It supports both a public repo (this one) and a private companion repo for sensitive configs like calendar data, keeping secrets separate while sharing the same deployment mechanism.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/hexai'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/hexai'>View on GitHub</a><br /> +<a class='textlink' href='https://codeberg.org/snonux/dotfiles'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/dotfiles'>View on GitHub</a><br /> <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='4-epimetheus'>4. epimetheus</h3><br /> +<h3 style='display: inline' id='4-epimetheus-4now-na1w-na2w-na3w-na4w'>4. epimetheus [#4(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (85.2%), Shell (14.8%)</li> @@ -183,7 +185,7 @@ <li>📈 Lines of Code: 5199</li> <li>📄 Lines of Documentation: 1734</li> <li>📅 Development Period: 2026-02-07 to 2026-02-14</li> -<li>🏆 Score: 284.8 (combines code size and activity)</li> +<li>🏆 Score: 175.2 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -199,7 +201,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='5-conf'>5. conf</h3><br /> +<h3 style='display: inline' id='5-conf-5now-na1w-na2w-na3w-na4w'>5. conf [#5(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: YAML (80.7%), Perl (9.9%), Shell (6.0%), Python (2.3%), Docker (0.7%), Config (0.2%), HTML (0.1%)</li> @@ -208,7 +210,7 @@ <li>📈 Lines of Code: 19132</li> <li>📄 Lines of Documentation: 6572</li> <li>📅 Development Period: 2021-12-28 to 2026-02-15</li> -<li>🏆 Score: 261.6 (combines code size and activity)</li> +<li>🏆 Score: 174.6 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -222,7 +224,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='6-foozone'>6. foo.zone</h3><br /> +<h3 style='display: inline' id='6-foozone-6now-na1w-na2w-na3w-na4w'>6. foo.zone [#6(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: XML (98.7%), Shell (1.0%), Go (0.3%)</li> @@ -231,7 +233,7 @@ <li>📈 Lines of Code: 18702</li> <li>📄 Lines of Documentation: 174</li> <li>📅 Development Period: 2021-04-29 to 2026-02-07</li> -<li>🏆 Score: 203.4 (combines code size and activity)</li> +<li>🏆 Score: 146.5 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -243,7 +245,28 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='7-scifi'>7. scifi</h3><br /> +<h3 style='display: inline' id='7-foostore-7now-na1w-na2w-na3w-na4w'>7. foostore [#7(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> +<br /> +<ul> +<li>💻 Languages: Go (98.3%), Shell (1.7%)</li> +<li>📚 Documentation: Markdown (100.0%)</li> +<li>📊 Commits: 108</li> +<li>📈 Lines of Code: 6345</li> +<li>📄 Lines of Documentation: 248</li> +<li>📅 Development Period: 2018-05-26 to 2026-03-02</li> +<li>🏆 Score: 124.3 (combines code size and activity)</li> +<li>⚖️ License: No license found</li> +<li>🏷️ Latest Release: v0.5.3 (2026-03-02)</li> +</ul><br /> +<br /> +<h1 style='display: inline' id='foostore'>foostore</h1><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/foostore'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/foostore'>View on GitHub</a><br /> +<br /> +<span>---</span><br /> +<br /> +<h3 style='display: inline' id='8-scifi-8now-na1w-na2w-na3w-na4w'>8. scifi [#8(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: JSON (35.9%), CSS (30.6%), JavaScript (29.6%), HTML (3.8%)</li> @@ -252,7 +275,7 @@ <li>📈 Lines of Code: 1664</li> <li>📄 Lines of Documentation: 853</li> <li>📅 Development Period: 2026-01-25 to 2026-01-27</li> -<li>🏆 Score: 112.3 (combines code size and activity)</li> +<li>🏆 Score: 87.4 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -266,7 +289,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='8-log4jbench'>8. log4jbench</h3><br /> +<h3 style='display: inline' id='9-log4jbench-9now-na1w-na2w-na3w-na4w'>9. log4jbench [#9(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Java (78.9%), XML (21.1%)</li> @@ -275,7 +298,7 @@ <li>📈 Lines of Code: 774</li> <li>📄 Lines of Documentation: 119</li> <li>📅 Development Period: 2026-01-09 to 2026-01-09</li> -<li>🏆 Score: 64.6 (combines code size and activity)</li> +<li>🏆 Score: 54.6 (combines code size and activity)</li> <li>⚖️ License: MIT</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -289,7 +312,32 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='9-gogios'>9. gogios</h3><br /> +<h3 style='display: inline' id='10-rcm-10now-na1w-na2w-na3w-na4w'>10. rcm [#10(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> +<br /> +<ul> +<li>💻 Languages: Ruby (99.6%), TOML (0.4%)</li> +<li>📚 Documentation: Markdown (100.0%)</li> +<li>📊 Commits: 109</li> +<li>📈 Lines of Code: 1719</li> +<li>📄 Lines of Documentation: 778</li> +<li>📅 Development Period: 2024-12-05 to 2026-03-02</li> +<li>🏆 Score: 35.3 (combines code size and activity)</li> +<li>⚖️ License: Custom License</li> +<li>🏷️ Latest Release: v0.1.1 (2026-03-01)</li> +</ul><br /> +<br /> +<a href='showcase/rcm/image-1.png'><img alt='rcm screenshot' title='rcm screenshot' src='showcase/rcm/image-1.png' /></a><br /> +<br /> +<span>**rcm** is a lightweight Ruby-based configuration management system designed for personal infrastructure automation following the KISS (Keep It Simple, Stupid) principle. It provides a declarative DSL for managing system configuration tasks like file creation, templating, and conditional execution based on hostname or other criteria. The system is useful for automating repetitive configuration tasks across multiple machines, similar to tools like Puppet or Chef but with a minimalist approach tailored for personal use cases.</span><br /> +<br /> +<span>The implementation centers around a DSL module that provides keywords like <span class='inlinecode'>file</span>, <span class='inlinecode'>given</span>, and <span class='inlinecode'>notify</span> for defining configuration resources. It supports features like ERB templating, conditional execution, resource dependencies (via <span class='inlinecode'>requires</span>), and directory management. Configuration data can be loaded from TOML files, and tasks are defined as Rake tasks that invoke the configuration DSL. The architecture uses a resource scheduling system that tracks declared objects, prevents duplicates, and evaluates them in order while respecting dependencies and conditions.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/rcm'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/rcm'>View on GitHub</a><br /> +<br /> +<span>---</span><br /> +<br /> +<h3 style='display: inline' id='11-gogios-11now-na1w-na2w-na3w-na4w'>11. gogios [#11(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (98.9%), JSON (0.6%), YAML (0.5%)</li> @@ -298,7 +346,7 @@ <li>📈 Lines of Code: 3875</li> <li>📄 Lines of Documentation: 394</li> <li>📅 Development Period: 2023-04-17 to 2026-02-16</li> -<li>🏆 Score: 35.0 (combines code size and activity)</li> +<li>🏆 Score: 32.4 (combines code size and activity)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.4.1 (2026-02-16)</li> </ul><br /> @@ -314,7 +362,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='10-yoga'>10. yoga</h3><br /> +<h3 style='display: inline' id='12-yoga-12now-na1w-na2w-na3w-na4w'>12. yoga [#12(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (66.1%), HTML (33.9%)</li> @@ -323,7 +371,7 @@ <li>📈 Lines of Code: 5921</li> <li>📄 Lines of Documentation: 83</li> <li>📅 Development Period: 2025-10-01 to 2026-01-28</li> -<li>🏆 Score: 30.7 (combines code size and activity)</li> +<li>🏆 Score: 28.8 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: v0.4.0 (2026-01-28)</li> </ul><br /> @@ -339,7 +387,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='11-perc'>11. perc</h3><br /> +<h3 style='display: inline' id='13-perc-13now-na1w-na2w-na3w-na4w'>13. perc [#13(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (100.0%)</li> @@ -348,7 +396,7 @@ <li>📈 Lines of Code: 452</li> <li>📄 Lines of Documentation: 80</li> <li>📅 Development Period: 2025-11-25 to 2025-11-25</li> -<li>🏆 Score: 29.6 (combines code size and activity)</li> +<li>🏆 Score: 27.1 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🏷️ Latest Release: v0.1.0 (2025-11-25)</li> </ul><br /> @@ -362,7 +410,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='12-totalrecall'>12. totalrecall</h3><br /> +<h3 style='display: inline' id='14-totalrecall-14now-na1w-na2w-na3w-na4w'>14. totalrecall [#14(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (99.0%), Shell (0.5%), YAML (0.4%)</li> @@ -371,7 +419,7 @@ <li>📈 Lines of Code: 13129</li> <li>📄 Lines of Documentation: 377</li> <li>📅 Development Period: 2025-07-14 to 2026-01-21</li> -<li>🏆 Score: 25.9 (combines code size and activity)</li> +<li>🏆 Score: 24.7 (combines code size and activity)</li> <li>⚖️ License: MIT</li> <li>🏷️ Latest Release: v0.8.0 (2026-01-21)</li> </ul><br /> @@ -389,7 +437,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='13-gitsyncer'>13. gitsyncer</h3><br /> +<h3 style='display: inline' id='15-gitsyncer-15now-na1w-na2w-na3w-na4w'>15. gitsyncer [#15(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (92.6%), Shell (7.0%), JSON (0.4%)</li> @@ -398,7 +446,7 @@ <li>📈 Lines of Code: 10568</li> <li>📄 Lines of Documentation: 2445</li> <li>📅 Development Period: 2025-06-23 to 2026-02-22</li> -<li>🏆 Score: 22.5 (combines code size and activity)</li> +<li>🏆 Score: 21.5 (combines code size and activity)</li> <li>⚖️ License: BSD-2-Clause</li> <li>🏷️ Latest Release: v0.12.1 (2026-02-22)</li> </ul><br /> @@ -412,7 +460,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='14-tasksamurai'>14. tasksamurai</h3><br /> +<h3 style='display: inline' id='16-tasksamurai-16now-na1w-na2w-na3w-na4w'>16. tasksamurai [#16(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (99.8%), YAML (0.2%)</li> @@ -421,7 +469,7 @@ <li>📈 Lines of Code: 6544</li> <li>📄 Lines of Documentation: 254</li> <li>📅 Development Period: 2025-06-19 to 2026-02-04</li> -<li>🏆 Score: 17.8 (combines code size and activity)</li> +<li>🏆 Score: 17.1 (combines code size and activity)</li> <li>⚖️ License: BSD-2-Clause</li> <li>🏷️ Latest Release: v0.11.0 (2026-02-04)</li> </ul><br /> @@ -439,7 +487,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='15-foostats'>15. foostats</h3><br /> +<h3 style='display: inline' id='17-foostats-17now-na1w-na2w-na3w-na4w'>17. foostats [#17(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (100.0%)</li> @@ -448,7 +496,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>🏆 Score: 17.7 (combines code size and activity)</li> +<li>🏆 Score: 16.9 (combines code size and activity)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v0.2.0 (2025-10-21)</li> </ul><br /> @@ -462,39 +510,16 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='16-timr'>16. timr</h3><br /> -<br /> -<ul> -<li>💻 Languages: Go (96.0%), Shell (4.0%)</li> -<li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 32</li> -<li>📈 Lines of Code: 1538</li> -<li>📄 Lines of Documentation: 99</li> -<li>📅 Development Period: 2025-06-25 to 2026-01-02</li> -<li>🏆 Score: 16.0 (combines code size and activity)</li> -<li>⚖️ License: MIT</li> -<li>🏷️ Latest Release: v0.3.0 (2026-01-02)</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='17-gos'>17. gos</h3><br /> +<h3 style='display: inline' id='18-gos-18now-na1w-na2w-na3w-na4w'>18. gos [#18(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (99.5%), JSON (0.2%), Shell (0.2%)</li> <li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 400</li> +<li>📊 Commits: 402</li> <li>📈 Lines of Code: 4143</li> <li>📄 Lines of Documentation: 477</li> -<li>📅 Development Period: 2024-05-04 to 2026-02-17</li> -<li>🏆 Score: 15.6 (combines code size and activity)</li> +<li>📅 Development Period: 2024-05-04 to 2026-02-28</li> +<li>🏆 Score: 16.2 (combines code size and activity)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.2.4 (2026-02-17)</li> </ul><br /> @@ -512,16 +537,39 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='18-dtail'>18. dtail</h3><br /> +<h3 style='display: inline' id='19-timr-19now-na1w-na2w-na3w-na4w'>19. timr [#19(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> +<br /> +<ul> +<li>💻 Languages: Go (96.0%), Shell (4.0%)</li> +<li>📚 Documentation: Markdown (100.0%)</li> +<li>📊 Commits: 32</li> +<li>📈 Lines of Code: 1538</li> +<li>📄 Lines of Documentation: 99</li> +<li>📅 Development Period: 2025-06-25 to 2026-01-02</li> +<li>🏆 Score: 15.4 (combines code size and activity)</li> +<li>⚖️ License: MIT</li> +<li>🏷️ Latest Release: v0.3.0 (2026-01-02)</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='20-dtail-20now-na1w-na2w-na3w-na4w'>20. dtail [#20(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 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%)</li> <li>📚 Documentation: Text (79.4%), Markdown (20.6%)</li> -<li>📊 Commits: 1054</li> +<li>📊 Commits: 1071</li> <li>📈 Lines of Code: 20091</li> <li>📄 Lines of Documentation: 5674</li> <li>📅 Development Period: 2020-01-09 to 2025-06-20</li> -<li>🏆 Score: 15.3 (combines code size and activity)</li> +<li>🏆 Score: 14.9 (combines code size and activity)</li> <li>⚖️ License: Apache-2.0</li> <li>🏷️ Latest Release: v4.3.3 (2024-08-23)</li> </ul><br /> @@ -539,7 +587,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='19-ds-sim'>19. ds-sim</h3><br /> +<h3 style='display: inline' id='21-ds-sim-21now-na1w-na2w-na3w-na4w'>21. ds-sim [#21(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Java (98.9%), Shell (0.6%), CSS (0.5%)</li> @@ -548,7 +596,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>🏆 Score: 14.0 (combines code size and activity)</li> +<li>🏆 Score: 13.7 (combines code size and activity)</li> <li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -564,7 +612,30 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='20-wireguardmeshgenerator'>20. wireguardmeshgenerator</h3><br /> +<h3 style='display: inline' id='22-gemtexter-22now-na1w-na2w-na3w-na4w'>22. gemtexter [#22(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> +<br /> +<ul> +<li>💻 Languages: Shell (70.6%), CSS (26.4%), Config (1.8%), HTML (1.2%)</li> +<li>📚 Documentation: Text (76.1%), Markdown (23.9%)</li> +<li>📊 Commits: 479</li> +<li>📈 Lines of Code: 2471</li> +<li>📄 Lines of Documentation: 1180</li> +<li>📅 Development Period: 2021-05-21 to 2026-03-01</li> +<li>🏆 Score: 12.7 (combines code size and activity)</li> +<li>⚖️ License: GPL-3.0</li> +<li>🏷️ Latest Release: 3.0.0 (2024-10-01)</li> +</ul><br /> +<br /> +<span>Gemtexter is a static site generator and blog engine written in Bash that converts content from Gemini Gemtext format into multiple output formats (HTML, Markdown) simultaneously. It allows you to maintain a single source of truth in Gemtext and automatically generates XHTML Transitional 1.0, Markdown, and Atom feeds, enabling you to publish the same content across Gemini capsules, traditional websites, and platforms like GitHub/Codeberg Pages. The tool handles blog post management automatically—creating a new dated <span class='inlinecode'>.gmi</span> file triggers auto-indexing, feed generation, and cross-format conversion.</span><br /> +<br /> +<span>The architecture leverages GNU utilities (sed, grep, date) and optional tools like GNU Source Highlight for syntax highlighting. It includes a templating system that executes embedded Bash code in <span class='inlinecode'>.gmi.tpl</span> files, supports themes for HTML output, and integrates with Git for version control and publishing workflows. Despite being implemented as a complex Bash script, it remains maintainable and serves as an experiment in how far shell scripting can scale for content management tasks.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/gemtexter'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/gemtexter'>View on GitHub</a><br /> +<br /> +<span>---</span><br /> +<br /> +<h3 style='display: inline' id='23-wireguardmeshgenerator-23now-na1w-na2w-na3w-na4w'>23. wireguardmeshgenerator [#23(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Ruby (65.4%), YAML (34.6%)</li> @@ -573,7 +644,7 @@ <li>📈 Lines of Code: 563</li> <li>📄 Lines of Documentation: 24</li> <li>📅 Development Period: 2025-04-18 to 2026-01-20</li> -<li>🏆 Score: 9.9 (combines code size and activity)</li> +<li>🏆 Score: 9.6 (combines code size and activity)</li> <li>⚖️ License: Custom License</li> <li>🏷️ Latest Release: v1.0.0 (2025-05-11)</li> </ul><br /> @@ -587,53 +658,57 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='21-gemtexter'>21. gemtexter</h3><br /> +<h3 style='display: inline' id='24-goprecords-24now-na1w-na2w-na3w-na4w'>24. goprecords [#24(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> -<li>💻 Languages: Shell (68.2%), CSS (28.5%), Config (1.9%), HTML (1.3%)</li> -<li>📚 Documentation: Text (76.1%), Markdown (23.9%)</li> -<li>📊 Commits: 472</li> -<li>📈 Lines of Code: 2288</li> -<li>📄 Lines of Documentation: 1180</li> -<li>📅 Development Period: 2021-05-21 to 2025-12-31</li> -<li>🏆 Score: 9.7 (combines code size and activity)</li> -<li>⚖️ License: GPL-3.0</li> -<li>🏷️ Latest Release: 3.0.0 (2024-10-01)</li> +<li>💻 Languages: Go (100.0%)</li> +<li>📚 Documentation: Markdown (100.0%)</li> +<li>📊 Commits: 109</li> +<li>📈 Lines of Code: 2723</li> +<li>📄 Lines of Documentation: 489</li> +<li>📅 Development Period: 2013-03-22 to 2026-02-28</li> +<li>🏆 Score: 5.4 (combines code size and activity)</li> +<li>⚖️ License: No license found</li> +<li>🏷️ Latest Release: v0.2.1 (2026-02-20)</li> </ul><br /> <br /> -<span>Gemtexter is a static site generator and blog engine written in Bash that converts content from Gemini Gemtext format into multiple output formats (HTML, Markdown) simultaneously. It allows you to maintain a single source of truth in Gemtext and automatically generates XHTML Transitional 1.0, Markdown, and Atom feeds, enabling you to publish the same content across Gemini capsules, traditional websites, and platforms like GitHub/Codeberg Pages. The tool handles blog post management automatically—creating a new dated <span class='inlinecode'>.gmi</span> file triggers auto-indexing, feed generation, and cross-format conversion.</span><br /> +<span>**goprecords** is a Go CLI tool that generates global uptime reports by aggregating <span class='inlinecode'>uptimed</span> record files from multiple hosts. It ranks machines across metrics like total uptime, boot count, downtime, lifespan, and a combined score—organized by host, kernel version, kernel major version, or kernel name. Output is available in plaintext, Markdown, or Gemtext. It can either report directly from a stats directory or import records into SQLite for repeated querying.</span><br /> <br /> -<span>The architecture leverages GNU utilities (sed, grep, date) and optional tools like GNU Source Highlight for syntax highlighting. It includes a templating system that executes embedded Bash code in <span class='inlinecode'>.gmi.tpl</span> files, supports themes for HTML output, and integrates with Git for version control and publishing workflows. Despite being implemented as a complex Bash script, it remains maintainable and serves as an experiment in how far shell scripting can scale for content management tasks.</span><br /> +<span>Under the hood, it parses <span class='inlinecode'>uptimed</span>'s simple <span class='inlinecode'>uptime:boottime:kernel</span> record format, groups entries by the chosen category, and computes aggregates. The architecture is straightforward: a <span class='inlinecode'>cmd/goprecords</span> entry point handles CLI flags and subcommands (<span class='inlinecode'>import</span>, <span class='inlinecode'>query</span>, or direct reporting), while <span class='inlinecode'>internal/goprecords</span> contains the core logic for parsing, aggregation, database operations, and report formatting. It uses <span class='inlinecode'>modernc.org/sqlite</span> (a pure-Go SQLite driver) and Mage for build automation.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/gemtexter'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/gemtexter'>View on GitHub</a><br /> +<a class='textlink' href='https://codeberg.org/snonux/goprecords'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/goprecords'>View on GitHub</a><br /> <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='22-rcm'>22. rcm</h3><br /> +<h3 style='display: inline' id='25-quicklogger-25now-na1w-na2w-na3w-na4w'>25. quicklogger [#25(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> -<li>💻 Languages: Ruby (99.8%), TOML (0.2%)</li> +<li>💻 Languages: Go (96.4%), XML (1.8%), Shell (1.1%), TOML (0.7%)</li> <li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 78</li> -<li>📈 Lines of Code: 1377</li> -<li>📄 Lines of Documentation: 113</li> -<li>📅 Development Period: 2024-12-05 to 2025-11-26</li> -<li>🏆 Score: 8.7 (combines code size and activity)</li> -<li>⚖️ License: Custom License</li> -<li>🧪 Status: Experimental (no releases yet)</li> +<li>📊 Commits: 36</li> +<li>📈 Lines of Code: 1220</li> +<li>📄 Lines of Documentation: 78</li> +<li>📅 Development Period: 2024-01-20 to 2026-03-01</li> +<li>🏆 Score: 4.9 (combines code size and activity)</li> +<li>⚖️ License: MIT</li> +<li>🏷️ Latest Release: v0.1.0 (2026-03-01)</li> </ul><br /> <br /> -<span>**rcm** is a lightweight Ruby-based configuration management system designed for personal infrastructure automation following the KISS (Keep It Simple, Stupid) principle. It provides a declarative DSL for managing system configuration tasks like file creation, templating, and conditional execution based on hostname or other criteria. The system is useful for automating repetitive configuration tasks across multiple machines, similar to tools like Puppet or Chef but with a minimalist approach tailored for personal use cases.</span><br /> +<a href='showcase/quicklogger/image-1.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-1.png' /></a><br /> <br /> -<span>The implementation centers around a DSL module that provides keywords like <span class='inlinecode'>file</span>, <span class='inlinecode'>given</span>, and <span class='inlinecode'>notify</span> for defining configuration resources. It supports features like ERB templating, conditional execution, resource dependencies (via <span class='inlinecode'>requires</span>), and directory management. Configuration data can be loaded from TOML files, and tasks are defined as Rake tasks that invoke the configuration DSL. The architecture uses a resource scheduling system that tracks declared objects, prevents duplicates, and evaluates them in order while respecting dependencies and conditions.</span><br /> +<span>Quicklogger is a lightweight cross-platform GUI application built in Go using the Fyne framework that enables rapid logging of ideas and notes to plain text files. The app is specifically designed for quick Android capture workflows—when you have an idea, you can immediately open the app, type a message, and save it as a timestamped markdown file. These files are then synced to a home computer via Syncthing, creating a frictionless capture-to-archive pipeline for thoughts and tasks.</span><br /> <br /> -<a class='textlink' href='https://codeberg.org/snonux/rcm'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/rcm'>View on GitHub</a><br /> +<a href='showcase/quicklogger/image-2.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-2.png' /></a><br /> +<br /> +<span>The implementation leverages Go's cross-compilation capabilities and Fyne's UI abstraction to run identically on Android and Linux desktop environments. Build automation is handled through Mage tasks, offering both local Android NDK builds and containerized cross-compilation via fyne-cross with Docker/Podman support. This architecture keeps the codebase minimal while maintaining full portability across mobile and desktop platforms.</span><br /> +<br /> +<a class='textlink' href='https://codeberg.org/snonux/quicklogger'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/quicklogger'>View on GitHub</a><br /> <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='23-terraform'>23. terraform</h3><br /> +<h3 style='display: inline' id='26-terraform-26now-na1w-na2w-na3w-na4w'>26. terraform [#26(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: HCL (96.6%), Make (1.9%), YAML (1.5%)</li> @@ -656,34 +731,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='24-quicklogger'>24. quicklogger</h3><br /> -<br /> -<ul> -<li>💻 Languages: Go (96.1%), XML (1.9%), Shell (1.2%), TOML (0.7%)</li> -<li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 35</li> -<li>📈 Lines of Code: 1133</li> -<li>📄 Lines of Documentation: 78</li> -<li>📅 Development Period: 2024-01-20 to 2025-09-13</li> -<li>🏆 Score: 4.8 (combines code size and activity)</li> -<li>⚖️ License: MIT</li> -<li>🏷️ Latest Release: v0.0.4 (2025-09-13)</li> -</ul><br /> -<br /> -<a href='showcase/quicklogger/image-1.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-1.png' /></a><br /> -<br /> -<span>Quicklogger is a lightweight cross-platform GUI application built in Go using the Fyne framework that enables rapid logging of ideas and notes to plain text files. The app is specifically designed for quick Android capture workflows—when you have an idea, you can immediately open the app, type a message, and save it as a timestamped markdown file. These files are then synced to a home computer via Syncthing, creating a frictionless capture-to-archive pipeline for thoughts and tasks.</span><br /> -<br /> -<a href='showcase/quicklogger/image-2.png'><img alt='quicklogger screenshot' title='quicklogger screenshot' src='showcase/quicklogger/image-2.png' /></a><br /> -<br /> -<span>The implementation leverages Go's cross-compilation capabilities and Fyne's UI abstraction to run identically on Android and Linux desktop environments. Build automation is handled through Mage tasks, offering both local Android NDK builds and containerized cross-compilation via fyne-cross with Docker/Podman support. This architecture keeps the codebase minimal while maintaining full portability across mobile and desktop platforms.</span><br /> -<br /> -<a class='textlink' href='https://codeberg.org/snonux/quicklogger'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/quicklogger'>View on GitHub</a><br /> -<br /> -<span>---</span><br /> -<br /> -<h3 style='display: inline' id='25-sillybench'>25. sillybench</h3><br /> +<h3 style='display: inline' id='27-sillybench-27now-na1w-na2w-na3w-na4w'>27. sillybench [#27(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (90.9%), Shell (9.1%)</li> @@ -692,7 +740,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>🏆 Score: 4.6 (combines code size and activity)</li> +<li>🏆 Score: 4.5 (combines code size and activity)</li> <li>⚖️ License: No license found</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -706,30 +754,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='26-goprecords'>26. goprecords</h3><br /> -<br /> -<ul> -<li>💻 Languages: Go (100.0%)</li> -<li>📚 Documentation: Markdown (100.0%)</li> -<li>📊 Commits: 104</li> -<li>📈 Lines of Code: 2527</li> -<li>📄 Lines of Documentation: 489</li> -<li>📅 Development Period: 2013-03-22 to 2026-02-20</li> -<li>🏆 Score: 4.5 (combines code size and activity)</li> -<li>⚖️ License: No license found</li> -<li>🏷️ Latest Release: v0.2.1 (2026-02-20)</li> -</ul><br /> -<br /> -<span>**goprecords** is a Go CLI tool that generates global uptime reports by aggregating <span class='inlinecode'>uptimed</span> record files from multiple hosts. It ranks machines across metrics like total uptime, boot count, downtime, lifespan, and a combined score—organized by host, kernel version, kernel major version, or kernel name. Output is available in plaintext, Markdown, or Gemtext. It can either report directly from a stats directory or import records into SQLite for repeated querying.</span><br /> -<br /> -<span>Under the hood, it parses <span class='inlinecode'>uptimed</span>'s simple <span class='inlinecode'>uptime:boottime:kernel</span> record format, groups entries by the chosen category, and computes aggregates. The architecture is straightforward: a <span class='inlinecode'>cmd/goprecords</span> entry point handles CLI flags and subcommands (<span class='inlinecode'>import</span>, <span class='inlinecode'>query</span>, or direct reporting), while <span class='inlinecode'>internal/goprecords</span> contains the core logic for parsing, aggregation, database operations, and report formatting. It uses <span class='inlinecode'>modernc.org/sqlite</span> (a pure-Go SQLite driver) and Mage for build automation.</span><br /> -<br /> -<a class='textlink' href='https://codeberg.org/snonux/goprecords'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/goprecords'>View on GitHub</a><br /> -<br /> -<span>---</span><br /> -<br /> -<h3 style='display: inline' id='27-gorum'>27. gorum</h3><br /> +<h3 style='display: inline' id='28-gorum-28now-na1w-na2w-na3w-na4w'>28. gorum [#28(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (91.3%), JSON (6.4%), YAML (2.3%)</li> @@ -753,7 +778,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='28-guprecords'>28. guprecords</h3><br /> +<h3 style='display: inline' id='29-guprecords-29now-na1w-na2w-na3w-na4w'>29. guprecords [#29(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Raku (100.0%)</li> @@ -776,7 +801,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='29-geheim'>29. geheim</h3><br /> +<h3 style='display: inline' id='30-geheim-30now-na1w-na2w-na3w-na4w'>30. geheim [#30(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Ruby (86.7%), Shell (13.3%)</li> @@ -799,7 +824,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='30-docker-radicale-server'>30. docker-radicale-server</h3><br /> +<h3 style='display: inline' id='31-docker-radicale-server-31now-na1w-na2w-na3w-na4w'>31. docker-radicale-server [#31(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Make (57.5%), Docker (42.5%)</li> @@ -822,7 +847,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='31-algorithms'>31. algorithms</h3><br /> +<h3 style='display: inline' id='32-algorithms-32now-na1w-na2w-na3w-na4w'>32. algorithms [#32(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (99.2%), Make (0.8%)</li> @@ -831,7 +856,7 @@ <li>📈 Lines of Code: 1728</li> <li>📄 Lines of Documentation: 18</li> <li>📅 Development Period: 2020-07-12 to 2023-04-09</li> -<li>🏆 Score: 2.0 (combines code size and activity)</li> +<li>🏆 Score: 1.9 (combines code size and activity)</li> <li>⚖️ License: Custom License</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -846,7 +871,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='32-randomjournalpage'>32. randomjournalpage</h3><br /> +<h3 style='display: inline' id='33-randomjournalpage-33now-na1w-na2w-na3w-na4w'>33. randomjournalpage [#33(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (94.1%), Make (5.9%)</li> @@ -870,7 +895,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='33-photoalbum'>33. photoalbum</h3><br /> +<h3 style='display: inline' id='34-photoalbum-34now-na1w-na2w-na3w-na4w'>34. photoalbum [#34(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (80.1%), Make (12.3%), Config (7.6%)</li> @@ -894,7 +919,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='34-ioriot'>34. ioriot</h3><br /> +<h3 style='display: inline' id='35-ioriot-35now-na1w-na2w-na3w-na4w'>35. ioriot [#35(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: C (55.5%), C/C++ (24.0%), Config (19.6%), Make (1.0%)</li> @@ -920,7 +945,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='35-ipv6test'>35. ipv6test</h3><br /> +<h3 style='display: inline' id='36-ipv6test-36now-na1w-na2w-na3w-na4w'>36. ipv6test [#36(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (65.8%), Docker (34.2%)</li> @@ -943,7 +968,30 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='36-sway-autorotate'>36. sway-autorotate</h3><br /> +<h3 style='display: inline' id='37-fype-37now-na1w-na2w-na3w-na4w'>37. fype [#37(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> +<br /> +<ul> +<li>💻 Languages: C (77.3%), C/C++ (13.1%), HTML (7.5%), Make (2.1%)</li> +<li>📚 Documentation: Text (65.8%), LaTeX (20.5%), Markdown (13.7%)</li> +<li>📊 Commits: 120</li> +<li>📈 Lines of Code: 7904</li> +<li>📄 Lines of Documentation: 2774</li> +<li>📅 Development Period: 2008-05-15 to 2026-02-28</li> +<li>🏆 Score: 1.4 (combines code size and activity)</li> +<li>⚖️ License: Custom License</li> +<li>🧪 Status: Experimental (no releases yet)</li> +</ul><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 /> +<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/fype'>View on Codeberg</a><br /> +<a class='textlink' href='https://github.com/snonux/fype'>View on GitHub</a><br /> +<br /> +<span>---</span><br /> +<br /> +<h3 style='display: inline' id='38-sway-autorotate-38now-na1w-na2w-na3w-na4w'>38. sway-autorotate [#38(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (100.0%)</li> @@ -952,7 +1000,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>🏆 Score: 1.3 (combines code size and activity)</li> +<li>🏆 Score: 1.2 (combines code size and activity)</li> <li>⚖️ License: GPL-3.0</li> <li>🧪 Status: Experimental (no releases yet)</li> </ul><br /> @@ -966,7 +1014,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='37-mon'>37. mon</h3><br /> +<h3 style='display: inline' id='39-mon-39now-na1w-na2w-na3w-na4w'>39. mon [#39(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (96.5%), Shell (1.8%), Make (1.2%), Config (0.4%)</li> @@ -990,7 +1038,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='38-staticfarm-apache-handlers'>38. staticfarm-apache-handlers</h3><br /> +<h3 style='display: inline' id='40-staticfarm-apache-handlers-40now-na1w-na2w-na3w-na4w'>40. staticfarm-apache-handlers [#40(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (96.4%), Make (3.6%)</li> @@ -1014,7 +1062,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='39-pingdomfetch'>39. pingdomfetch</h3><br /> +<h3 style='display: inline' id='41-pingdomfetch-41now-na1w-na2w-na3w-na4w'>41. pingdomfetch [#41(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (97.3%), Make (2.7%)</li> @@ -1038,7 +1086,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='40-xerl'>40. xerl</h3><br /> +<h3 style='display: inline' id='42-xerl-42now-na1w-na2w-na3w-na4w'>42. xerl [#42(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (98.3%), Config (1.2%), Make (0.5%)</li> @@ -1060,7 +1108,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='41-ychat'>41. ychat</h3><br /> +<h3 style='display: inline' id='43-ychat-43now-na1w-na2w-na3w-na4w'>43. ychat [#43(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: C++ (49.9%), C/C++ (22.2%), Shell (20.6%), Perl (2.5%), HTML (1.9%), Config (1.8%), Make (0.9%), CSS (0.2%)</li> @@ -1084,7 +1132,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='42-fapi'>42. fapi</h3><br /> +<h3 style='display: inline' id='44-fapi-44now-na1w-na2w-na3w-na4w'>44. fapi [#44(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Python (96.6%), Make (3.1%), Config (0.3%)</li> @@ -1107,7 +1155,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='43-perl-c-fibonacci'>43. perl-c-fibonacci</h3><br /> +<h3 style='display: inline' id='45-perl-c-fibonacci-45now-na1w-na2w-na3w-na4w'>45. perl-c-fibonacci [#45(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: C (80.4%), Make (19.6%)</li> @@ -1129,7 +1177,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='44-netcalendar'>44. netcalendar</h3><br /> +<h3 style='display: inline' id='46-netcalendar-46now-na1w-na2w-na3w-na4w'>46. netcalendar [#46(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Java (83.0%), HTML (12.9%), XML (3.0%), CSS (0.8%), Make (0.2%)</li> @@ -1157,12 +1205,12 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='45-loadbars'>45. loadbars</h3><br /> +<h3 style='display: inline' id='47-loadbars-47now-na1w-na2w-na3w-na4w'>47. loadbars [#47(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (97.4%), Make (2.6%)</li> <li>📚 Documentation: Text (100.0%)</li> -<li>📊 Commits: 575</li> +<li>📊 Commits: 577</li> <li>📈 Lines of Code: 1828</li> <li>📄 Lines of Documentation: 100</li> <li>📅 Development Period: 2010-11-05 to 2015-05-23</li> @@ -1179,7 +1227,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='46-gotop'>46. gotop</h3><br /> +<h3 style='display: inline' id='48-gotop-48now-na1w-na2w-na3w-na4w'>48. gotop [#48(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Go (98.0%), Make (2.0%)</li> @@ -1203,7 +1251,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='47-rubyfy'>47. rubyfy</h3><br /> +<h3 style='display: inline' id='49-rubyfy-49now-na1w-na2w-na3w-na4w'>49. rubyfy [#49(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Ruby (98.5%), JSON (1.5%)</li> @@ -1227,31 +1275,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='48-fype'>48. fype</h3><br /> -<br /> -<ul> -<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: 107</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>🏆 Score: 0.7 (combines code size and activity)</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>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 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/fype'>View on Codeberg</a><br /> -<a class='textlink' href='https://github.com/snonux/fype'>View on GitHub</a><br /> -<br /> -<span>---</span><br /> -<br /> -<h3 style='display: inline' id='49-pwgrep'>49. pwgrep</h3><br /> +<h3 style='display: inline' id='50-pwgrep-50now-na1w-na2w-na3w-na4w'>50. pwgrep [#50(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (85.0%), Make (15.0%)</li> @@ -1275,7 +1299,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='50-perldaemon'>50. perldaemon</h3><br /> +<h3 style='display: inline' id='51-perldaemon-51now-na1w-na2w-na3w-na4w'>51. perldaemon [#51(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (72.3%), Shell (23.8%), Config (3.9%)</li> @@ -1297,7 +1321,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='51-jsmstrade'>51. jsmstrade</h3><br /> +<h3 style='display: inline' id='52-jsmstrade-52now-na1w-na2w-na3w-na4w'>52. jsmstrade [#52(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Java (76.0%), Shell (15.4%), XML (8.6%)</li> @@ -1323,7 +1347,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='52-japi'>52. japi</h3><br /> +<h3 style='display: inline' id='53-japi-53now-na1w-na2w-na3w-na4w'>53. japi [#53(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (78.3%), Make (21.7%)</li> @@ -1347,7 +1371,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='53-perl-poetry'>53. perl-poetry</h3><br /> +<h3 style='display: inline' id='54-perl-poetry-54now-na1w-na2w-na3w-na4w'>54. perl-poetry [#54(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Perl (100.0%)</li> @@ -1371,7 +1395,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='54-muttdelay'>54. muttdelay</h3><br /> +<h3 style='display: inline' id='55-muttdelay-55now-na1w-na2w-na3w-na4w'>55. muttdelay [#55(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Make (47.1%), Shell (46.3%), Vim Script (5.9%), Config (0.7%)</li> @@ -1395,7 +1419,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='55-netdiff'>55. netdiff</h3><br /> +<h3 style='display: inline' id='56-netdiff-56now-na1w-na2w-na3w-na4w'>56. netdiff [#56(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (52.2%), Make (46.3%), Config (1.5%)</li> @@ -1419,7 +1443,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='56-debroid'>56. debroid</h3><br /> +<h3 style='display: inline' id='57-debroid-57now-na1w-na2w-na3w-na4w'>57. debroid [#57(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (92.0%), Make (8.0%)</li> @@ -1445,7 +1469,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='57-hsbot'>57. hsbot</h3><br /> +<h3 style='display: inline' id='58-hsbot-58now-na1w-na2w-na3w-na4w'>58. hsbot [#58(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Haskell (98.5%), Make (1.5%)</li> @@ -1467,7 +1491,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='58-cpuinfo'>58. cpuinfo</h3><br /> +<h3 style='display: inline' id='59-cpuinfo-59now-na1w-na2w-na3w-na4w'>59. cpuinfo [#59(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (53.2%), Make (46.8%)</li> @@ -1491,7 +1515,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='59-template'>59. template</h3><br /> +<h3 style='display: inline' id='60-template-60now-na1w-na2w-na3w-na4w'>60. template [#60(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Make (89.2%), Shell (10.8%)</li> @@ -1515,7 +1539,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='60-awksite'>60. awksite</h3><br /> +<h3 style='display: inline' id='61-awksite-61now-na1w-na2w-na3w-na4w'>61. awksite [#61(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: AWK (72.1%), HTML (16.4%), Config (11.5%)</li> @@ -1539,7 +1563,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='61-dyndns'>61. dyndns</h3><br /> +<h3 style='display: inline' id='62-dyndns-62now-na1w-na2w-na3w-na4w'>62. dyndns [#62(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>💻 Languages: Shell (100.0%)</li> @@ -1563,7 +1587,7 @@ <br /> <span>---</span><br /> <br /> -<h3 style='display: inline' id='62-vs-sim'>62. vs-sim</h3><br /> +<h3 style='display: inline' id='63-vs-sim-63now-na1w-na2w-na3w-na4w'>63. vs-sim [#63(now) ·n/a(1w) ·n/a(2w) ·n/a(3w) ·n/a(4w)]</h3><br /> <br /> <ul> <li>📚 Documentation: Markdown (100.0%)</li> |
