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é.