summaryrefslogtreecommitdiff
path: root/about/showcase.html
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-08-31 15:19:43 +0300
committerPaul Buetow <paul@buetow.org>2025-08-31 15:19:43 +0300
commitedc84a22e448780871fccdf5eed4babdeb115475 (patch)
treec274d6e5d6eaa1b126580f804d8e15793fea7701 /about/showcase.html
parent0577aba3f121c483ad1f1a25071600d5683cf32b (diff)
Update content for html
Diffstat (limited to 'about/showcase.html')
-rw-r--r--about/showcase.html333
1 files changed, 165 insertions, 168 deletions
diff --git a/about/showcase.html b/about/showcase.html
index 0a6f6bb2..dae182b3 100644
--- a/about/showcase.html
+++ b/about/showcase.html
@@ -13,7 +13,7 @@
</p>
<h1 style='display: inline' id='project-showcase'>Project Showcase</h1><br />
<br />
-<span>Generated on: 2025-08-24</span><br />
+<span>Generated on: 2025-08-31</span><br />
<br />
<span>This page showcases my side projects, providing an overview of what each project does, its technical implementation, and key metrics. Each project summary includes information about the programming languages used, development activity, and licensing. The projects are ordered by recent activity, with the most actively maintained projects listed first.</span><br />
<br />
@@ -31,9 +31,9 @@
<li>⇢ ⇢ <a href='#ior'>ior</a></li>
<li>⇢ ⇢ <a href='#dtail'>dtail</a></li>
<li>⇢ ⇢ <a href='#wireguardmeshgenerator'>wireguardmeshgenerator</a></li>
+<li>⇢ ⇢ <a href='#foostats'>foostats</a></li>
<li>⇢ ⇢ <a href='#ds-sim'>ds-sim</a></li>
<li>⇢ ⇢ <a href='#sillybench'>sillybench</a></li>
-<li>⇢ ⇢ <a href='#foostats'>foostats</a></li>
<li>⇢ ⇢ <a href='#gos'>gos</a></li>
<li>⇢ ⇢ <a href='#rcm'>rcm</a></li>
<li>⇢ ⇢ <a href='#gemtexter'>gemtexter</a></li>
@@ -47,12 +47,12 @@
<li>⇢ ⇢ <a href='#guprecords'>guprecords</a></li>
<li>⇢ ⇢ <a href='#randomjournalpage'>randomjournalpage</a></li>
<li>⇢ ⇢ <a href='#sway-autorotate'>sway-autorotate</a></li>
-<li>⇢ ⇢ <a href='#photoalbum'>photoalbum</a></li>
<li>⇢ ⇢ <a href='#algorithms'>algorithms</a></li>
<li>⇢ ⇢ <a href='#geheim'>geheim</a></li>
<li>⇢ ⇢ <a href='#foozone'>foo.zone</a></li>
<li>⇢ ⇢ <a href='#perl-c-fibonacci'>perl-c-fibonacci</a></li>
<li>⇢ ⇢ <a href='#ioriot'>ioriot</a></li>
+<li>⇢ ⇢ <a href='#photoalbum'>photoalbum</a></li>
<li>⇢ ⇢ <a href='#staticfarm-apache-handlers'>staticfarm-apache-handlers</a></li>
<li>⇢ ⇢ <a href='#dyndns'>dyndns</a></li>
<li>⇢ ⇢ <a href='#mon'>mon</a></li>
@@ -74,21 +74,21 @@
<li>⇢ ⇢ <a href='#perldaemon'>perldaemon</a></li>
<li>⇢ ⇢ <a href='#awksite'>awksite</a></li>
<li>⇢ ⇢ <a href='#jsmstrade'>jsmstrade</a></li>
-<li>⇢ ⇢ <a href='#netcalendar'>netcalendar</a></li>
<li>⇢ ⇢ <a href='#ychat'>ychat</a></li>
-<li>⇢ ⇢ <a href='#vs-sim'>vs-sim</a></li>
+<li>⇢ ⇢ <a href='#netcalendar'>netcalendar</a></li>
<li>⇢ ⇢ <a href='#hsbot'>hsbot</a></li>
<li>⇢ ⇢ <a href='#fype'>fype</a></li>
+<li>⇢ ⇢ <a href='#vs-sim'>vs-sim</a></li>
</ul><br />
<h2 style='display: inline' id='overall-statistics'>Overall Statistics</h2><br />
<br />
<ul>
<li>📦 Total Projects: 56</li>
-<li>📊 Total Commits: 10,770</li>
-<li>📈 Total Lines of Code: 252,448</li>
-<li>📄 Total Lines of Documentation: 25,665</li>
-<li>💻 Languages: Go (24.7%), Java (21.7%), C++ (14.8%), C/C++ (8.3%), C (8.0%), Perl (6.8%), Shell (5.9%), Config (1.8%), HTML (1.8%), Ruby (1.1%), HCL (1.1%), Make (0.8%), YAML (0.7%), Python (0.6%), CSS (0.5%), Raku (0.3%), JSON (0.3%), XML (0.3%), Haskell (0.2%), TOML (0.1%)</li>
-<li>📚 Documentation: Text (45.5%), Markdown (41.5%), LaTeX (13.1%)</li>
+<li>📊 Total Commits: 10,779</li>
+<li>📈 Total Lines of Code: 193,350</li>
+<li>📄 Total Lines of Documentation: 21,550</li>
+<li>💻 Languages: Go (32.2%), Java (20.9%), C++ (8.8%), C (8.8%), Perl (8.3%), C/C++ (6.3%), Shell (3.0%), HTML (1.9%), Config (1.9%), Ruby (1.5%), HCL (1.4%), YAML (1.0%), Python (0.8%), Make (0.8%), CSS (0.7%), Raku (0.5%), JSON (0.4%), XML (0.3%), Haskell (0.3%), TOML (0.2%)</li>
+<li>📚 Documentation: Text (50.7%), Markdown (49.3%)</li>
<li>🎵 Vibe-Coded Projects: 4 out of 56 (7.1%)</li>
<li>🤖 AI-Assisted Projects (including vibe-coded): 8 out of 56 (14.3% AI-assisted, 85.7% human-only)</li>
<li>🚀 Release Status: 34 released, 22 experimental (60.7% with releases, 39.3% experimental)</li>
@@ -104,7 +104,7 @@
<li>📈 Lines of Code: 5715</li>
<li>📄 Lines of Documentation: 1183</li>
<li>📅 Development Period: 2021-12-28 to 2025-08-13</li>
-<li>🔥 Recent Activity: 15.5 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 22.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -127,7 +127,7 @@
<li>📈 Lines of Code: 12003</li>
<li>📄 Lines of Documentation: 361</li>
<li>📅 Development Period: 2025-07-14 to 2025-08-02</li>
-<li>🔥 Recent Activity: 32.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 40.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🏷️ Latest Release: v0.7.5 (2025-08-02)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -155,7 +155,7 @@
<li>📈 Lines of Code: 9605</li>
<li>📄 Lines of Documentation: 2433</li>
<li>📅 Development Period: 2025-06-23 to 2025-08-19</li>
-<li>🔥 Recent Activity: 37.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 44.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: BSD-2-Clause</li>
<li>🏷️ Latest Release: v0.9.0 (2025-08-19)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -179,7 +179,7 @@
<li>📈 Lines of Code: 873</li>
<li>📄 Lines of Documentation: 137</li>
<li>📅 Development Period: 2025-06-25 to 2025-07-19</li>
-<li>🔥 Recent Activity: 56.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 64.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: BSD-2-Clause</li>
<li>🏷️ Latest Release: v0.0.0 (2025-06-29)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -203,7 +203,7 @@
<li>📈 Lines of Code: 6160</li>
<li>📄 Lines of Documentation: 162</li>
<li>📅 Development Period: 2025-06-19 to 2025-07-12</li>
-<li>🔥 Recent Activity: 58.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 65.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: BSD-2-Clause</li>
<li>🏷️ Latest Release: v0.9.2 (2025-07-02)</li>
<li>🎵 Vibe-Coded: This project has been vibe coded</li>
@@ -231,7 +231,7 @@
<li>📈 Lines of Code: 12762</li>
<li>📄 Lines of Documentation: 742</li>
<li>📅 Development Period: 2024-01-18 to 2025-07-14</li>
-<li>🔥 Recent Activity: 96.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 103.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -261,7 +261,7 @@
<li>📈 Lines of Code: 20091</li>
<li>📄 Lines of Documentation: 5674</li>
<li>📅 Development Period: 2020-01-09 to 2025-06-20</li>
-<li>🔥 Recent Activity: 98.2 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 105.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Apache-2.0</li>
<li>🏷️ Latest Release: v4.3.3 (2024-08-23)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -289,7 +289,7 @@
<li>📈 Lines of Code: 396</li>
<li>📄 Lines of Documentation: 24</li>
<li>📅 Development Period: 2025-04-18 to 2025-05-11</li>
-<li>🔥 Recent Activity: 117.5 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 124.7 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.0.0 (2025-05-11)</li>
</ul><br />
@@ -303,6 +303,29 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='foostats'>foostats</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Perl (100.0%)</li>
+<li>📚 Documentation: Markdown (85.1%), Text (14.9%)</li>
+<li>📊 Commits: 76</li>
+<li>📈 Lines of Code: 1577</li>
+<li>📄 Lines of Documentation: 154</li>
+<li>📅 Development Period: 2023-01-02 to 2025-08-31</li>
+<li>🔥 Recent Activity: 135.0 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: Custom License</li>
+<li>🏷️ Latest Release: v0.1.0 (2025-07-12)</li>
+</ul><br />
+<br />
+<span>Based on the README and project structure, **foostats** is a privacy-respecting web analytics tool written in Perl specifically designed for OpenBSD systems. It processes both traditional HTTP/HTTPS logs and Gemini protocol logs to generate comprehensive traffic statistics while maintaining visitor privacy through SHA3-512 IP hashing. The tool is built for the foo.zone ecosystem and similar sites that need analytics without compromising user privacy.</span><br />
+<br />
+<span>The project implements a modular architecture with seven core components: FileHelper for I/O operations, DateHelper for date management, Logreader for log parsing, Filter for security filtering, Aggregator for statistics collection, FileOutputter for compressed JSON storage, Replicator for multi-node data sharing, Merger for combining statistics, and Reporter for generating human-readable Gemtext reports. It supports distributed deployments with replication between partner nodes and includes security features like suspicious request filtering based on configurable patterns (blocking common attack vectors like WordPress admin paths and PHP files).</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/foostats'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/foostats'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='ds-sim'>ds-sim</h3><br />
<br />
<ul>
@@ -312,7 +335,7 @@
<li>📈 Lines of Code: 25762</li>
<li>📄 Lines of Documentation: 3101</li>
<li>📅 Development Period: 2008-05-15 to 2025-06-27</li>
-<li>🔥 Recent Activity: 130.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 138.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -338,7 +361,7 @@
<li>📈 Lines of Code: 33</li>
<li>📄 Lines of Documentation: 3</li>
<li>📅 Development Period: 2025-04-03 to 2025-04-03</li>
-<li>🔥 Recent Activity: 143.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 150.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -352,39 +375,16 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='foostats'>foostats</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Perl (100.0%)</li>
-<li>📚 Documentation: Markdown (85.1%), Text (14.9%)</li>
-<li>📊 Commits: 73</li>
-<li>📈 Lines of Code: 1565</li>
-<li>📄 Lines of Documentation: 154</li>
-<li>📅 Development Period: 2023-01-02 to 2025-08-22</li>
-<li>🔥 Recent Activity: 146.6 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: Custom License</li>
-<li>🏷️ Latest Release: v0.1.0 (2025-07-12)</li>
-</ul><br />
-<br />
-<span>Based on the README and project structure, **foostats** is a privacy-respecting web analytics tool written in Perl specifically designed for OpenBSD systems. It processes both traditional HTTP/HTTPS logs and Gemini protocol logs to generate comprehensive traffic statistics while maintaining visitor privacy through SHA3-512 IP hashing. The tool is built for the foo.zone ecosystem and similar sites that need analytics without compromising user privacy.</span><br />
-<br />
-<span>The project implements a modular architecture with seven core components: FileHelper for I/O operations, DateHelper for date management, Logreader for log parsing, Filter for security filtering, Aggregator for statistics collection, FileOutputter for compressed JSON storage, Replicator for multi-node data sharing, Merger for combining statistics, and Reporter for generating human-readable Gemtext reports. It supports distributed deployments with replication between partner nodes and includes security features like suspicious request filtering based on configurable patterns (blocking common attack vectors like WordPress admin paths and PHP files).</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/foostats'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/foostats'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='gos'>gos</h3><br />
<br />
<ul>
<li>💻 Languages: Go (98.6%), YAML (1.1%), JSON (0.2%)</li>
<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 382</li>
-<li>📈 Lines of Code: 3967</li>
-<li>📄 Lines of Documentation: 324</li>
-<li>📅 Development Period: 2024-05-04 to 2025-07-12</li>
-<li>🔥 Recent Activity: 156.6 days (avg. age of last 42 commits)</li>
+<li>📊 Commits: 384</li>
+<li>📈 Lines of Code: 3951</li>
+<li>📄 Lines of Documentation: 342</li>
+<li>📅 Development Period: 2024-05-04 to 2025-08-28</li>
+<li>🔥 Recent Activity: 154.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.0.0 (2025-03-04)</li>
</ul><br />
@@ -411,7 +411,7 @@
<li>📈 Lines of Code: 1373</li>
<li>📄 Lines of Documentation: 48</li>
<li>📅 Development Period: 2024-12-05 to 2025-02-28</li>
-<li>🔥 Recent Activity: 184.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 191.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -434,7 +434,7 @@
<li>📈 Lines of Code: 2268</li>
<li>📄 Lines of Documentation: 1180</li>
<li>📅 Development Period: 2021-05-21 to 2025-08-05</li>
-<li>🔥 Recent Activity: 238.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 245.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-3.0</li>
<li>🏷️ Latest Release: 3.0.0 (2024-10-01)</li>
</ul><br />
@@ -457,7 +457,7 @@
<li>📈 Lines of Code: 17</li>
<li>📄 Lines of Documentation: 3</li>
<li>📅 Development Period: 2024-03-24 to 2025-08-08</li>
-<li>🔥 Recent Activity: 392.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 399.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -480,7 +480,7 @@
<li>📈 Lines of Code: 40</li>
<li>📄 Lines of Documentation: 3</li>
<li>📅 Development Period: 2023-12-31 to 2025-08-11</li>
-<li>🔥 Recent Activity: 483.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 490.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -503,7 +503,7 @@
<li>📈 Lines of Code: 917</li>
<li>📄 Lines of Documentation: 33</li>
<li>📅 Development Period: 2024-01-20 to 2025-07-06</li>
-<li>🔥 Recent Activity: 494.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 501.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🏷️ Latest Release: v0.0.3 (2025-07-06)</li>
</ul><br />
@@ -530,7 +530,7 @@
<li>📈 Lines of Code: 2851</li>
<li>📄 Lines of Documentation: 52</li>
<li>📅 Development Period: 2023-08-27 to 2025-08-08</li>
-<li>🔥 Recent Activity: 519.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 527.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -553,7 +553,7 @@
<li>📈 Lines of Code: 33</li>
<li>📄 Lines of Documentation: 3</li>
<li>📅 Development Period: 2023-08-13 to 2025-07-31</li>
-<li>🔥 Recent Activity: 527.0 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 534.2 days (avg. age of last 42 commits)</li>
<li>⚖️ License: MIT</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -576,7 +576,7 @@
<li>📈 Lines of Code: 1096</li>
<li>📄 Lines of Documentation: 287</li>
<li>📅 Development Period: 2023-04-17 to 2025-06-12</li>
-<li>🔥 Recent Activity: 560.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 568.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.1.0 (2024-05-03)</li>
<li>🤖 AI-Assisted: This project was partially created with the help of generative AI</li>
@@ -602,7 +602,7 @@
<li>📈 Lines of Code: 1525</li>
<li>📄 Lines of Documentation: 15</li>
<li>📅 Development Period: 2023-04-17 to 2023-11-19</li>
-<li>🔥 Recent Activity: 746.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 754.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -626,7 +626,7 @@
<li>📈 Lines of Code: 312</li>
<li>📄 Lines of Documentation: 416</li>
<li>📅 Development Period: 2013-03-22 to 2025-05-18</li>
-<li>🔥 Recent Activity: 796.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 804.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: v1.0.0 (2023-04-29)</li>
</ul><br />
@@ -649,7 +649,7 @@
<li>📈 Lines of Code: 51</li>
<li>📄 Lines of Documentation: 26</li>
<li>📅 Development Period: 2022-06-02 to 2024-04-20</li>
-<li>🔥 Recent Activity: 811.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 818.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -673,7 +673,7 @@
<li>📈 Lines of Code: 41</li>
<li>📄 Lines of Documentation: 17</li>
<li>📅 Development Period: 2020-01-30 to 2025-04-30</li>
-<li>🔥 Recent Activity: 1105.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1112.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-3.0</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -687,30 +687,6 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='photoalbum'>photoalbum</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Shell (80.1%), Make (12.3%), Config (7.6%)</li>
-<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 153</li>
-<li>📈 Lines of Code: 342</li>
-<li>📄 Lines of Documentation: 39</li>
-<li>📅 Development Period: 2011-11-19 to 2022-04-02</li>
-<li>🔥 Recent Activity: 1324.7 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: No license found</li>
-<li>🏷️ Latest Release: 0.5.0 (2022-02-21)</li>
-</ul><br />
-<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>PhotoAlbum is a minimal Bash script for Unix-like systems that generates static web photo albums from directories of images. It creates pure HTML+CSS galleries without JavaScript, making them lightweight and universally compatible. The tool is designed for simplicity and portability - users point it at a directory of photos, configure basic settings like thumbnail size and gallery title, and it automatically generates a complete static website with image previews, navigation, and optional download archives.</span><br />
-<br />
-<span>The implementation centers around a single Bash script (<span class='inlinecode'>photoalbum.sh</span>) that uses ImageMagick&#39;s <span class='inlinecode'>convert</span> command to generate thumbnails and resized images, then applies customizable HTML templates to create the gallery structure. The architecture separates configuration (via <span class='inlinecode'>photoalbumrc</span> files), templating (modular <span class='inlinecode'>.tmpl</span> files for different page components), and processing logic, allowing users to customize the appearance while maintaining the core functionality. The generated output is a self-contained <span class='inlinecode'>dist</span> directory that can be deployed to any static web server.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/photoalbum'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/photoalbum'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='algorithms'>algorithms</h3><br />
<br />
<ul>
@@ -720,7 +696,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>🔥 Recent Activity: 1475.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1483.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -744,7 +720,7 @@
<li>📈 Lines of Code: 671</li>
<li>📄 Lines of Documentation: 19</li>
<li>📅 Development Period: 2018-05-26 to 2025-01-21</li>
-<li>🔥 Recent Activity: 1477.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1484.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -764,11 +740,11 @@
<br />
<ul>
<li>📚 Documentation: Markdown (100.0%)</li>
-<li>📊 Commits: 3036</li>
+<li>📊 Commits: 3040</li>
<li>📈 Lines of Code: 0</li>
<li>📄 Lines of Documentation: 23</li>
<li>📅 Development Period: 2021-05-21 to 2022-04-02</li>
-<li>🔥 Recent Activity: 1491.5 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1498.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -792,7 +768,7 @@
<li>📈 Lines of Code: 51</li>
<li>📄 Lines of Documentation: 69</li>
<li>📅 Development Period: 2014-03-24 to 2022-04-23</li>
-<li>🔥 Recent Activity: 1956.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 1964.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -816,7 +792,7 @@
<li>📈 Lines of Code: 12420</li>
<li>📄 Lines of Documentation: 610</li>
<li>📅 Development Period: 2018-03-01 to 2020-01-22</li>
-<li>🔥 Recent Activity: 2498.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 2505.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Apache-2.0</li>
<li>🏷️ Latest Release: 0.5.1 (2019-01-04)</li>
</ul><br />
@@ -833,6 +809,30 @@
<br />
<span>---</span><br />
<br />
+<h3 style='display: inline' id='photoalbum'>photoalbum</h3><br />
+<br />
+<ul>
+<li>💻 Languages: Shell (78.1%), Make (13.5%), Config (8.4%)</li>
+<li>📚 Documentation: Text (100.0%)</li>
+<li>📊 Commits: 153</li>
+<li>📈 Lines of Code: 311</li>
+<li>📄 Lines of Documentation: 45</li>
+<li>📅 Development Period: 2011-11-19 to 2022-02-20</li>
+<li>🔥 Recent Activity: 2930.0 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: No license found</li>
+<li>🏷️ Latest Release: 0.5.0 (2022-02-21)</li>
+</ul><br />
+<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>PhotoAlbum is a minimal Bash script for Unix-like systems that generates static web photo albums from directories of images. It creates pure HTML+CSS galleries without JavaScript, making them lightweight and universally compatible. The tool is designed for simplicity and portability - users point it at a directory of photos, configure basic settings like thumbnail size and gallery title, and it automatically generates a complete static website with image previews, navigation, and optional download archives.</span><br />
+<br />
+<span>The implementation centers around a single Bash script (<span class='inlinecode'>photoalbum.sh</span>) that uses ImageMagick&#39;s <span class='inlinecode'>convert</span> command to generate thumbnails and resized images, then applies customizable HTML templates to create the gallery structure. The architecture separates configuration (via <span class='inlinecode'>photoalbumrc</span> files), templating (modular <span class='inlinecode'>.tmpl</span> files for different page components), and processing logic, allowing users to customize the appearance while maintaining the core functionality. The generated output is a self-contained <span class='inlinecode'>dist</span> directory that can be deployed to any static web server.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/photoalbum'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/photoalbum'>View on GitHub</a><br />
+<br />
+<span>---</span><br />
+<br />
<h3 style='display: inline' id='staticfarm-apache-handlers'>staticfarm-apache-handlers</h3><br />
<br />
<ul>
@@ -842,7 +842,7 @@
<li>📈 Lines of Code: 919</li>
<li>📄 Lines of Documentation: 12</li>
<li>📅 Development Period: 2015-01-02 to 2021-11-04</li>
-<li>🔥 Recent Activity: 3007.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3014.2 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.1.3 (2015-01-02)</li>
</ul><br />
@@ -866,7 +866,7 @@
<li>📈 Lines of Code: 18</li>
<li>📄 Lines of Documentation: 49</li>
<li>📅 Development Period: 2014-03-24 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3242.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3250.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -890,7 +890,7 @@
<li>📈 Lines of Code: 5360</li>
<li>📄 Lines of Documentation: 789</li>
<li>📅 Development Period: 2015-01-02 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3509.6 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3516.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.1 (2015-01-02)</li>
</ul><br />
@@ -914,7 +914,7 @@
<li>📈 Lines of Code: 273</li>
<li>📄 Lines of Documentation: 32</li>
<li>📅 Development Period: 2015-09-29 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3513.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3521.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Apache-2.0</li>
<li>🏷️ Latest Release: 0 (2015-10-26)</li>
</ul><br />
@@ -938,7 +938,7 @@
<li>📈 Lines of Code: 1839</li>
<li>📄 Lines of Documentation: 412</li>
<li>📅 Development Period: 2015-01-02 to 2021-11-05</li>
-<li>🔥 Recent Activity: 3593.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3600.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.2 (2015-01-02)</li>
</ul><br />
@@ -962,7 +962,7 @@
<li>📈 Lines of Code: 499</li>
<li>📄 Lines of Documentation: 8</li>
<li>📅 Development Period: 2015-05-24 to 2021-11-03</li>
-<li>🔥 Recent Activity: 3604.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3611.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.1 (2015-06-01)</li>
</ul><br />
@@ -986,7 +986,7 @@
<li>📈 Lines of Code: 88</li>
<li>📄 Lines of Documentation: 148</li>
<li>📅 Development Period: 2015-06-18 to 2015-12-05</li>
-<li>🔥 Recent Activity: 3707.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3715.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1010,7 +1010,7 @@
<li>📊 Commits: 670</li>
<li>📈 Lines of Code: 1667</li>
<li>📅 Development Period: 2011-03-06 to 2017-01-01</li>
-<li>🔥 Recent Activity: 3925.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3933.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.0.0 (2018-12-22)</li>
</ul><br />
@@ -1036,7 +1036,7 @@
<li>📈 Lines of Code: 1681</li>
<li>📄 Lines of Documentation: 539</li>
<li>📅 Development Period: 2014-03-10 to 2021-11-03</li>
-<li>🔥 Recent Activity: 3985.9 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 3993.1 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.2 (2014-11-17)</li>
</ul><br />
@@ -1060,7 +1060,7 @@
<li>📈 Lines of Code: 65</li>
<li>📄 Lines of Documentation: 228</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-04</li>
-<li>🔥 Recent Activity: 4040.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4047.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.0.0.0 (2013-03-22)</li>
</ul><br />
@@ -1084,7 +1084,7 @@
<li>📈 Lines of Code: 136</li>
<li>📄 Lines of Documentation: 96</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4053.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4060.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.2.0 (2014-07-05)</li>
</ul><br />
@@ -1108,7 +1108,7 @@
<li>📈 Lines of Code: 134</li>
<li>📄 Lines of Documentation: 106</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4060.8 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4068.0 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.1.5 (2014-06-22)</li>
</ul><br />
@@ -1132,7 +1132,7 @@
<li>📈 Lines of Code: 493</li>
<li>📄 Lines of Documentation: 26</li>
<li>📅 Development Period: 2009-09-27 to 2021-11-02</li>
-<li>🔥 Recent Activity: 4104.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4111.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.9.3 (2014-06-14)</li>
</ul><br />
@@ -1156,7 +1156,7 @@
<li>📈 Lines of Code: 286</li>
<li>📄 Lines of Documentation: 144</li>
<li>📅 Development Period: 2013-03-22 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4109.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4116.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.4.3 (2014-06-16)</li>
</ul><br />
@@ -1180,7 +1180,7 @@
<li>📈 Lines of Code: 191</li>
<li>📄 Lines of Documentation: 8</li>
<li>📅 Development Period: 2014-03-24 to 2014-03-24</li>
-<li>🔥 Recent Activity: 4170.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4177.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1202,7 +1202,7 @@
<li>📊 Commits: 7</li>
<li>📈 Lines of Code: 80</li>
<li>📅 Development Period: 2011-07-09 to 2015-01-13</li>
-<li>🔥 Recent Activity: 4250.4 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4257.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1226,7 +1226,7 @@
<li>📈 Lines of Code: 124</li>
<li>📄 Lines of Documentation: 75</li>
<li>📅 Development Period: 2010-11-05 to 2021-11-05</li>
-<li>🔥 Recent Activity: 4291.1 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4298.3 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 1.0.2 (2014-06-22)</li>
</ul><br />
@@ -1250,7 +1250,7 @@
<li>📈 Lines of Code: 1828</li>
<li>📄 Lines of Documentation: 100</li>
<li>📅 Development Period: 2010-11-05 to 2015-05-23</li>
-<li>🔥 Recent Activity: 4321.2 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4328.4 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: 0.7.5 (2014-06-22)</li>
</ul><br />
@@ -1268,11 +1268,11 @@
<h3 style='display: inline' id='perldaemon'>perldaemon</h3><br />
<br />
<ul>
-<li>💻 Languages: Perl (72.3%), Shell (23.8%), Config (3.9%)</li>
+<li>💻 Languages: Perl (74.2%), Shell (22.2%), Config (3.6%)</li>
<li>📊 Commits: 110</li>
-<li>📈 Lines of Code: 614</li>
+<li>📈 Lines of Code: 659</li>
<li>📅 Development Period: 2011-02-05 to 2022-04-21</li>
-<li>🔥 Recent Activity: 4370.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4472.6 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v1.4 (2022-04-29)</li>
</ul><br />
@@ -1296,7 +1296,7 @@
<li>📈 Lines of Code: 122</li>
<li>📄 Lines of Documentation: 10</li>
<li>📅 Development Period: 2011-01-27 to 2014-06-22</li>
-<li>🔥 Recent Activity: 4701.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4708.9 days (avg. age of last 42 commits)</li>
<li>⚖️ License: No license found</li>
<li>🏷️ Latest Release: v0.2 (2011-01-27)</li>
</ul><br />
@@ -1320,7 +1320,7 @@
<li>📈 Lines of Code: 720</li>
<li>📄 Lines of Documentation: 6</li>
<li>📅 Development Period: 2008-06-21 to 2021-11-03</li>
-<li>🔥 Recent Activity: 4764.3 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 4771.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🏷️ Latest Release: v0.3 (2009-02-08)</li>
</ul><br />
@@ -1337,44 +1337,16 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='netcalendar'>netcalendar</h3><br />
-<br />
-<ul>
-<li>💻 Languages: Java (83.0%), HTML (12.9%), XML (3.0%), CSS (0.8%), Make (0.2%)</li>
-<li>📚 Documentation: Text (89.7%), Markdown (10.3%)</li>
-<li>📊 Commits: 50</li>
-<li>📈 Lines of Code: 17380</li>
-<li>📄 Lines of Documentation: 947</li>
-<li>📅 Development Period: 2009-02-07 to 2021-05-01</li>
-<li>🔥 Recent Activity: 5395.0 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: GPL-2.0</li>
-<li>🏷️ Latest Release: v0.1 (2009-02-08)</li>
-</ul><br />
-<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 />
-<a href='showcase/netcalendar/image-1.png'><img alt='netcalendar screenshot' title='netcalendar screenshot' src='showcase/netcalendar/image-1.png' /></a><br />
-<br />
-<span>NetCalendar is a networked calendar application written in Java that provides both client and server functionality for managing and sharing calendar events. The application implements a client-server architecture where the server manages a calendar database and serves multiple clients over TCP/IP, with optional SSL encryption for secure communication. Users can create, edit, and search calendar events with different categories (birthdays, studies, diverse events) and the system provides visual color-coding to indicate event urgency (red for next 24 hours, orange for next week, etc.).</span><br />
-<br />
-<a href='showcase/netcalendar/image-2.png'><img alt='netcalendar screenshot' title='netcalendar screenshot' src='showcase/netcalendar/image-2.png' /></a><br />
-<br />
-<span>The implementation uses a clean separation of concerns with dedicated packages for client GUI components, server database management, and shared utilities. The client features a Swing-based interface with table views, input forms, and search capabilities, while the server handles concurrent client connections and maintains event persistence in text-based database files. The application supports both standalone mode (client and server in same process) and distributed mode across multiple machines, making it useful for small teams or organizations that need shared calendar functionality without relying on external services.</span><br />
-<br />
-<a class='textlink' href='https://codeberg.org/snonux/netcalendar'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/netcalendar'>View on GitHub</a><br />
-<br />
-<span>---</span><br />
-<br />
<h3 style='display: inline' id='ychat'>ychat</h3><br />
<br />
<ul>
-<li>💻 Languages: C++ (54.9%), C/C++ (23.0%), Shell (13.8%), Perl (2.5%), HTML (2.5%), Config (2.3%), Make (0.8%), CSS (0.2%)</li>
+<li>💻 Languages: C++ (62.8%), C/C++ (27.1%), HTML (3.1%), Config (2.5%), Perl (1.9%), Shell (1.9%), Make (0.4%), CSS (0.2%)</li>
<li>📚 Documentation: Text (100.0%)</li>
<li>📊 Commits: 67</li>
-<li>📈 Lines of Code: 67884</li>
-<li>📄 Lines of Documentation: 127</li>
-<li>📅 Development Period: 2008-05-15 to 2014-06-30</li>
-<li>🔥 Recent Activity: 5415.3 days (avg. age of last 42 commits)</li>
+<li>📈 Lines of Code: 27104</li>
+<li>📄 Lines of Documentation: 109</li>
+<li>📅 Development Period: 2008-05-15 to 2014-07-01</li>
+<li>🔥 Recent Activity: 5372.5 days (avg. age of last 42 commits)</li>
<li>⚖️ License: GPL-2.0</li>
<li>🏷️ Latest Release: yhttpd-0.7.2 (2013-04-06)</li>
</ul><br />
@@ -1391,29 +1363,31 @@
<br />
<span>---</span><br />
<br />
-<h3 style='display: inline' id='vs-sim'>vs-sim</h3><br />
+<h3 style='display: inline' id='netcalendar'>netcalendar</h3><br />
<br />
<ul>
-<li>💻 Languages: Java (98.6%), Shell (0.8%), XML (0.4%)</li>
-<li>📚 Documentation: LaTeX (98.4%), Text (1.4%), Markdown (0.2%)</li>
-<li>📊 Commits: 411</li>
-<li>📈 Lines of Code: 14582</li>
-<li>📄 Lines of Documentation: 2903</li>
-<li>📅 Development Period: 2008-05-15 to 2022-04-03</li>
-<li>🔥 Recent Activity: 5431.3 days (avg. age of last 42 commits)</li>
-<li>⚖️ License: Custom License</li>
-<li>🏷️ Latest Release: v1.0 (2008-08-24)</li>
+<li>💻 Languages: Java (83.0%), HTML (12.9%), XML (3.0%), CSS (0.8%), Make (0.2%)</li>
+<li>📚 Documentation: Text (89.7%), Markdown (10.3%)</li>
+<li>📊 Commits: 50</li>
+<li>📈 Lines of Code: 17380</li>
+<li>📄 Lines of Documentation: 947</li>
+<li>📅 Development Period: 2009-02-07 to 2021-05-01</li>
+<li>🔥 Recent Activity: 5402.2 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: GPL-2.0</li>
+<li>🏷️ Latest Release: v0.1 (2009-02-08)</li>
</ul><br />
<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 />
-<a href='showcase/vs-sim/image-1.jpg'><img alt='vs-sim screenshot' title='vs-sim screenshot' src='showcase/vs-sim/image-1.jpg' /></a><br />
+<a href='showcase/netcalendar/image-1.png'><img alt='netcalendar screenshot' title='netcalendar screenshot' src='showcase/netcalendar/image-1.png' /></a><br />
<br />
-<span>VS-Sim is an open-source distributed systems simulator written in Java, developed as a diploma thesis at Aachen University of Applied Sciences. It provides a visual environment for simulating and understanding distributed system algorithms including consensus protocols (one-phase/two-phase commit), time synchronization (Berkeley, Lamport, vector clocks), and communication patterns (multicast, broadcast, reliable messaging). The simulator is useful for educational purposes, allowing students and researchers to visualize complex distributed system concepts through interactive simulations.</span><br />
+<span>NetCalendar is a networked calendar application written in Java that provides both client and server functionality for managing and sharing calendar events. The application implements a client-server architecture where the server manages a calendar database and serves multiple clients over TCP/IP, with optional SSL encryption for secure communication. Users can create, edit, and search calendar events with different categories (birthdays, studies, diverse events) and the system provides visual color-coding to indicate event urgency (red for next 24 hours, orange for next week, etc.).</span><br />
<br />
-<span>The implementation features a modular architecture with separate packages for core processes, events, protocols, and visualization. It includes pre-built protocol implementations, a GUI-based simulator with start/pause/reset controls, serialization support for saving simulations, and comprehensive time modeling systems. The codebase demonstrates clean separation of concerns with abstract base classes for extensibility and a plugin-like protocol system for easy addition of new distributed algorithms.</span><br />
+<a href='showcase/netcalendar/image-2.png'><img alt='netcalendar screenshot' title='netcalendar screenshot' src='showcase/netcalendar/image-2.png' /></a><br />
<br />
-<a class='textlink' href='https://codeberg.org/snonux/vs-sim'>View on Codeberg</a><br />
-<a class='textlink' href='https://github.com/snonux/vs-sim'>View on GitHub</a><br />
+<span>The implementation uses a clean separation of concerns with dedicated packages for client GUI components, server database management, and shared utilities. The client features a Swing-based interface with table views, input forms, and search capabilities, while the server handles concurrent client connections and maintains event persistence in text-based database files. The application supports both standalone mode (client and server in same process) and distributed mode across multiple machines, making it useful for small teams or organizations that need shared calendar functionality without relying on external services.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/netcalendar'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/netcalendar'>View on GitHub</a><br />
<br />
<span>---</span><br />
<br />
@@ -1424,7 +1398,7 @@
<li>📊 Commits: 80</li>
<li>📈 Lines of Code: 601</li>
<li>📅 Development Period: 2009-11-22 to 2011-10-17</li>
-<li>🔥 Recent Activity: 5490.7 days (avg. age of last 42 commits)</li>
+<li>🔥 Recent Activity: 5497.8 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1442,13 +1416,13 @@
<h3 style='display: inline' id='fype'>fype</h3><br />
<br />
<ul>
-<li>💻 Languages: C (72.1%), C/C++ (20.7%), HTML (5.7%), Make (1.5%)</li>
-<li>📚 Documentation: Text (71.3%), LaTeX (28.7%)</li>
+<li>💻 Languages: C (63.7%), C/C++ (25.3%), HTML (9.2%), Make (1.8%)</li>
+<li>📚 Documentation: Text (100.0%)</li>
<li>📊 Commits: 99</li>
-<li>📈 Lines of Code: 10196</li>
-<li>📄 Lines of Documentation: 1741</li>
-<li>📅 Development Period: 2008-05-15 to 2021-11-03</li>
-<li>🔥 Recent Activity: 5652.4 days (avg. age of last 42 commits)</li>
+<li>📈 Lines of Code: 6450</li>
+<li>📄 Lines of Documentation: 516</li>
+<li>📅 Development Period: 2008-05-15 to 2014-06-30</li>
+<li>🔥 Recent Activity: 5628.2 days (avg. age of last 42 commits)</li>
<li>⚖️ License: Custom License</li>
<li>🧪 Status: Experimental (no releases yet)</li>
</ul><br />
@@ -1460,6 +1434,29 @@
<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='vs-sim'>vs-sim</h3><br />
+<br />
+<ul>
+<li>📚 Documentation: Markdown (100.0%)</li>
+<li>📊 Commits: 411</li>
+<li>📈 Lines of Code: 0</li>
+<li>📄 Lines of Documentation: 7</li>
+<li>📅 Development Period: 2008-05-15 to 2015-05-23</li>
+<li>🔥 Recent Activity: 5858.8 days (avg. age of last 42 commits)</li>
+<li>⚖️ License: No license found</li>
+<li>🏷️ Latest Release: v1.0 (2008-08-24)</li>
+</ul><br />
+<span>⚠️ **Notice**: This project appears to be finished, obsolete, or no longer maintained. Last meaningful activity was over 2 years ago. Use at your own risk.</span><br />
+<br />
+<span>VS-Sim is an open-source distributed systems simulator written in Java, developed as a diploma thesis at Aachen University of Applied Sciences. It provides a visual environment for simulating and understanding distributed system algorithms including consensus protocols (one-phase/two-phase commit), time synchronization (Berkeley, Lamport, vector clocks), and communication patterns (multicast, broadcast, reliable messaging). The simulator is useful for educational purposes, allowing students and researchers to visualize complex distributed system concepts through interactive simulations.</span><br />
+<br />
+<span>The implementation features a modular architecture with separate packages for core processes, events, protocols, and visualization. It includes pre-built protocol implementations, a GUI-based simulator with start/pause/reset controls, serialization support for saving simulations, and comprehensive time modeling systems. The codebase demonstrates clean separation of concerns with abstract base classes for extensibility and a plugin-like protocol system for easy addition of new distributed algorithms.</span><br />
+<br />
+<a class='textlink' href='https://codeberg.org/snonux/vs-sim'>View on Codeberg</a><br />
+<a class='textlink' href='https://github.com/snonux/vs-sim'>View on GitHub</a><br />
<p class="footer">
Generated with <a href="https://codeberg.org/snonux/gemtexter">Gemtexter 3.0.1-develop</a> |
served by <a href="https://www.OpenBSD.org">OpenBSD</a>/<a href="https://man.openbsd.org/relayd.8">relayd(8)</a>+<a href="https://man.openbsd.org/httpd.8">httpd(8)</a> |