diff --git a/data/skills.yaml b/data/skills.yaml index e09c089..beb46c9 100644 --- a/data/skills.yaml +++ b/data/skills.yaml @@ -108,6 +108,10 @@ FrameworksCreated: Text: frameworkNowox Properties: a component based system, declarative and dynamic UI creation, styling, layout creation, animations, XML UI Declaration, and keyboard input handling. RelevantSoft: [Nowox] +- Name: BashOOP + Icon: bashoop + Text: frameworkBashOOP + Properties: both static and normal class creation, including class functions and properties, namespaces, object creation. - Name: AccountFree Framework Icon: accountfree Text: frameworkAccountFree @@ -250,7 +254,7 @@ SelfHosted: Properties: a diagrams creator and editor. Links: - Icon: open-external - Title: Draw.io Integraions Website + Title: Draw.io Integrations Website NewTab: true URL: "https://www.diagrams.net/integrations" - Icon: open-external diff --git a/i18n/en.yaml b/i18n/en.yaml new file mode 100644 index 0000000..2932dde --- /dev/null +++ b/i18n/en.yaml @@ -0,0 +1,103 @@ + +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. + diff --git a/i18n/fr.yaml b/i18n/fr.yaml new file mode 100644 index 0000000..5ed38e2 --- /dev/null +++ b/i18n/fr.yaml @@ -0,0 +1,100 @@ +softwareCommitments: + other: Engagements par mes Logiciels +# About page +workedWith: + other: "J'ai travaillé avec " +properties: + other: 'Comprend ' +relevantSoftware: + other: "Logiciels pertinents : " +# Programming languages +skillsPython: + other: | + J'utilise Python depuis 2016 de manière polyvalente. Au début de 2017, j'ai commencé à l'utiliser pour la création d'AccountFree avec [PySide2](https://pypi.org/project/PySide2/) pour la conception d'applications basées sur l'interface utilisateur ainsi que le backend logiciel, pour tout ce qui précède. +skillsJS: + other: | + Le Javascript est un langage polyvalent qui peut être utilisé pour faire pratiquement n'importe quoi, tant que vous n'avez pas besoin de performances extrêmement élevées. Presque toutes mes applications utilisent du Javascript pour faire des manipulations avancées de l'interface utilisateur et parfois de la logique. D'un autre côté, j'essaie de l'utiliser le moins possible sur mes sites web pour qu'ils soient plus performants. +skillsPHP: + other: | + PHP est le premier langage que j'ai appris en 2015, et j'ai développé de nombreux projets PHP liés à [PocketMine](https://pmmp.io), comme des plugins, des logiciels de développement et de serveur. + Aujourd'hui, j'utilise des logiciels pour créer de très petites API, et parfois des sites web comme [services.accountfree.org](https://services.accountfree.org). +skillsCsharp: + other: | + J'ai commencé à utiliser C# en 2021, et j'ai découvert son API Console intégrée très complète, ce qui a donné naissance au projet [Nowox](https://apps.ad5001.eu). + Cependant, je me suis rapidement rendu compte qu'elle était un peu dépassée et n'utilisait pas les fonctionnalités modernes des terminaux, ce qui a conduit à la création de plusieurs bibliothèques, comme [NowoxStyle](https://git.ad5001.eu/Ad5001/NowoxStyle) et [NowoxComponents](https://git.ad5001.eu/Ad5001/NowoxComponents). +skillsBash: + other: | + Utilisant Linux depuis 2016 et gérant des serveurs depuis 2017, je me suis mis assez rapidement au scripting bash, qui m'a aidé non seulement à prototyper de petits programmes à l'aide d'interfaces très basiques, mais aussi à automatiser de nombreux processus. Bash me permet d'enchaîner beaucoup de petits programmes pour réaliser un processus plus complexe comme la conversion du contenu des images, le lancement et la construction de systèmes. +# Frameworks +skillsHugo: + other: | + Hugo est devenu mon framework de développement web de prédilection en 2021, pour la refonte de ce site web. Il s'agit d'un générateur de site web statique open source qui ne nécessite pas de JavaScript ou de langage de traitement backend pour fonctionner, car il est basé sur la pré-génération de pages, ce qui le rend très rapide. +skillsBoostrap: + other: | + Dans le passé, j'ai utilisé Bootstrap pour créer l'interface utilisateur de mes sites Web. Bien qu'il aide à créer des sites Web rapides avec des composants communs, et qu'il puisse être utilisé en conjonction avec Hugo, les sites Web créés avec ce système sont rarement uniques, et sont parfois un peu dépassés. + L'un des sites que j'ai créés avec Bootstrap et qui est toujours en service aujourd'hui est services.accountfree.org. +# App frameworks +skillsQt: + other: | + J'utilise Qt depuis 2016 pour créer des applications de bureau. Je suis devenu très à l'aise avec QML avec les différents logiciels que j'ai créés (notamment la version Linux de ImagicalPlugCreator, AccountFree et LogarithmPlotter). Qt est un framework "tout-en-un" qui fournit également le threading, la mise en réseau, les API de dessin 3D et 2D, le rendu web ; sans qu'aucun de ses composants ne soit co-dépendant. +skillsMono: + other: | + Mono est une ré-implémentation du cadre .NET pour Linux et MacOS avant .NET 5.0, tout en restant binairement compatible avec les implémentations de Microsoft. J'ai commencé à l'utiliser pour créer Nowox en C# afin de maintenir la compatibilité avec tous les principaux OS de bureau. Dans le futur, je pourrais passer de Mono à .NET 5.0 en tant que framework et runtime pour Nowox. +skillsElectron: + other: | + Electron est un cadre qui permet d'utiliser les technologies Web et NodeJS pour créer des applications de bureau pour tous les systèmes d'exploitation de bureau. + Bien que je ne l'aie pas utilisé pour aucune de mes applications les plus récentes, j'ai utilisé Electron dans le passé pour créer plusieurs choses, y compris la version Windows de ImagicalPlugCreator, et PocketMine Server Manager. Cependant, j'ai arrêté de l'utiliser car son empreinte mémoire était trop importante. +# Frameworks I created: +frameworkNowox: + other: | + Nowox étant un programme terminal extrêmement avancé, s'appuyant sur des techniques similaires à la conception d'interface utilisateur 2D standard, j'ai créé un système basé sur les composants pour permettre une conception facile des composants du terminal. Ce système a beaucoup d'avantages énumérés ci-dessus, et permettrait plus de fonctionnalités dans le futur comme la gestion des événements de la souris. +frameworkBashOOP: + other: | + Le langage shell Bash n'admet pas de structure d'objet par défaut. Donc, afin d'en utiliser, j'ai dû créer [ma propre bibliothèque](https://git.ad5001.eu/Ad5001/BashOOP) implémentant les classes -statiques ou non-, espaces de nom, ainsi que les objets dans le langage Bash de manière native, tout en conservant une syntaxe naturelle pour tous ceux ayant déjà réalisé de l'OOP dans d'autres langages. Il s'agit plus d'un "Proof of concept" assez complet inspirée d'un bout de code trouvé sur [stackoverflow](https://stackoverflow.com/a/40981277), même si j'ai créé plusieurs implémentations de programmes s'y prétant comme [Docker](https://git.ad5001.eu/Ad5001/DockerBashOOP) ce qui permet de simplifier son utilisation. +frameworkAccountFree: + other: | + AccountFree étant très modulaire, il permet la création et l'ajout de services tiers directement en son sein. La section interface utilisateur du cadre est basée sur des composants QML conçus et stylisés pour AccountFree, et gère également la correspondance des URL pour chaque service, tandis que la partie arrière, constituée de modules Python, permet d'utiliser tous les cadres que vous souhaitez avec le langage. +frameworkLogarithmPlotter: + other: | + LogarithmPlotter peut facilement être étendu pour ajouter de nouveaux objets grâce à son système d'objets dynamiques. Bien qu'il ne fournisse pas un moyen facile d'ajouter de nouveaux objets utilisateur, les développeurs d'objets sont encouragés à [contribuer à LogarithmPlotter](https://git.ad5001.eu/Ad5001/LogarithmPlotter). +themeOmegamma: + other: | + Omegamma est le thème Hugo utilisé dans tous mes nouveaux sites web (ad5001.eu, apps.ad5001.eu...). Il fournit des éléments thématiques communs pour assurer une identité cohérente. Je ne recommande pas particulièrement de l'utiliser pour votre propre site web, car il a été conçu sur mesure pour ad5001.eu. +# Linux Distribs +skillsUbuntu: + other: | + Ubuntu a été ma distribution de choix à la fois sur serveur et sur ordinateur de bureau depuis 2016 en raison de la grande disponibilité de logiciels récents sur celle-ci, ainsi que de la bonne documentation et de sa grande communauté. + Ubuntu trouve un bon équilibre entre le fait d'avoir des logiciels récents et à jour, et la stabilité. +skillsDebian: + other: | + Debian vise à avoir des machines à faible maintenance qui restent avec des versions anciennes et éprouvées de la pile logicielle standard. + Son utilisation s'est avérée très facile et très stable, encore plus que les versions LTS des serveurs Ubuntu. +skillsFedora: + other: | + Mon expérience limitée de Fedora m'a fait découvrir l'écosystème [Red Hat](https://www.redhat.com/) et tous ses avantages, notamment pour les logiciels d'entreprise. + J'ai également utilisé CentOS pour plusieurs serveurs, car il prend en charge l'écosystème Red Hat tout en maintenant une grande stabilité. +# Container systems +skillsDocker: + other: | + Docker est un système de conteneurs pour empaqueter, distribuer et exécuter des logiciels largement utilisés sur les serveurs. + J'utilise Docker depuis 2018 pour avoir une gestion simplifiée des logiciels auto-hébergés que j'utilisais, ainsi que pour l'utiliser dans les pipelines CI/CD pour tester et déployer les logiciels que je crée. +skillsSnapcraft: + other: | + Snapcraft est un système de distribution d'applications Linux de [Canonical](https://canonical.com) que j'utilise depuis 2017 pour empaqueter et distribuer les logiciels que je crée. +skillsFlatpak: + other: | + Flatpak est un autre système de distribution d'applications Linux que j'utilise depuis 2020 pour emballer et distribuer les logiciels que je crée. +# Self hosting +skillsGitea: + other: | + Gitea est une solution d'hébergement git auto-hébergée. J'utilise Gitea depuis 2018, au moment où Microsoft a racheté Github. Tous mes dépôts de logiciels en amont sont disponibles sur mon instance à l'adresse git.ad5001.eu. +skillsDrone: + other: | + Drone CI est une plateforme CI/CD (intégration continue/déploiement continu) auto-hébergée. J'utilise Gitea depuis quelques années pour tester, construire, empaqueter mes applications et déployer mes sites web automatiquement, directement depuis la branche Git. +skillsNexus3: + other: | + Nexus 3 est un dépôt d'artefacts qui me permet de mettre les paquets construits à partir de Drone CI dans un dépôt commun. Il est également utilisé pour héberger les binaires que vous pouvez télécharger depuis mon site d'applications. +skillsDrawIO: + other: | + Diagrams.net (anciennement draw.io) est un logiciel de création de diagrammes. Il m'aide à planifier la structure de certaines architectures de mon logiciel, ainsi que la planification générale dans le passé. + diff --git a/static/icons/skills/bashoop.svg b/static/icons/skills/bashoop.svg new file mode 100644 index 0000000..a84db36 --- /dev/null +++ b/static/icons/skills/bashoop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/omegamma b/themes/omegamma index bd03027..5ae10f7 160000 --- a/themes/omegamma +++ b/themes/omegamma @@ -1 +1 @@ -Subproject commit bd03027213b95cd2eb6721cc1ab115af37e74b9c +Subproject commit 5ae10f741874ee130c4596893742ed323dd560fd