Programming and computers
For a long time now, I have been dabbling mainly in unix/systems programming, algorithm implementation and profiling/optimalization. Most of my projects are unfortunately outdated, abandoned, or unfinished, so I will not be putting them here, but I hope that in time this place will not be as empty as it is now.
When I was in high school, I loved robotics, that is how I got into linux (through Jetson nano, Raspberry Pi…). Unfortunately, I do not possess any software that I wrote from that era, simply because I haven’t discovered git until later in my high school years. But Fusion 360 was even then cloud-based, so if anybody is interested in some of my old robots that I have planned and built, let me know :)
My git hosts
-
My personal Codeberg: https://codeberg.org/ragana
- This is my main host for all my works, if I made it, you can find it there.
-
My personal SourceHut: https://git.sr.ht/~irungentoo/
- Great service and design, but the email based workflow unfortunately does not suit most of my co-contributors
Me and Unix
Through out the years, I have tried Ubuntu, Fedora Workstation, Fedora Sway Atomic, Debian but always came back to arch. In the year 2023, I was introduced to nix, and I fell in love with it.
After some time I realised that systemd for desktop usecase is pretty useless and truly only bloats my system up astronomically. So after considering going back to gentoo I decided to try void, and was pleseantly suprised by the distro. It is a great mix of BSD and linux that is almost bloatfree and works like a charm. And experiencing the allmighty runnit killed systemd for me, atleast on desktop.
But even while void supports musl, I am still a little sad that they dropped the support for libressl, so in the future when I get bored again I will propably switch to using gentoo again, but forking void and maintaining my own fork also tempts my mind.
Nix is still a great package manager tho, and I am still using it for almost all packages, even when I am on other distros.
As was prophesized by the great sages of the past, I returned to gentoo, my first love. Although I am only compiling from source what I deem beneficial to do so, for my other package needs I still happily use nix.
I will be posting my kernel config, USE flags later. I am still playing with the settings, mainly I want to again try out different custom schedulers, last time I was using/compiling custom kernels, I remember using and liking BORE.
My addiction for ThinkPads and old hardware
I love ThinkPads, my good friend, and I have around 50 of them combined (although my share is only a fraction of that number).
For education or some practical purposes, they can be and are very useful (example: Kubernetes, Distributed computing). I simply enjoy building cool stuff from utter garbage.
My personal Thinkpad collection that I use somewhat regularly:
| Thinkpad Model | OS | |
|---|---|---|
| x230 | gentoo | My emotional support machine, it is fully modded, 1vyrained, corebooted, cute, small, and compact, with a nitrocaster modded killer macbook display. Running gentoo with my custom compiled kernel with the BORE scheduler |
| t480 | void | Serves me more like a desktop. With the docking station it is almost perfect |
| t420 | gentoo | It was my main workstation for quite some time. I really like that keyboard |
| IBM R60e | openBSD | This one serves more as a collectible, but i still love it and use it to have occasional fun with openBSD |
| ThinkPad 700 | Antique at this point, but very pretty to look at. Tried booting 9front from a floppy disk, it truly was one of those once in a lifetime experiences |
My current setup on my main workstation
All of my configuration files (if they exist) are accessible through my sourcehut.
| Subject | Object | My configuration files |
|---|---|---|
| Primary linux distro of choice | gentoo | |
| Mobile OS of choice | Lineage | |
| Wayland compositor | river | ,config/river/ |
| Shell | fish | .config/fish/ |
| Terminal Emulator | foot | .config/foot/ |
| App-lanucher | wmenu | .config/river/init |
| Status bar | creek | .config/river/init |
| Primary code/text editor | emacs | .emacs |
| Notes | Emacs org-mode & org-agenda | .emacs |
| Calendar | Emacs calendar | .emacs |
| File manager | Ranger & Emacs dired | .emacs |
Services that I use and can recommend
Hosting provider: https://openbsd.amsterdam/
- Great communication
- Simplistic no-bullshit design
- Generous pricing where with every booked VM you even help a little to give back to the community by donating a fraction to the OpenBSD Foundation
- I like OpenBSD and puffy
VPN provider: https://mullvad.net/en
- Open source
- I can confidently call them the most trustworthy and one of the few “true” VPN’s on the market
- Very straightforward usage
- 10% discount if you pay in crypto
Mail provider: https://www.proton.me/
- Open source
- To my knowledge aside from self-hosting you cannot do much better than proton. But please keep in mind that even being Swiss and out of the 14-eyes does not save you from Europol
- I found them to be the most reliable in terms of mail delivery
- I like the configurability
- Privacy focused
- Proton Bridge is awesome
My projects
In this section you will find a list of my projects that I deemed somewhat finished enough to share with you.
Every project sub-page (if in existence) includes a project overview with a description, installation guide and the corresponding user, developer documentation, the code will still be hosted outside of this website on my external git hosts, although im looking into cgit, and future possible self-hosting.
| Project sub-page | Source code | Description |
|---|---|---|
| cspforge | codeberg:cspforge | Mathematical library offering general-purpose tools for the manipulation and analysis of relational structures, with emphasis on the constraint satisfaction problem (CSP). |
| flow | codeberg:flow | Minimalistic (trying to be) bloatfree unix shell. It embeds a lightweight Lisp-inspired interpreter that combines familiar POSIX command execution with the power of S-expressions for scripting. |
| orikata | codeberg:orikata | Lambda calculus interpreter that lets you evaluate expressions one step at a time with ANSI color coding |
| libcgraph | codeberg:libcgraph | A C combinatorial algorithms library designed for work related to graphs. It aims to provide an optimized and fast API to manage graph-related data structures and for the use of graph related algorithms. |
| fscomparison | codeberg:fscomparison | Statistical analysis done between ext4, brtfs, zfs, xfs filesystems for performance based metrics |
Other programs & scripts
This section will include programs & scripts that are somewhat finished and in working condition, but due to their small scale & nature, I wouldn’t go as far as to classify them as projects. In short, if it took me less than a day to finish, I likely dont consider it to be a full on project.
| Program & script sub-page | Source code | Description |
|---|---|---|
| Monochromatic SAT | codeberg:monochromaticsat | Simple python script that encodes the NP-complete monochromatic triangle graph problem into DIMACS CNF and by leveraging the Glucose SAT solver solves / decodes the instance if it is satisfiable |
| DistroboxSelector | codeberg:distroboxselector | Little perl script that i wrote as a wrapper to execute upon terminal launch and automate distrobox container entering. |
| Justifier | codeberg:simpletextjustifier | Dotnet cli utility for multiple text file justification written in csharp that i wrote as a solution to a school assignment. It will be rewritten to rust in the future in order to make it actualy good and portable |
| Huffman | codeberg:simplehuffmantrees | Dotnet cli utility for huffman compression & decompression written in csharp that i wrote as a solution to a school assignment. It will be rewritten to rust in the future in order to make it actualy good and portable |
Legacy & other garbage that I made
For things that I am not particularly proud of but that still serve a purpose, such as learning projects for new languages.
| Program & script sub-page | Source code | Description |
|---|---|---|
| antcolonyvisualization | codeberg:antcolonyvisualization | My first Rust learning project that I made, a simple implementation and visualization of an ant colony genetic algorithm. A little warning beforehand: as expected there are many bugs present, and the code is outdated and a poorly written garbage composed by my younger self |