Home | Markdown | Gemini

Project Showcase



Generated on: 2025-08-31

This page showcases my side projects, providing an overview of what each project does, its technical implementation, and key metrics. Each project summary includes information about the programming languages used, development activity, and licensing. The projects are ordered by recent activity, with the most actively maintained projects listed first.

Table of Contents




Overall Statistics




Projects



hexai





hexai screenshot

Hexai



View on Codeberg
View on GitHub

---

conf





Certainly! However, the provided description ("Bapdidu di du di du dap dap dap!") does not contain any technical or contextual information about the "Jupdidu" project. To give a meaningful summary, I would need details such as the project's purpose, its main features, how it is implemented, and its architecture.

If you can provide a README, project documentation, or a brief description of what Jupdidu does, I can summarize it clearly and concisely, focusing on its functionality, usefulness, and technical implementation. Please share more information or context about the project!

View on Codeberg
View on GitHub

---

rexfiles





Jupdidu
=======

View on Codeberg
View on GitHub

---

hxcode





HxCode



View on Codeberg
View on GitHub

---

totalrecall





totalrecall screenshot

totalrecall - Bulgarian Anki Flashcard Generator



View on Codeberg
View on GitHub

---

gitsyncer





GitSyncer



View on Codeberg
View on GitHub

---

timr





timr



View on Codeberg
View on GitHub

---

tasksamurai





tasksamurai screenshot

Task Samurai



View on Codeberg
View on GitHub

---

ior





ior screenshot

I/O Riot NG (aka ior)



View on Codeberg
View on GitHub

---

dtail





dtail screenshot

DTail
=====

View on Codeberg
View on GitHub

---

wireguardmeshgenerator





WireGuard Mesh Generator



View on Codeberg
View on GitHub

---

foostats





foostats



View on Codeberg
View on GitHub

---

ds-sim





ds-sim screenshot

DS-Sim



View on Codeberg
View on GitHub

---

sillybench





Silly Benchmark



View on Codeberg
View on GitHub

---

gos





gos screenshot

Gos (Go Social Media)



View on Codeberg
View on GitHub

---

rcm





rcm



View on Codeberg
View on GitHub

---

gemtexter





The Gemtexter blog engine and static site generator
===================================================

View on Codeberg
View on GitHub

---

docker-gpodder-sync-server





This project provides a Dockerized build environment for the GPodder sync server, specifically targeting the [mygpo](https://github.com/gpodder/mygpo) backend. The GPodder sync server enables users to synchronize podcast subscriptions and playback progress across multiple devices and clients, making it easier to keep listening experiences consistent. By containerizing the server with Docker, the project simplifies deployment and management, ensuring that all dependencies and configurations are encapsulated and reproducible.

The implementation centers around a Dockerfile and related configuration files that automate the setup of the mygpo server, including its Python dependencies and any required services (such as a database). Key features include ease of deployment (just a few Docker commands to get started), isolation from the host system, and portability across different environments. The architecture leverages Docker’s layered image system to build, run, and update the GPodder sync server efficiently, making it accessible for both development and production use.

View on Codeberg
View on GitHub

---

docker-radicale-server





This project provides a Docker image for the [Radicale server](https://radicale.org), an open-source CalDAV and CardDAV server for managing calendars and contacts. By containerizing Radicale, the project makes it easy to deploy and run the server in isolated, reproducible environments, simplifying installation and upgrades. Users can quickly set up a personal or small-team calendar/contact server without worrying about system dependencies or manual configuration.

The Docker image is built to be lightweight and configurable, exposing necessary ports and allowing persistent storage of data via Docker volumes. The architecture typically involves a Dockerfile that installs Radicale and its dependencies, sets up configuration files, and defines entrypoints for running the server. This approach ensures portability, consistency across environments, and ease of integration with orchestration tools like Docker Compose or Kubernetes. Key features include simplified deployment, secure isolation, and support for custom configuration through environment variables or mounted files.

View on Codeberg
View on GitHub

---

quicklogger





quicklogger screenshot

Quick logger



View on Codeberg
View on GitHub

---

terraform





Terraform



View on Codeberg
View on GitHub

---

docker-anki-sync-server





The **docker-anki-sync-server** project provides a Docker image for running an Anki sync server, which enables users to synchronize their Anki flashcard collections across multiple devices without relying on AnkiWeb. This is particularly useful for individuals or organizations who want to maintain control over their data, improve privacy, or operate in environments with restricted internet access. By containerizing the sync server, the project simplifies deployment, making it easy to set up a consistent and isolated environment on any system that supports Docker.

The implementation centers around creating a Docker image that packages the official Anki sync server along with its dependencies. The Dockerfile automates the installation and configuration process, exposing necessary ports and allowing for environment variable customization. Users can launch the server with a single command, and it integrates seamlessly with Anki clients by specifying the custom sync server URL. The architecture leverages Docker’s portability and isolation, ensuring that updates, scaling, and maintenance are straightforward and reproducible.

View on Codeberg
View on GitHub

---

gogios





gogios screenshot

Gogios



View on Codeberg
View on GitHub

---

gorum




⚠️ **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.

Gorum



View on Codeberg
View on GitHub

---

guprecords





guprecords - Global uptime records



View on Codeberg
View on GitHub

---

randomjournalpage




⚠️ **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.

Read a random journal



View on Codeberg
View on GitHub

---

sway-autorotate





sway-autorotate



View on Codeberg
View on GitHub

---

algorithms




⚠️ **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.

This project is a collection of exercises and implementations based on an Algorithms lecture, designed primarily as a refresher for fundamental algorithmic concepts. It provides a structured environment for practicing and testing various algorithms, making it useful for students or professionals looking to reinforce their understanding of algorithm design and analysis. The project includes both unit tests and benchmarking capabilities, allowing users to verify correctness and measure the performance of their solutions.

The architecture is straightforward: algorithm implementations are organized in source files, with accompanying test suites to ensure reliability. The use of Makefile commands (e.g., make test and make bench) streamlines the process of running tests and benchmarks, promoting good development practices. This setup encourages iterative development and performance tuning, making the project both educational and practical for algorithm study and review.

View on Codeberg
View on GitHub

---

geheim





geheim.rb



View on Codeberg
View on GitHub

---

foo.zone




⚠️ **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.

The foo.zone internet site
===========================

View on Codeberg
View on GitHub

---

perl-c-fibonacci




⚠️ **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.

perl-c-fibonacci: source code repository.

View on Codeberg
View on GitHub

---

ioriot




⚠️ **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.

ioriot screenshot

I/O Riot



Overview



<img src=doc/ioriot_small.png align=right />

...is an I/O benchmarking tool for Linux based operating systems which captures I/O operations on a (possibly production) server in order to replay the exact same I/O operations on a load test machine.

I/O Riot is operated in 5 steps:

1. Capture: Record all I/O operations over a given period of time to a capture log.
2. Initialize: Copy the log to a load test machine and initialize the load test environment.
3. Replay: Drop all OS caches and replay all I/O operations.
4. Analyze: Look at the OS and hardware stats (throughput, I/O ops, load average) from the run phase and draw conclusions. The aim is to identify possible I/O bottlenecks.
5. Repeat: Repeat steps 2-4 multiple times but adjust OS and hardware settings in order to improve I/O performance.

Examples of OS and hardware settings and adjustments:


The file system fragmentation (depending on the file system type and utilisation) might affect I/O performance as well. Therefore, replaying the I/O will not give the exact same result as on a production system. But it provides a pretty good way to determine I/O bottlenecks. As a rule of thumb file system fragmentation will not be an issue, unless the file system begins to fill up. Modern file systems (such as Ext4) will slowly start to suffer from fragmentation and slow down then.

Benefits



In contrast to traditional I/O benchmarking tools, I/O Riot reproduces real production I/O, and does not rely on a pre-defined set of I/O operations.

Also, I/O Riot only requires a server machine for capturing and another server machine for replaying. A traditional load test environment would usually be a distributed system which can consist of many components and machines. Such a distributed system can become quite complex which makes it difficult to isolate possible I/O bottlenecks. For example in order to trigger I/O events a client application would usually have to call a remote server application. The remote server application itself would query a database and the database would trigger the actual I/O operations in Linux. Furthermore, it is not easy to switch forth and back between hardware and OS settings. For example without a backup and restore procedure a database would most likely be corrupt after reformatting the data partitions with a different file system type.

The benefits of I/O Riot are:


Send in patches



Patches of any kind (bug fixes, new features...) are welcome! I/O Riot is new software and not everything might be perfect yet. Also, I/O Riot is used for a very specific use case at Mimecast. It may need tuning or extension for your use case. It will grow and mature over time.

This is also potentially a great tool just for analysing (not replaying) the I/O, therefore it would be a great opportunity to add more features related to that (e.g. more stats, filters, etc.).

Future work will also include file hole support and I/O support for memory mapped files.

How to install I/O Riot



I/O Riot depends on SystemTap and a compatible version of the Linux Kernel. To get started have a read through the [installation guide](doc/markdown/installation.md).

How to use I/O Riot



Check out the [I/O Riot usage guide](doc/markdown/usage.md) for a full usage workflow demonstration.

Appendix



Supported file systems



Currently I/O Riot supports replaying I/O on `ext2, ext3, ext4 and xfs`. However, it should be straightforward add additional file systems.

Supported syscalls



Currently, these file I/O related syscalls are supported (as of CentOS 7):

open
openat
lseek
llseek
fcntl
creat
write
writev
unlink
unlinkat
rename
renameat
renameat2
read
readv
readahead - Initial support only
readdir
readlink
readlinkat
fdatasync
fsync
sync_file_range - Initial support only
sync
syncfs
close
getdents
mkdir
rmdir
mkdirat
stat
statfs - Initial support only
statfs64 - Initial support only
fstatfs - Initial support only
fstatfs64 - Initial support only
lstat
fstat
fstatat
chmod
fchmodat
fchmod
chown
chown16
lchown
lchown16
fchown
fchown16
fchownat
mmap2 - Initial support only
mremap - Initial support only
munmap - Initial support only
msync - Initial support only
exit_group - To detect process termination (closing all open file handles)

Source code documentation



The documentation of the source code can be generated via the Doxygen Framework. To install doxygen run `sudo yum install doxygen and to generate the documentation run make doxygen in the top level source directory. Once done, the resulting documentation can be found in the doc/html subfolder of the project. It is worthwhile to start from ioriot/src/main.c` and read your way through. Functions are generally documented in the header files. Exceptions are static functions which don't have any separate declarations.

More
====


Credits
=======



View on Codeberg
View on GitHub

---

photoalbum




⚠️ **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.

NAME
photoalbum - photoalbum is a minimal bash script for linux to generate
static web photo albums.

View on Codeberg
View on GitHub

---

staticfarm-apache-handlers




⚠️ **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.

NAME
staticfarm-apache-handlers

View on Codeberg
View on GitHub

---

dyndns




⚠️ **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.

dyndns updater
==============

View on Codeberg
View on GitHub

---

mon




⚠️ **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.

NAME
mon - A Humble Monitoring API Tool for
https://github.com/Crapworks/RESTlos

View on Codeberg
View on GitHub

---

rubyfy




⚠️ **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.

Rubyfy
======

View on Codeberg
View on GitHub

---

pingdomfetch




⚠️ **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.

NAME
pingdomfetch - A small and humble tool to fetch availability stats from
Pingdom and notify via E-Mail

View on Codeberg
View on GitHub

---

gotop




⚠️ **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.

gotop
=====

View on Codeberg
View on GitHub

---

debroid




⚠️ **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.

debroid screenshot

**Debroid** is a project that enables users to install a full Debian GNU/Linux environment (using a chroot) on an LG G3 D855 smartphone running CyanogenMod 13 (Android 6). By leveraging root access and developer mode, Debroid allows the phone to run a standard Debian Jessie userland alongside Android, effectively turning the device into a dual-purpose system. This is particularly useful for developers, tinkerers, or anyone needing a full Linux environment on their Android device for tasks such as software development, running Linux-specific tools, or learning Linux without needing a separate computer.

The implementation involves several key steps and features: First, a Debian base image is created on a Linux PC using debootstrap, then transferred to the phone’s SD card. On the phone, the image is mounted as a loopback device, and essential Android and Linux filesystems (like /proc, /dev, /sys, and storage) are bind-mounted into the chroot environment. The second stage of debootstrap is completed inside the chroot on the phone, finalizing the Debian installation. Custom scripts are used to automate entering the chroot and starting services, and integration with Android’s startup scripts ensures the environment can be launched automatically. The architecture relies on chroot isolation, loopback mounting, and careful integration between Android and Debian filesystems, providing a flexible, powerful Linux environment on mobile hardware.

View on Codeberg
View on GitHub

---

xerl




⚠️ **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.

STYLEGUIDE:

View on Codeberg
View on GitHub

---

fapi




⚠️ **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.

NAME
fapi - A humble command line tool to manage F5 BigIP loadbalancers

View on Codeberg
View on GitHub

---

template




⚠️ **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.

NAME
template - A template project

View on Codeberg
View on GitHub

---

muttdelay




⚠️ **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.

NAME
muttdelay - A bash script to delay mails written via mutt

View on Codeberg
View on GitHub

---

netdiff




⚠️ **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.

NAME
netdiff - A simple script to diff a file or a directory of two hosts
over the network.

View on Codeberg
View on GitHub

---

pwgrep




⚠️ **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.

pwgrep
======

View on Codeberg
View on GitHub

---

japi




⚠️ **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.

NAME
japi - A Humble Jira API Tool

View on Codeberg
View on GitHub

---

perl-poetry




⚠️ **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.

perl-poetry
===========

View on Codeberg
View on GitHub

---

ipv6test




⚠️ **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.

This is a quick and dirty perl based IPv6 test website.

View on Codeberg
View on GitHub

---

cpuinfo




⚠️ **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.

**cpuinfo** is a lightweight command-line utility designed to display detailed information about the system's CPU in a human-readable format. Its primary function is to extract and present key processor data—such as model name, cores, cache size, and supported features—by parsing the /proc/cpuinfo file found on Linux systems. This makes it a handy tool for users and administrators who need quick insights into the hardware without manually sifting through raw system files.

The tool is implemented as a simple shell script that leverages AWK, a powerful text-processing utility, to filter and format the contents of /proc/cpuinfo. This approach keeps the utility fast, portable, and easy to maintain, as it does not require any external dependencies beyond standard Unix tools. The architecture is straightforward: upon execution, cpuinfo runs AWK commands to extract relevant fields and outputs them in a clear, organized manner. This simplicity and efficiency make cpuinfo especially useful for scripting, troubleshooting, or inventorying hardware across multiple systems.

View on Codeberg
View on GitHub

---

loadbars




⚠️ **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.

loadbars: source code repository.

View on Codeberg
View on GitHub

---

perldaemon




⚠️ **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.

TOC:
01. HELLO WORLD
02. QUICK START GUIDE
03. CONFIGURATION
04. HIGH RESOLUTION SCHEDULING TIME
05. WRITING YOUR OWN MODULES

View on Codeberg
View on GitHub

---

awksite




⚠️ **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.

Awksite is a lightweight CGI (Common Gateway Interface) application designed to generate dynamic HTML websites using GNU AWK, a powerful text-processing language available on most Unix-like systems. Its primary function is to allow users to create and serve dynamic web content without the need for more complex web frameworks or server-side languages. By leveraging AWK scripts, Awksite processes input data and templates to produce HTML pages on-the-fly, making it especially useful for simple websites, dashboards, or reports where minimal dependencies and ease of deployment are priorities.

The core architecture of Awksite revolves around using AWK as the backend engine for handling HTTP requests and generating responses. When a request is made to the server, the CGI script invokes AWK, which reads templates and data files, processes them according to user-defined logic, and outputs HTML content. This approach keeps the application portable and easy to maintain, as it only requires GNU AWK and a web server capable of running CGI scripts. Key features include dynamic content generation, template support, and compatibility with a wide range of Unix-like systems, making Awksite a practical solution for users seeking a simple, scriptable way to build dynamic web pages.

View on Codeberg
View on GitHub

---

jsmstrade




⚠️ **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.

jsmstrade screenshot

jsmstrade
=========

View on Codeberg
View on GitHub

---

ychat




⚠️ **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.

yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE

View on Codeberg
View on GitHub

---

netcalendar




⚠️ **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.

netcalendar screenshot

Quick howto for the NetCalendar
===============================

View on Codeberg
View on GitHub

---

hsbot




⚠️ **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.

REQUIREMENTS:

View on Codeberg
View on GitHub

---

fype




⚠️ **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.

fype: source code repository.

View on Codeberg
View on GitHub

---

vs-sim




⚠️ **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.

vs-sim
======

View on Codeberg
View on GitHub