Currently a student, I have been programming for almost 6 years, mainly in open source.
I’ve started programming plugins in 2015 in PHP for PocketMine.
Around that project, alongside other contributors in the BoxOfDevs team we’ve made several projects at the time like Sites4Code, the PocketMine Server Manager and the new version of PocketMine Tools.
Since 2017, I’ve been working on AccountFree, but I’ve also been focusing a lot on my studies.
Values I defend
Software can take a wide variety of forms, and one of the core principles when creating something is choosing the right tool for the job. Each programming languages has it’s advantages and drawbacks, and creating such a wide variety of software has led me to discover and learn quite a few languages.
Worked with Advanced parsing, Reflection, Process management, Native System Interaction, Package management, Tor and UI.
I’ve been using Python since 2016 for various purposes. In the beginning of 2017, I began using it for the creation of AccountFree with PySide2 for UI based application design as well as software backend, for all the above.
Worked with QML Logic, Webdev, Web extensions, AST Creation.
Worked with Webdev (backend), CLI and Plugin development.
PHP is the first language I learned all the way back in 2015, and have developed a lot of PHP projects related to PocketMine, like plugins, development and server software back then.
Nowadays, I use software to create small APIs, and sometimes websites like services.accountfree.org.
Worked with CLI UI development, AST Creation, File management, File Syntax highlighting, ANSI Code handling.
I began using C# in 2021, and discovered it’s extensive built-in Console API which sparked the Nowox project.
However, I quickly realized it was a bit dated and didn’t use modern terminal features, which led to the creation of several libraries, like NowoxStyle and NowoxComponents.
Frameworks are very common components in software creation. However, with the idea to keep it simple, I strive to use as few of them as possible, because they tend to add performance overhead and loss.
Hence, here is a list of frameworks I’ve used in the past:
Worked with templating, advanced markdown, dynamic data sources.
Worked with dynamic page creation, common UI creation.
In the past, I’ve used Bootstrap to create my website UI design. While it helps creating fast websites with common components, and it can be used in conjunction with Hugo, websites made with it rarely feel a bit unique, and sometimes feel a bit dated. One of the websites I created with Bootstrap still in service today is services.accountfree.org.
Worked with UI Creation, threading, graphical effects, canvases, and sandbox management.
I’ve been using Qt since 2016 to create desktop applications. I became very comfortable with QML with the various software I created (including the Linux version of ImagicalPlugCreator, AccountFree and LogarithmPlotter). Qt is an “all-in-one” framework which also provide threading, networking, 3D and 2D drawing APIs, web rendering; without any of it’s components being co-dependent.
Worked with for all my time with C#.
Mono is a reimplementation of the .NET framework for Linux and MacOS prior to .NET 5.0, while remaining binary compatible with Microsoft’s implementations. I began using it to create Nowox in C# to maintain compatibility with all major desktop OSes. In the future, I may switch from Mono to .NET 5.0 as framework and runtime for Nowox.
As my experience with frameworks grew, I began creating some myself that I use in some of my software.
Frameworks I created
Features a component based system, declarative and dynamic UI creation, styling, layout creation, animations, XML UI Declaration, and keyboard input handling.
Nowox being an extremely advanced terminal program, relying on techniques similar to standard 2D UI design, I created a component based system to allow easy design for terminal components. This system has many advantages listed above, and would allow more features in the future like mouse events handling.
Features a common UI design, addon system, page oriented UI handling, URL handling. Based on QML.
AccountFree being very modular, it allows the creation and adding of third party services directly into it. The UI section of the framework is based on QML components designed and styled for AccountFree, and handles URL matching for each service as well, while the backend being Python modules allows it to use every framework you want with the language.
LogarithmPlotter Object System
LogarithmPlotter can easily be extended to add new objects based on it’s Dynamic Object System. While it does not provide an easy way to add new user objects, objects developers are encouraged to contribute to LogarithmPlotter.
Features UI Design.
Omegamma is the Hugo theme used in all of my new websites (ad5001.eu, apps.ad5001.eu…). It provides common themed elements to provide consistent identity. I don’t particularly recommend using it for your own website, as it was tailor made for ad5001.eu.
I’ve been using Linux for the past 5 years both on desktop and servers, as it helped and continues to help me become far moth proficient with it.
While I’ve tried many distributions, here are the ones I have the most experience with:
Worked with Kubuntu, Ubuntu Server.
Ubuntu has been my distribution of choice both on server and on desktop since 2016 due to the high availability of recent software on it, as well as good documentation and its widespread community.
Ubuntu strikes a great balance between having recent, up-to-date software, and stability.
Worked with Debian Server, Yunohost Server.
Debian is aimed at having low-maintenance machines that stay with older, battle-tested versions of the standard software stack.
Using it has proven to be very painless highly stable, even more so than LTS versions of Ubuntu servers.
Worked with Fedora KDE, CentOS.
My limited experience with Fedora has led me to discover the Red Hat ecosystem and all of it’s benefits, namely for enterprise software.
However, having less experience with it, I tend to prefer Ubuntu or Debian when manipulating server software.
This experience also made me discover container technologies:
Worked with Image creation, CI/CD Image usage.
Docker is a container system to package, distribute, and run software widely used on servers.
I’ve been using Docker for since 2018 to have simplified management of the self-hosted software I used, as well as using it in CI/CD pipelines to test and deploy the software I create.
With these container technologies, I began using self-hosting technologies a lot more, including:
Features a git hosting platform.
Gitea is a self-hosted git hosting solution. I’ve been using Gitea since 2018, at the time when Microsoft purchased Github. All my upstream software repositories are available on my instance at git.ad5001.eu.
Features a CI/CD Integration.
Drone CI is a self-hosted CI/CD (continuous integration/continuous deployment) platform. I’ve been using Gitea for a few years to test, build, package my apps and deploy my websites automatically directly from the Git branch.
Features an artifact repository, and a distribution system.
Nexus 3 is an artifacts repository that allows me to put the built packages from Drone CI into a common repository. It is also used to hosts the binaries you can download from my apps website.
Features file, calendar, and contacts synchronization, as well as groupware systems.
Collabora Office Development Edition (CODE)
Features office software, based on LibreOffice.
The primary mean to contact me is by email.
However, you can also contact me through Gitea or Github for development related purposes.
I’m not really active on Mastodon or Twitter, but you can still contact me there. However, do except it may take time for me to respond.
All product names, logos, and brands are property of their respective owners. All company, product and service names used in this website are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.