À mon propos

Aujourd’hui étudiant, je programme maintenant depuis près de 6 ans, notamment en open source.
J’ai commencé à programmer des plugins en 2015 en PHP pour PocketMine.
Autour de ce projet, aux côtés d’autres contributeurs de l’équipe BoxOfDevs nous avons réalisé plusieurs projets à l’époque comme Sites4Code, le PocketMine Server Manager et la nouvelle version de PocketMine Tools.

Depuis 2017, je travaille sur accountfree's icon AccountFree, mais je me suis aussi beaucoup concentré sur mes études.

Depuis le début de l’année 2021, j’ai commencé à travailler sur logarithmplotter's icon LogarithmPlotter et nowox's icon Nowox, et à refaire ce site web depuis sa forme d’origine.

Gitea

Vous pouvez trouver tous logiciels open source que je crée sur git.ad5001.eu, une instance Gitea. Les artefacts se trouvent sur ci.ad5001.eu, une instance Drone CI et sur le système d’artefacts de AccountFree.


Github

La majorité des logiciels que je crée sont également disponibles sur Github. Cependant, quelques dépôts n’y sont pas disponibles et il est recommandé de contribuer sur mon instance Gitea.



Les valeurs que je défends

Protection de la vie privée

Le droit à la vie privée est un droit de l’homme fondamental, et c’est l’une des valeurs fondamentales que je promeus et défends.
Il est souvent mis à mal par des entreprises dont le modèle économique repose uniquement sur le fait d’en savoir plus sur vous, et je travaille activement à réduire la dépendance aux produits de ces entreprises, notamment en promouvant le self hosting, ainsi qu’en créant des logiciels qui vous aident à protéger votre vie privée en ligne comme :

  • accountfree's icon AccountFree, qui contribue à vous protéger contre l’exploitation des données par les sociétés de réseaux sociaux.

  • l’extension web unchecker's icon unchecker, qui aide à lutter contre les sites web semi-conformes au RGPD.


 

Transparence

La transparence est l’un des principaux facteurs qui déterminent la fiabilité d’un projet.
L’open source est l’une des composantes les plus importantes de la transparence d’un projet informatique, car l’obligation de publier l’ensemble du code source est un bon moyen de dissuasion contre l’imposition de fonctionnalités non éthiques.
L’open source en soi n’est pas la seule condition pour la transparence totale d’un projet, mais avec une licence appropriée et un processus de construction transparent, il aide à encourager la confiance dans l’utilisation des projets open source.
Vous pouvez trouver l’historique des créations de mes projets sur mon profil Gitea ou mon profil Github, ainsi que les journaux de construction sur Drone CI et les constructions sur mon instance Nexus 3.


 

Mes compétences

Langages de programmation

Les logiciels peuvent prendre une grande variété de formes, et l’un des principes fondamentaux lors de la création de quelque chose est de choisir le bon outil. Chaque langage de programmation a ses avantages et ses inconvénients, et la création d’une telle variété de logiciels m’a amené à découvrir et à apprendre un certain nombre de langages.

  Python

J'ai travaillé avec Advanced parsing, Reflection, Process management, Native System Interaction, Package management, Tor and UI.

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 pour la conception d’applications basées sur l’interface utilisateur ainsi que le backend logiciel, pour tout ce qui précède.

Logiciels pertinents :


  JavaScript

J'ai travaillé avec QML Logic, Webdev, Web extensions, AST Creation.

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.

Logiciels pertinents :


  PHP

J'ai travaillé avec Webdev (backend), CLI and Plugin development.

PHP est le premier langage que j’ai appris en 2015, et j’ai développé de nombreux projets PHP liés à PocketMine, 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.

  C#

J'ai travaillé avec CLI UI development, AST Creation, File management, File Syntax highlighting, ANSI Code handling.

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.
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 et NowoxComponents.

Logiciels pertinents :


Frameworks

Les frameworks sont des composants très courants dans la création de logiciels. Cependant, dans l’idée de rester simple, je m’efforce d’en utiliser le moins possible, car ils ont tendance à ajouter des surcharges et des pertes de performance.

Voici donc une liste des frameworks que j’ai utilisés dans le passé :

Web Frameworks Web

  Hugo

J'ai travaillé avec templating, advanced markdown, dynamic data sources.

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.

Logiciels pertinents :


  Bootstrap

J'ai travaillé avec dynamic page creation, common UI creation.

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.

Frameworks d’Applications

  Qt

J'ai travaillé avec UI Creation, threading, graphical effects, canvases, and sandbox management.

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.

Logiciels pertinents :


  Mono

J'ai travaillé avec for all my time with C#.

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.

Logiciels pertinents :


Comme mon expérience avec les frameworks grandissait, j’ai commencé à en créer moi-même que j’utilise dans certains de mes logiciels.

Frameworks que j’ai créé.

  NowoxComponents

Comprend a component based system, declarative and dynamic UI creation, styling, layout creation, animations, XML UI Declaration, and keyboard input handling.

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.

Logiciels pertinents :


  AccountFree Framework

Comprend a common UI design, addon system, page oriented UI handling, URL handling. Based on QML.

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.

Logiciels pertinents :


  LogarithmPlotter Object System

Comprend an extendable object system, and dynamic history. Based on JavaScript.

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.

Logiciels pertinents :


  Omegamma

Comprend UI Design.

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.

Logiciels pertinents :


Administration Système

J’utilise Linux depuis 5 ans, tant sur les ordinateurs de bureau que sur les serveurs, car il m’a aidé et continue de m’aider à devenir beaucoup plus compétent.
Bien que j’aie essayé de nombreuses distributions, voici celles avec lesquelles j’ai le plus d’expérience :

Distributions Linux

  Ubuntu

J'ai travaillé avec Kubuntu, Ubuntu Server.

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

  Debian

J'ai travaillé avec Debian Server, Yunohost Server.

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.

  Fedora

J'ai travaillé avec Fedora KDE, CentOS.

Mon expérience limitée de Fedora m’a fait découvrir l’écosystème Red Hat et tous ses avantages, notamment pour les logiciels d’entreprise.
Cependant, ayant moins d’expérience avec elle, j’ai tendance à préférer Ubuntu ou Debian lorsque je manipule des logiciels de serveur.

Cette expérience m’a également permis de découvrir les technologies de conteneurs :

Technologies des conteneurs

  Docker

J'ai travaillé avec Image creation, CI/CD Image usage.

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.

  Snapcraft

J'ai travaillé avec packaging and distributing Linux software.

Snapcraft est un système de distribution d’applications Linux de Canonical que j’utilise depuis 2017 pour empaqueter et distribuer les logiciels que je crée.

Logiciels pertinents :


  Flatpak

J'ai travaillé avec packaging Linux software.

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.

Logiciels pertinents :


Avec ces technologies de conteneurs, j’ai commencé à utiliser beaucoup plus les technologies de self hosting, notamment :

Self hosting

  Gitea

Comprend a git hosting platform.

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.

Logiciels pertinents :


  Drone CI

Comprend a CI/CD Integration.

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.

Logiciels pertinents :


  Nexus 3

Comprend an artifact repository, and a distribution system.

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.

Logiciels pertinents :


  Draw.io

Comprend a diagrams creator and editor.

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

  Nextcloud

Comprend file, calendar, and contacts synchronization, as well as groupware systems.

  Collabora Office Development Edition (CODE)

Comprend office software, based on LibreOffice.

Me contacter

Le principal moyen de me contacter est par courriel.
Cependant, vous pouvez également me contacter via Gitea ou Github pour les besoins liés au développement.
Je ne suis pas vraiment actif sur Mastodon ou Twitter, mais vous pouvez toujours me contacter là-bas. Toutefois, sachez qu’il se peut que je mette du temps à vous répondre.


Tous les noms de produits, logos et marques sont la propriété de leurs détenteurs respectifs. Tous les noms de sociétés, de produits et de services utilisés sur ce site Web ne le sont qu'à des fins d'identification. L'utilisation de ces noms, logos et marques n'implique pas leur approbation.