softwareCommitments: other: Software Commitments # About page workedWith: other: 'Worked with ' properties: other: 'Features ' relevantSoftware: other: "Relevant software: " # Programming languages skillsPython: other: | 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](https://pypi.org/project/PySide2/) for UI based application design as well as software backend, for all the above. skillsJS: other: | Javascript is a multipurpose language that can be used to make practically anything, as long as you don't need extremely high performance. Nearly all my GUI apps make use of Javascript to make advanced UI manipulation and sometimes logic. On the other hand, I try to use it as little as possible on my websites for them to be more performant. skillsPHP: other: | PHP is the first language I learned all the way back in 2015, and have developed a lot of PHP projects related to [PocketMine](https://pmmp.io), like plugins, development and server software back then. Nowadays, I use software to create small APIs, and sometimes websites like [services.accountfree.org](https://services.accountfree.org). skillsCsharp: other: | I began using C# in 2021, and discovered it's extensive built-in Console API which sparked the [Nowox](https://apps.ad5001.eu) 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](https://git.ad5001.eu/Ad5001/NowoxStyle) and [NowoxComponents](https://git.ad5001.eu/Ad5001/NowoxComponents). skillsBash: other: | Having used Linux since 2016 and managing servers since 2017, I got into bash scripting fairly rapidly, which helped me not only prototype small programs using very basic interfaces, but also automate a lot of processes. Bash allows me to chain a lot of small programs together to achieve a more complex process like image content conversion, launch and building systems. # Frameworks skillsHugo: other: | Hugo became my web dev framework of choice in 2021, for the remake of this website. It's an open source static website generator that does not require any JavaScript or backend processing language to work, as it's works by generating pages beforehand, making it really fast. skillsBoostrap: other: | 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. # App frameworks skillsQt: other: | 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. skillsMono: other: | 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. skillsElectron: other: | Electron is a framework that allows to use Web and NodeJS techonologies to create desktop applications for all desktop Operating Systems. While not having used it for any of my more recent applications, I have used Electron in the past to create several things, including the Windows version of ImagicalPlugCreator, and PocketMine Server Manager. However, I stopped using it because its memory footprint was too high. # Frameworks I created: frameworkNowox: other: | 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. frameworkBashOOP: other: | The Bash shell language does not support an object structure by default. So, in order to use them, I had to create [my own library](https://git.ad5001.eu/Ad5001/BashOOP) implementing -both static and not- classes, namespaces, as well as objects in the Bash language in a native way, while keeping a natural syntax for all those who have already done OOP in other languages. It's more of a "Proof of concept" inspired by a piece of code found on [StackOverflow](https://stackoverflow.com/a/40981277), even if I created several implementations of programs like [Docker](https://git.ad5001.eu/Ad5001/DockerBashOOP) which allows to simplify its use. frameworkAccountFree: other: | 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. frameworkLogarithmPlotter: other: | 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](https://git.ad5001.eu/Ad5001/LogarithmPlotter). themeOmegamma: other: | 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. # Linux Distribs skillsUbuntu: other: | 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. skillsDebian: other: | 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. skillsFedora: other: | My limited experience with Fedora has led me to discover the [Red Hat](https://www.redhat.com/) ecosystem and all of it's benefits, namely for enterprise software. I have also used CentOS for several servers, as it supports the Red Hat ecosystem while maintaining great stability. # Container systems skillsDocker: other: | 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. skillsSnapcraft: other: | Snapcraft is a Linux application distribution system by [Canonical](https://canonical.com) I've been using since 2017 to package and distribute the software I create. skillsFlatpak: other: | Flatpak is another Linux application distribution system I've been using since 2020 to package and distribute the software I create. # Self hosting skillsGitea: other: | 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. skillsDrone: other: | 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. skillsNexus3: other: | 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. skillsDrawIO: other: | Diagrams.net (formally draw.io) is a diagrams creation software. It helps me planning the structure of some of my software's architectures, as well as general planning in the past.