Home 3D Printing Anime Software Cook Book

Software


Most of the software I have written can be found on my GitHub, or the Drauger OS GitHub.


Here's a quick bit of info about some of the software I have made.


This Website!

Despite not being a web developer, I did actually write this entire website from scratch (except most of the CSS)! It uses Python and Flask to provide the server-side logic and pre-generate semi-dynamic pages, and simple static HTML for the web pages themselves. On the back end, it utilizes uWSGI and systemd in order to ensure the website has as little down tiem as possible and to provide a secure interface with which the Python script can interact with the web server, and thus, the outside world.

This website is entirely open-source. So if you find a spelling or grammar mistake, would like to help me make it look more presentable, or fork it to make your own, feel free to do so!


systemd-boot-manager

systemd-boot-manager is a service which manages kernel stubs and initramfs images for Linux operating systems using systemd-boot. It provides enforcement of the user's default boot entry setting, as well as colorful and user-friendly output on the command line when used. It's fast, small, simple, and relatively easy to utilize.

Being written entirely in Python, systemd-boot-manager is entirely open-source. Feel free to fork it, submit a PR, or help me get it into upstream Linux repositories!


xfce4-desktop-service

xfce4-desktop-service was created to fix a specific bug I noticed with the Xfce desktop environment:

When running Xfce, if you do not have their file manager, Thunar, installed, the vast majority of interactions with desktop icons didn't work.

This may happen because someone may decide they want to use a different file manager, such as Nemo, Nautilus, or Dolphin, causing Thunar to be essentially useless outside of the service it provides for desktop icons. Since said desktop service is not provided as a seperate package, I took it upon myself to write a package that provides that service. And thus, xfce4-desktop-service was born.

xfce4-desktop-service does have it's downfalls:

  • xfce4-desktop-service is single-threaded. I have yet to design a system that will handle multiple desktop requests at once. However, this is not unlike how Thunar handled desktop icon action requests so, while not ideal, it is not a huge downfall.
  • Being written in Python, xfce4-desktop-service is somewhat slower and has slightly more overhead than something written in C, C++ or Rust would. However, this allows us to easily support multiple CPU architectures, and rapidly iterate on the software to fix bugs and add features.
  • Since this project is not maintained by the Xfce devs themselves, we are always a step behind them whenever a change is made to the service Thunar provides.
  • This service relies on xdg-autostart to start the service. Meaning it takes a little time to get started when a user logs in.
All this being said, it provides an essential service: allowing users to have only one file manager installed. This prevents confusion on systems new users use, and a more seamless user experience.


system-installer

system-installer is the system installation utility used by Drauger OS. It provides most of the basic necessities of a typical Linux system installation utility, plus a few extra features:

  • BTRFS RAID support for the users' home partition
  • OEM installation capabilities
  • Quick Install - The ability to dump a config file after a successful installation, which contains the settings used, then re-import that file on another machine and quickly create a clone of the original installation, based off the same settings.
  • Sub-5 minute installation on most modern hardware (Assuming you are installing to an SSD)
Due to the nature of system-installer, it is in a state of constant flux. It requires constant fixing in order to keep it working due to all the libraries it uses and all the hardware it interacts with. It is also undergoing constant changes as we attempt to add new features, improve user experience, and improve cross-platform support.


PyLibMan

PyLibMan is management software for libaries to use. It is currently incomplete, but is at a stage of being a minimum viable product. PyLibMan has the following features:

  • Python and SQLite based, as well as multithreaded, allowing PyLibMan to run on rather low-end hardware, regardless of CPU architecture.
  • Uses QR Codes in order to identify individual books, even amongst multiple otherwise identical copies.
  • Is able to tell you not only who has a book, but also how long they have had the book and whether it is missing or taken out of circulation.


Download Optimizer

Download Optimizer is a transparent CDN service. In short, the way it works:

  • Download Optimizer receivews a GET request from a user
  • Download Optimizer uses the user's IP address to get coordinates close to their location
  • It then uses some complex math (the Haversine Formula) to calculate the server closest to the user
  • Download Optimizer then sends a 302 redirect response to the user, sending them to the new server, but with the same path as before.
  • The client's computer then connects to the new server and downloads the appropriate files.
Download Optimizer does keep some basic download statistics, but this is entirely just download numbers and averages over time. No download counts by location, no download counts by file, no download counts by OS. This is done not because I can't, but because users deserve privacy. Download Optimizer simply does not need any of that information, so it doesn't use it, let alone log it.