diff --git a/src/locales/fr.json b/src/locales/fr.json
index 3d6f9ea..5c551a7 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -11,7 +11,7 @@
"home.line5-3": "(Arduino, Raspberry).",
"timeline.title": "Chronologie des projets avec",
- "timeline.title-all": "Chronologie des tous les projets",
+ "timeline.title-all": "Chronologie de tous les projets",
"timeline.back": "Changer de compétence",
"skills.featured-before": "Apparaît dans",
diff --git a/src/model/projects.ts b/src/model/projects.ts
index 5aaf986..bbd1e6a 100644
--- a/src/model/projects.ts
+++ b/src/model/projects.ts
@@ -30,7 +30,7 @@ export const Projects: Project[] = [
stopped_at: new Date(2019, 6, 15),
info: {
[Locales.EN]: 'Master\'s degree internship. Internal R&D for a client that sells internet boxes with satellite communications for boats.
The projet was to create the prototype of a modular system. It allows users to only have the parts of the website and features they have installed. It also allows for independent tiny development without having to rebuild the whole projet for every new feature.
I conducted works on the Angular frontend. I developed an app store to manage module installation and updates. Furthermore, I created a minimal Android version of the existing website as a proof-of-concept for mobile porting. By the end of the internship I was able to propose a prototype that allowed :
- to change navigation elements (menus)
- to inject components (pages, graphical elements)
- to inject services (business logic)
At the same time I developed a set of tools for compiling Angular components and services into an installable RPM package on the box.
The prototype allowed the client to envision an industrial modular solution.',
- [Locales.FR]: 'Stage de fin de Master. R&D interne pour un client proposant des box internet satellite pour bateaux.
Le projet consiste en la création d\'un prototype de système de module permettant aux utilisateurs d\'avoir uniquement les parties du site web et fonctionnalités qu\'ils souhaitent installer. Cela permet aussi d\'avoir des développements indépendants sans avoir à reconstruire tout le produit à chaque nouvelle fonctionnalité.
J\'ai conduit les travaux sur la partie frontend avec Angular 7. J\'ai développé un app store pour gérer les modules installés et leur mise à jour. Ainsi qu\'une version Android minimaliste du site existant comme proof-of-concept du portage vers les plateformes mobiles. Au terme du stage j\'ai pu proposer un prototype qui permettait :- de modifier la navigation (menus)
- d\'injecter des composants graphiques (pages ou éléments graphiques)
- d\'injecter des services (logique métier)
En parallèle j\'ai aussi développé un ensemble d\'outils permettant la compilation des différents composants et services Angular en un paquet RPM installable sur la box.
Le prototype a permis au client de se projeter vers une solution modulaire industrielle.',
+ [Locales.FR]: 'Stage de fin de Master. R&D interne pour un client proposant des box internet satellite pour bateaux.
Le projet consiste en la création d\'un prototype de système de module. Il permet aux utilisateurs d\'avoir uniquement les parties du site web et les fonctionnalités qu\'ils souhaitent installer. Cela permet aussi d\'avoir des développements indépendants sans avoir à reconstruire tout le produit à chaque nouvelle fonctionnalité.
J\'ai conduit les travaux sur la partie frontend avec Angular 7. J\'ai développé un app store pour gérer les modules installés et leur mise à jour ; ainsi qu\'une version Android minimaliste du site existant comme proof-of-concept du portage vers les plateformes mobiles. Au terme du stage j\'ai pu proposer un prototype qui permettait :- de modifier la navigation (menus)
- d\'injecter des composants graphiques (pages ou éléments graphiques)
- d\'injecter des services (logique métier)
En parallèle j\'ai aussi développé un ensemble d\'outils permettant la compilation des différents composants et services Angular en un paquet RPM installable sur la box.
Le prototype a permis au client de se projeter vers une solution modulaire industrielle.',
},
source: null, doc: null,
commits: 0, // ???
@@ -42,8 +42,8 @@ export const Projects: Project[] = [
started_at: new Date(2019, 9, 26),
stopped_at: new Date(2021, 3, 11),
info: {
- [Locales.EN]: 'Multi-platform (Surface, iOS) flight assistance application for pilots. In the research and development branch of an international aeronautical company (US). It performs data retrieval and visualization of standardized aeronautical data such as flight information, airport information, meteorological information, etc. The application is embedded in an existing software that interfaces with aircraft computers.
Project existing for about 10 years, I first rewrote and refactored critical parts in order to soften the blocking points. In a second time, I added new functionalities that were impossible or too expensive until then. I was also able to sensitize the team and the client to transition from SVN to Git. Some of my work:- redesign of the network data fetching core
- redesign of the asynchronous weather image download manager
- redesign of the color management
- support for the Arinc 424 standard
- redesign of the popup system and click management
- integration of new data sources
The project ended with a stable version that is still in use today.',
- [Locales.FR]: 'Application multi-plateforme (Surface, iOS) d\'assistance de vol pour pilotes de ligne. Dans la branche recherche et développement d\'une entreprise aéronautique internationale (US). Elle effectue la récupération et la représentation graphique de données standardisées aéronautiques d\'informations de vol, d\'aéroports, météorologiques, etc. L\'application est intégrée dans un logiciel existant qui s\'interface avec les calculateur avioniques.
Projet ayant environ 10 ans d\'existence, j\'ai tout d\'abord ré-écris et refactorisé des parties critiques afin d\'assouplir les points bloquants. Dans un second temps il a été question d\'ajouter de nouvelles fonctionnalités jusque là impossibles ou trop coûteuses. J\'ai aussi pu sensibiliser l\'équipe et le client à une transition de SVN vers Git. Quelques uns de mes travaux:- refonte du moteur de récupération de données réseau
- refonte du gestionnaire de téléchargement asynchrone d\'images météorologiques
- refonte de la gestion des couleurs
- support du standard Arinc 424
- refonte du système de popups et gestion des clicks
- ajout de nouvelles sources de données
Le projet s\'est terminé sur une version stable qui est encore aujourd\'hui utilisée.',
+ [Locales.EN]: 'Multi-platform (Surface, iOS) flight assistance application for pilots. Research and development branch of an international aeronautical company (US). It performs data retrieval and visualization of standardized aeronautical data such as flight information, airport information, meteorological information, etc. The application is embedded in an existing software that interfaces with aircraft computers.
Project existing for about 10 years, I first rewrote and refactored critical parts in order to soften the blocking points. In a second time, I added new functionalities that were impossible or too expensive until then. I was also able to sensitize the team and the client to transition from SVN to Git. Some of my work:- redesign of the network data fetching core
- redesign of the asynchronous weather image download manager
- redesign of the color management
- support for the Arinc 424 standard
- redesign of the popup system and click management
- integration of new data sources
The project ended with a stable version that is still in use today.',
+ [Locales.FR]: 'Application multi-plateforme (Surface, iOS) d\'assistance de vol pour pilotes de ligne. Branche recherche et développement d\'une entreprise aéronautique internationale (US). Elle effectue la récupération et la représentation graphique de données standardisées aéronautiques d\'informations de vol, d\'aéroports, météorologiques, etc. L\'application est intégrée dans un logiciel existant qui s\'interface avec les calculateurs avioniques.
Projet ayant environ 10 ans d\'existence, j\'ai tout d\'abord ré-écris et refactorisé des parties critiques afin d\'assouplir les points bloquants. Dans un second temps il a été question d\'ajouter de nouvelles fonctionnalités jusque là impossibles ou trop coûteuses. J\'ai aussi pu sensibiliser l\'équipe et le client à une transition de SVN vers Git. Quelques-uns de mes travaux:- refonte du moteur de récupération de données réseau
- refonte du gestionnaire de téléchargement asynchrone d\'images météorologiques
- refonte de la gestion des couleurs
- support du standard Arinc 424
- refonte du système de popups et gestion des clicks
- ajout de nouvelles sources de données
Le projet s\'est terminé sur une version stable qui est encore aujourd\'hui utilisée.',
},
source: null, doc: null,
commits: 840,
@@ -55,8 +55,8 @@ export const Projects: Project[] = [
started_at: new Date(2020, 6, 16),
stopped_at: null,
info: {
- [Locales.EN]: 'Multi-platform (linux, windows and iOS) flight assistance application for pilots. In the research and development branch of an international aeronautical company (US).
I am the project architect and have been in charge of the technical direction since its creation. I lead a rotating team of 2 to 3 people, ensure the follow-up and the analysis of the customer needs up to task extraction through a simplified Agile organization.
The project is developed in C++ with the Qt framework. It features:- an asynchronous event-driven message bus
- a simplified SCSS engine
- a dynamic settings system
- a generic iOS windowing system
- a unit test and integration framework
- a generic interface for aircraft on-board computers
The first iteration of the project has now been accepted for the industrialization process. I now work on the next R&D phases.',
- [Locales.FR]: 'Application multi-plateforme (linux, windows et iOS) d\'assistance de vol pour les pilotes de ligne. Dans la branche recherche et développement d\'une entreprise aéronautique internationale (US).
Je suis architecte du projet et assure la direction technique depuis sa création. Je pilote une équipe tournante de 2 à 3 personnes, assure le suivi et l\'analyse des besoins client jusqu\'à l\'extraction de tâches à travers une organisation Agile simplifiée.
Le projet est développé en C++ avec le framework Qt. Il comporte notamment :- un bus de messages évènementiel asynchrone
- un moteur SCSS simplifié
- un système de paramètres dynamique
- un système de fenêtrage générique iOS
- un système de tests unitaires et tests d\'intégration
- une interface générique pour différents calculateurs avioniques
La première itération du projet est passée en industrialisation après tests par les pilotes. Je travaille depuis sur les prochaines phases R&D.',
+ [Locales.EN]: 'Multi-platform (linux, windows and iOS) flight assistance application for pilots. Research and development branch of an international aeronautical company (US).
I am the project architect and have been in charge of the technical direction since its creation. I lead a rotating team of 2 to 3 people, ensure the follow-up and the analysis of the customer needs up to task extraction through a simplified Agile organization.
The project is developed in C++ with the Qt framework. It features:- an asynchronous event-driven message bus
- a simplified SCSS engine
- a dynamic settings system
- a generic iOS windowing system
- a unit test and integration framework
- a generic interface for aircraft on-board computers
The first iteration of the project has now been accepted for the industrialization process. I now work on the next R&D phases.',
+ [Locales.FR]: 'Application multi-plateforme (linux, windows et iOS) d\'assistance de vol pour les pilotes de ligne. Branche recherche et développement d\'une entreprise aéronautique internationale (US).
Je suis architecte du projet et assure la direction technique depuis sa création. Je pilote une équipe tournante de 2 à 3 personnes, assure le suivi et l\'analyse des besoins client jusqu\'à l\'extraction de tâches à travers une organisation Agile simplifiée.
Le projet est développé en C++ avec le framework Qt. Il comporte notamment :- un bus de messages évènementiel asynchrone
- un moteur SCSS simplifié
- un système de paramètres dynamique
- un système de fenêtrage générique iOS
- un système de tests unitaires et tests d\'intégration
- une interface générique pour différents calculateurs avioniques
La première itération du projet est passée en industrialisation après tests par les pilotes. Je travaille depuis sur les prochaines phases R&D.',
},
source: null, doc: null,
commits: 1897 + 86,
@@ -68,8 +68,8 @@ export const Projects: Project[] = [
started_at: new Date(2021, 0, 6),
stopped_at: new Date(2022, 10, 1),
info: {
- [Locales.EN]: 'Medical project for a French company with international reach. The project consists in a modern web platform for the management of nutrient pumps via Internet. I developed the backend of the system as well as the production environment.
The backend is written in Go and uses docker. It exposes a REST API for the frontend and a websocket API to communicate with the pumps. A PostgreSQL database allows managing the different resources. We have implemented several systems to ensure medical grade security at each level, such as the use of certificate chains, argon2, mTLS, jwt. The backend is fully tested by both unit and integration tests (dockerized) in order to reach a maximum code coverage (+80%). I have developed integration and continuous deployment mechanisms to provide an up-to-date version to the client throughout the development.
The REST API is based on the use of the open-source library aicra that I have been developing for several years.
My work consists of:- backend : the backend with its 2 APIs. (1493 commits)
- cert : command line tool to manage certificate chains, used as a library by the backend. (47 commits)
- package : simplified execution environment for team members. (13 commits)
- setup : production environment. (14 commits)
',
- [Locales.FR]: 'Projet médical pour une entreprise française à portée internationale. Le projet consiste en un système web moderne permettant la gestion de parcs de pompes à nutriments via Internet. J\'ai réalisé le backend du système ainsi que l\'élaboration de l\'environnement de production.
Le backend est développé en Go et utilise docker. Il expose une API REST pour le frontend et une API websocket pour communiquer avec les pompes. Une base de données postgreSQL permet la gestion des différentes ressources. Plusieurs systèmes ont été mis en place afin d\'assurer une sécurité de grade médical aux différents niveaux, notamment avec l\'utilisation de chaînes de certificats, argon2, mTLS, jwt. Le backend est entièrement testé par des tests unitaires et d\'intégration (dockerisés) afin d\'atteindre une couverture maximale du code (+80%). J\'ai développé des mécanismes d\'intégration et de déploiement continu afin de fournir un version à jour au client tout au long du développement.
L\'API REST repose sur l\'utilisation de la librairie open-source aicra que je développe depuis plusieurs années.
Mon travail consiste en:- backend : le backend avec ses 2 APIs. (1493 commits)
- cert : outil en ligne de commande permettant la gestion des chaînes de certificats, utilisé comme librairie par le backend. (47 commits)
- package : environnement simplifié d\'exécution pour les membres de l\'équipe. (13 commits)
- setup : environnement de production. (14 commits)
',
+ [Locales.EN]: 'Medical project for a French company with international reach. The project consists in a modern web platform for the management of nutrient pumps via Internet. I developed the backend of the system as well as the production environment.
The backend is written in Go and uses docker. It exposes a REST API for the frontend and a websocket API to communicate with the pumps. A PostgreSQL database allows managing the different resources. We have implemented several systems to ensure medical grade security at each level, such as the use of certificate chains, argon2, mTLS, jwt. The backend is fully covered by both unit and integration tests (dockerized) in order to reach a code coverage greater than 80%. I have set up integration and continuous deployment mechanisms to provide an up-to-date version to the client throughout the development.
The REST API is based on the use of the open-source library aicra that I have been developing for several years.
My work consists of:- backend : the backend with its 2 APIs. (1493 commits)
- cert : command line tool to manage certificate chains, used as a library by the backend. (47 commits)
- package : simplified execution environment for team members. (13 commits)
- setup : production environment. (14 commits)
',
+ [Locales.FR]: 'Projet médical pour une entreprise française à portée internationale. Le projet consiste en un système web moderne permettant la gestion de parcs de pompes à nutriments depuis Internet. J\'ai réalisé le backend du système ainsi que l\'élaboration de l\'environnement de production.
Le backend est développé en Go et utilise docker. Il expose une API REST pour le frontend et une API websocket pour communiquer avec les pompes. Une base de données postgreSQL permet la gestion des différentes ressources. Plusieurs systèmes ont été mis en place afin d\'assurer une sécurité de grade médical aux différents niveaux, notamment avec l\'utilisation de chaînes de certificats, argon2, mTLS, jwt. Le backend est entièrement couvert par des tests unitaires et d\'intégration (dockerisés) afin d\'atteindre une couverture de code supérieure à 80%. J\'ai mis en palce des mécanismes d\'intégration et de déploiement continu afin de fournir un version à jour au client tout au long du développement.
L\'API REST repose sur l\'utilisation de la librairie open-source aicra que je développe depuis plusieurs années.
Mon travail consiste en:- backend : le backend avec ses 2 APIs. (1493 commits)
- cert : outil en ligne de commande permettant la gestion des chaînes de certificats, utilisé comme librairie par le backend. (47 commits)
- package : environnement simplifié d\'exécution pour les membres de l\'équipe. (13 commits)
- setup : environnement de production. (14 commits)
',
},
source: null, doc: null,
commits: 1493 + 47 + 13 + 14,
@@ -83,7 +83,7 @@ export const Projects: Project[] = [
stopped_at: null, // still active
info: {
[Locales.EN]: 'Started as a personal go library to ease REST API development. The main goal is to greatly enhance maintainability by providing a single configuration file that describes every endpoint of the API. Everything that can be automated is while staying idiomatic to go. Aicra automates routing, parameter validation and extraction, permission management, response output formatting.
I then used it for a professional project in the medical field after corporate evaluation and audit. At the end of the project, results in production are promising : development and testing speed and ease, overall performances, configuration readability for other team members provides a real benefit, they can know the whole api at any time.',
- [Locales.FR]: 'Démarré en tant que projet personnel afin de simplifier mes développements d\'API REST. L\'objectif principal est d\'améliorer significativement la maintenabilité avec l\'utilisation d\'un fichier de configuration unique qui décrit/définit tous les endpoints de l\'API. Tout ce qui peut être automatisé l\'est, tout en restant idiomatique à Go. Aicra automatise le routage, la validation et l\'extraction des paramètres, les classes de permissions, le formattage des réponses, etc.
Ce projet a été utilisé pour un projet industriel dans le domaine médical après audit et évaluation de l\'entreprise. Au terme du projet, les résultats sont plutôt encourageants :- rapidité de développement
- rapidité d\'écriture des tests
- performances
- lisibilité du fichier de configuration pour les membres de l\'équipe (permet de connaître toute l\'API à tout moment du développement)
',
+ [Locales.FR]: 'Démarré en tant que projet personnel afin de simplifier mes développements d\'API REST. L\'objectif principal est d\'améliorer significativement la maintenabilité via un fichier de configuration unique qui décrit/définit tous les endpoints de l\'API. Tout ce qui peut être automatisé l\'est, tout en restant idiomatique à Go. Aicra automatise le routage, la validation et l\'extraction des paramètres, les classes de permissions, le formattage des réponses, etc.
Ce projet a été utilisé pour un projet industriel dans le domaine médical après audit et évaluation de l\'entreprise. Au terme du projet, les résultats sont plutôt encourageants :- rapidité de développement
- rapidité d\'écriture des tests
- performances
- lisibilité du fichier de configuration pour les membres de l\'équipe (permet de connaître toute l\'API à tout moment du développement)
',
},
source: [{ name: 'github.com/xdrm-io/aicra', link: 'https://github.com/xdrm-io/aicra', commits: 535 }],
doc: { name: 'pkg.go.dev/github.com/xdrm-io/aicra', link: 'https://pkg.go.dev/github.com/xdrm-io/aicra' },
@@ -97,8 +97,8 @@ export const Projects: Project[] = [
started_at: new Date(2018, 3, 24),
stopped_at: new Date(2021, 5, 21),
info: {
- [Locales.EN]: 'Research project to better understand websockets. It consists of a websocket client and server exclusively based on the protocol RFC.
I also did an optimization pass to achieve an efficient concurrency management solution that is idiomatic to Go (channels, select).',
- [Locales.FR]: 'Projet de recherche pour mieux comprendre les websockets. Cela consiste en un client et un serveur websocket en me basant exclusivement de la RFC du protocole.
J\'ai aussi fait une passe optimisation pour avoir une solution performante en gestion de concurrence qui soit idiomatique à Go (channels, select).',
+ [Locales.EN]: 'Research project to improve my understanding of websockets. It consists of a client and a server implementation, based on the protocol\'s RFC.
I conducted an optimization pass to achieve an efficient concurrent solution solution while remaining idiomatic to Go (channels, select).',
+ [Locales.FR]: 'Projet de recherche pour étendre ma compréhension des websockets. Le projet consiste en la création d\'un client et d\'un serveur websocket, basés exclusivement sur la RFC du protocole.
Une passe d\'optimisation a été réalisée afin d\'avoir une solution performante en terme de concurrence, tout en étant idiomatique à Go (channels, select).',
},
source: [{ name: 'git.xdrm.io/go/ws', link: 'https://git.xdrm.io/go/ws', commits: 114 }],
doc: { name: 'pkg.go.dev/git.xdrm.io/go/ws', link: 'https://pkg.go.dev/git.xdrm.io/go/ws' },
@@ -162,8 +162,8 @@ export const Projects: Project[] = [
started_at: new Date(2018, 1, 16),
stopped_at: new Date(2018, 5, 13),
info: {
- [Locales.EN]: 'Tutored project for my Master\'s degree. The subject was to provide a web-based solution for the management of the IT department (information system): teachers, classes, rooms, grades, timetables, course units and subunits, etc.
The idea was to replace a set of excel files used by the department chiefs to manage resources and generate schedules. The unavailability of the client was sometimes a hindrance to progress.
The project has a PHP backend, and a Vue frontend. We used docker-compose with a continuous integration and deployment system. 300 hours of work were invested in a little over 3 months. At the end of the collaboration, the project was adopted.',
- [Locales.FR]: 'Projet tutoré de fin de cycle dans le cadre du Master Informatique. Le sujet était de proposer une solution web pour la gestion du département informatique (système d\'information complet) : enseignants, classes, salles, notes, emplois du temps, gestion des UE, modules, etc.
L\'idée était de remplacer un ensemble de fichiers excel utilisés par les chefs de département pour gérer les ressources et générer les plannings. L\'indisponibilité du client a parfois été un frein à l\'avancement.
Le projet a un backend PHP, et un frontend en Vue. Nous avons utilisé docker-compose avec un système d\'intégration et de déploiement continu. 300 heures de travail ont été investies en un peu plus de 3 mois. Au terme de la collaboration, le projet a été adopté.',
+ [Locales.EN]: 'Tutored project for my Master\'s degree. The subject was to provide a web-based solution for the management of the IT department (information system): teachers, classes, rooms, grades, timetables, course units and subunits, etc.
We had to replace a set of excel files used by the department chiefs to manage resources and generate schedules. The unavailability of the client was sometimes a hindrance to progress.
The project has a PHP backend, and a Vue frontend. We used docker-compose with a continuous integration and deployment system. 300 hours of work were invested in a little over 3 months. At the end of the collaboration, the project was adopted.',
+ [Locales.FR]: 'Projet tutoré de fin de cycle dans le cadre du Master Informatique. Le sujet était de proposer une solution web pour la gestion du département informatique (système d\'information complet) : enseignants, classes, salles, notes, emplois du temps, gestion des UE, modules, etc.
Nous devions remplacer un ensemble de fichiers excel utilisés par les chefs de département pour gérer les ressources et générer les plannings. L\'indisponibilité du client a parfois été un frein à l\'avancement.
Le projet a un backend PHP, et un frontend en Vue. Nous avons utilisé docker-compose avec un système d\'intégration et de déploiement continu. 300 heures de travail ont été investies en un peu plus de 3 mois. Au terme de la collaboration, le projet a été adopté.',
},
source: [
{ name: 'git.xdrm.io/mti/ptut-virtenv', link: 'https://git.xdrm.io/mti/ptut-virtenv', commits: 103 },
@@ -197,8 +197,8 @@ export const Projects: Project[] = [
started_at: new Date(2018, 2, 21),
stopped_at: new Date(2018, 3, 24),
info: {
- [Locales.EN]: 'Advanced web development project for my Master\'s degree. We created in duo a Discord clone (chat and audio/video streaming platform). We decided not to look at the original source code as a challenge.
I did the frontend part with Vue as a single-page application (SPA). We have deployed the web as well as a desktop version using Electron. We managed to achieve in the time alotted:- a visual clone of the Discord user interface
- multi-channel management for chat and audio
- real-time chat capability
- audio full-duplex streaming communication
',
- [Locales.FR]: 'Projet de développement web avancé dans le cadre de mon Master. Nous avons en binôme, créé un clone de Discord (plateforme de chat et streaming audio/vidéo). Nous nous sommes fixés de ne pas regarder le code source de l\'application officielle.
J\'ai développé la partie frontend avec Vue sous forme de single-page application (SPA). Nous avons pu déployer la version web ainsi qu\'une version bureau en utilisant Electron. Nous avons réussi à réaliser dans le temps imparti:- une copie visuelle de l\'interface de Discord
- la gestion de plusieurs "channels" de chat et audio
- le chat temps réel
- La communication audio full-duplex en streaming
',
+ [Locales.EN]: 'Advanced web development project for my Master\'s degree. We created in duo a Discord clone (chat and audio/video streaming platform). The challenge was not to look at the original source code.
I did the frontend part with Vue as a single-page application (SPA). We have deployed the web as well as a desktop version using Electron. We managed to achieve in the 1 month:- a visual clone of the Discord user interface
- multi-channel management for chat and audio
- real-time chat capability
- audio full-duplex streaming communication
',
+ [Locales.FR]: 'Projet de développement web avancé dans le cadre de mon Master. Nous avons en binôme, créé un clone de Discord (plateforme de chat et streaming audio/vidéo). Le défi étant de ne pas regarder le code source de l\'application officielle.
J\'ai développé la partie frontend avec Vue sous forme de single-page application (SPA). Nous avons pu déployer la version web ainsi qu\'une version bureau en utilisant Electron. Nous avons réussi à réaliser en 1 mois:- une copie visuelle de l\'interface de Discord
- la gestion de plusieurs "channels" de chat et audio
- le chat temps réel
- La communication audio full-duplex en streaming
',
},
source: [
{ name: 'git.xdrm.io/mti/discord-client', link: 'https://git.xdrm.io/mti/discord-client', commits: 176 },
@@ -249,7 +249,7 @@ export const Projects: Project[] = [
stopped_at: new Date(2017, 8, 17),
info: {
[Locales.EN]: 'Personal project to extract the university schedule into an format that is compatible with most agenda apps. The schedule was provided as an image. I used an OCR (extracts text from images) and text positions to generate course titles, classrooms, teachers, days, hours. I created a web service that exposes an up-to-date calendar file. That way, agenda applications can update themselves to the latest schedule provided.
Used by university students until the schedule software has been changed.',
- [Locales.FR]: 'Projet personnel pour extraire l\'emploi du temps de l\'université dans un format compatible avec les applications d\'agenda. L\'emploi du temps était distribué sous forme d\'image. Utilisation d\'un OCR (extraction de texte depuis une image) et des positionnements pour générer les intitulés des cours, les salles, enseignants et horaires. Création d\'un service web qui expose le fichier calendrier à jour. Ainsi les applications d\'agenda récupèrent les dernières informations.
Service utilisé par les étudiants jusqu\'au changement du logiciel.',
+ [Locales.FR]: 'Projet personnel pour extraire l\'emploi du temps de l\'université dans un format compatible avec les applications d\'agenda. L\'emploi du temps était distribué sous forme d\'image. Utilisation d\'un OCR (extraction de texte depuis une image) et des positionnements pour générer les intitulés des cours, les salles, enseignants et horaires. Création d\'un service web qui expose le fichier calendrier à jour. Ainsi, les applications d\'agenda récupèrent les dernières informations.
Service utilisé par les étudiants jusqu\'au changement du logiciel.',
},
source: [
{ name: 'git.xdrm.io/xdrm-brackets/univ-pau-ics', link: 'https://git.xdrm.io/xdrm-brackets/univ-pau-ics', commits: 83 },
@@ -264,8 +264,8 @@ export const Projects: Project[] = [
started_at: new Date(2017, 8, 12),
stopped_at: new Date(2017, 8, 17),
info: {
- [Locales.EN]: 'Personal project to try to understand neural networks. A rather naive implementation involving a confusion with genetic algorithms.. This is when I understood that deep learning was not so simple.',
- [Locales.FR]: 'Projet personnel pour essayer de comprendre les réseaux de neuronnes. Implémentation un peu naïve avec une confusion avec les algorithmes génétiques.. C\'est là où j\'ai compris que le deep learning n\'était pas si simple.',
+ [Locales.EN]: 'Personal project to try to understand neural networks. A rather naive implementation involving a confusion with genetic algorithms.. This is when I understood that deep learning was not so simple. TODO: less negative',
+ [Locales.FR]: 'Projet personnel pour essayer de comprendre les réseaux de neuronnes. Implémentation un peu naïve avec une confusion avec les algorithmes génétiques.. C\'est là où j\'ai compris que le deep learning n\'était pas si simple. TODO: rendre moins négatif',
},
source: [
{ name: 'git.xdrm.io/xdrm-brackets/neural-network.php', link: 'https://git.xdrm.io/xdrm-brackets/neural-network.php', commits: 16 },
@@ -280,11 +280,11 @@ export const Projects: Project[] = [
started_at: new Date(2018, 9, 10),
stopped_at: new Date(2018, 9, 15),
info: {
- [Locales.EN]: 'Personal project to try to better understand neural networks in practice. Implementation of propagation and back propagation. Optimization with the use of matrix product. Project finished after a functional implementation and a clean API.',
- [Locales.FR]: 'Projet personnel pour essayer de mieux comprendre les réseaux de neuronnes en pratique. Implémentation de la propagation et backpropagation. Optimisation avec l\'utilisation de produit matriciel. Projet terminé après une implémentation fonctionnelle et une API propre.',
+ [Locales.EN]: 'Personal project to better understand neural networks in practice. The project is inspired by a series of videos on this subject by 3Blue1Brown. Implementation of propagation and back propagation. Optimization with the use of matrix product. Project finished after a functional implementation and a clean API.',
+ [Locales.FR]: 'Projet personnel pour mieux comprendre les réseaux de neuronnes en pratique. Inspiré par la série de vidéos sur le sujet de 3Blue1Brown. Implémentation de la propagation et backpropagation. Optimisation avec l\'utilisation de produit matriciel. Projet terminé après une implémentation fonctionnelle et une API propre.',
},
source: [
- { name: 'git.xdrm.io/go/neuralnet.php', link: 'https://git.xdrm.io/go/neuralnet.php', commits: 5 },
+ { name: 'git.xdrm.io/go/neuralnet', link: 'https://git.xdrm.io/go/neuralnet', commits: 5 },
],
doc: { name: 'pkg.go.dev/git.xdrm.io/go/neuralnet', link: 'https://pkg.go.dev/git.xdrm.io/go/neuralnet' },
commits: 0,
@@ -296,8 +296,8 @@ export const Projects: Project[] = [
started_at: new Date(2017, 2, 22),
stopped_at: new Date(2017, 4, 19),
info: {
- [Locales.EN]: 'Distributed systems project in the framework of my Master\'s degree. It consists of a multicast server and several multicast clients:- A client for planes sending their data
- A traffic visualization client in C
- A visualization client in Java
I realized the C part including multi-threading, low-level sockets management, protocols design, multicast management.',
- [Locales.FR]: 'Projet de systèmes distribués dans le cadre du Master. Il s\'agit d\'un serveur multicast et de plusieurs clients multicast:- un client pour les avions qui envoient leurs données
- Un client de visualisation du traffic en C
- Un client de visualisation en Java
J\'ai réalisé la partie C comportant du multithreading, la gestion de sockets bas-niveau, la conception des protocoles, la gestion multicast.',
+ [Locales.EN]: 'Distributed systems project in the framework of my Master\'s degree. It consists of a multicast server and several multicast clients:- one for planes that send data periodically
- one for traffic visualization in C
- one for visualization in Java
I realized the C part featuring : multi-threading, low-level sockets management, protocols design, multicast management.',
+ [Locales.FR]: 'Projet de systèmes distribués dans le cadre du Master. Il s\'agit d\'un serveur multicast et de plusieurs clients multicast:- un pour les avions qui envoient leurs données
- un pour la de visualisation du traffic en C
- un pour la visualisation en Java
J\'ai réalisé la partie C comportant du multithreading, la gestion de sockets bas-niveau, la conception des protocoles, et la gestion multicast.',
},
source: [
{ name: 'git.xdrm.io/xdrm-brackets/sysdis-project', link: 'https://git.xdrm.io/xdrm-brackets/sysdis-project', commits: 101 },
@@ -312,8 +312,8 @@ export const Projects: Project[] = [
started_at: new Date(2020, 3, 30),
stopped_at: new Date(2020, 5, 1),
info: {
- [Locales.EN]: 'Arduino project allowing the adjustment of motorcycle carburetors. The project uses 2 high-resolution pressure sensors to display a graphical differential on a small OLED screen. 2 knobs allow to adjust the buffer size and the sampling. This small project allows to synchronize its carburetors on battery in a portable way and at low cost.',
- [Locales.FR]: 'Projet Arduino permettant le réglage de carburateurs de moto. Le projet emploie 2 capteurs de pression haute résolution pour présenter un différentiel graphique sur un petit écran OLED. 2 potentiomètres permettent de régler la taille du tampon et l\'échantillonnage. Ce petit projet permet de synchroniser ses carburateurs sur batterie de manière portable et à moindre coût.',
+ [Locales.EN]: 'Arduino project allowing the adjustment of motorcycle carburetors. The project uses 2 high-resolution pressure sensors to display a graphical differential on a small OLED screen. Knobs allow to adjust the buffer size and the sampling. This small project allows to synchronize its carburetors on battery in a portable way and at low cost.',
+ [Locales.FR]: 'Projet Arduino permettant le réglage de carburateurs de moto. Le projet emploie 2 capteurs de pression haute résolution pour présenter un différentiel graphique sur un petit écran OLED. Des potentiomètres permettent de régler la taille du tampon et l\'échantillonnage. Ce petit projet permet de synchroniser ses carburateurs sur batterie de manière portable et à moindre coût.',
},
source: [
{ name: 'git.xdrm.io/iot/carb-sync', link: 'https://git.xdrm.io/iot/carb-sync', commits: 16 },
@@ -328,8 +328,8 @@ export const Projects: Project[] = [
started_at: new Date(2019, 5, 10),
stopped_at: new Date(2019, 6, 17),
info: {
- [Locales.EN]: 'Arduino project to remotely control solenoid valves. Opening of an agricultural hydraulic valve by WiFi connection. A battery operated low power remote control sends a UDP multicast message on the local network. The solenoid valve receives the message, opens or closes in response. Visual feedback on the remote control of the opening or closing. Possibility to have several independent solenoid valves and controls on the network.',
- [Locales.FR]: 'Projet Arduino permettant de commander une électrovanne à distance. Ouverture d\'une vanne hydraulique agricole par connexion WiFi. Une télécommande très basse consommation sur pile envoi un message multicast UDP sur le réseau local. L\'électrovanne reçoit le message, s\'ouvre et se ferme en réponse. Retour visuel sur la télécommande de l\'ouverture ou fermeture. Possibilité d\'avoir plusieurs électrovannes et commandes indépendantes sur le réseau.',
+ [Locales.EN]: 'Arduino project to remotely control a solenoid valve. The project was ordered to simplify the control of an agricultural irrigation valve. There are 2 components:- a very low power controller (battery operated) that sends a command. The controller issues a visual signal when the command is accepted.
- the solenoid valve that waits for orders and is activated when valid and authenticated orders are received.
The system uses multicast UDP to avoid the need to identify the different elements on the network. The final solution enables several independent solenoid valves and controllers on the same network.',
+ [Locales.FR]: 'Projet Arduino permettant de commander une électrovanne à distance. Le projet a été commandé pour simplifier le contrôle d\'une vanne d\'irrigation agricole. Il y a 2 composants:- une commande très basse consommation (sur pile) qui envoie un ordre. La commande émet un signal visuel quand l\'ordre est accepté.
- l\'électrovanne qui attends des ordres et s\'actionne à la réception d\'ordre valides et authentifiés.
Le système utilise le multicast UDP afin de ne pas avoir besoin d\'identifier les différents éléments sur le réseau. La solution finale permet d\'avoir plusieurs électrovannes et commandes indépendantes sur le même réseau.',
},
source: [
{ name: 'git.xdrm.io/iot/evw', link: 'https://git.xdrm.io/iot/evw', commits: 13 },
@@ -344,8 +344,8 @@ export const Projects: Project[] = [
started_at: new Date(2019, 0, 24),
stopped_at: new Date(2019, 10, 18),
info: {
- [Locales.EN]: 'Personal project in Go providing layout and colors in the terminal. Implementation of the vt-100 standard used in most Linux terminals. Use of a markdown inspired syntax to automate bold, italic, underline, links, etc. Support for background and text colors with hexadecimal code or color name. Alignment management. Support for channels to have texts that update themselves.',
- [Locales.FR]: 'Projet personnel en Go permettant de la mise en page et des couleurs pour le terminal. Mise en pratique du standard vt-100 utilisé dans la plupart des terminaux linux. Utilisation d\'une syntaxe inspirée du markdown pour automatiser le gras, l\'italique, souligné, liens, etc. Support des couleurs de fond et de texte avec code hexa ou nom de couleur. Gestion de l\'alignement. Support des channels pour avoir des textes qui se mettent à jour.',
+ [Locales.EN]: 'Personal project in Go providing layout and color support in the terminal. Implementation of the vt-100 standard used in most Linux terminals. Use of a markdown-inspired syntax to automate bold, italic, underline, links, etc. It allows to use background and font colors with hexadecimal code or color name. It also enables proper alignment, and supports Go channels to have multiple lines that update themselves.',
+ [Locales.FR]: 'Projet personnel en Go permettant de la mise en page et le support des couleurs pour le terminal. Mise en pratique du standard vt-100 utilisé dans la plupart des terminaux linux. Définition d\'une syntaxe inspirée du markdown pour automatiser la mise en forme : gras, italique, souligné, liens, etc. Support des couleurs de fond et de texte avec leur code hexa ou le nom de la couleur. Permet une vraie gestion de l\'alignement, et support des channels Go afin de modifier plusieurs lignes de texte sur place.',
},
source: [
{ name: 'git.xdrm.io/go/clifmt', link: 'https://git.xdrm.io/go/clifmt', commits: 27 },
@@ -361,7 +361,7 @@ export const Projects: Project[] = [
stopped_at: new Date(2018, 10, 18),
info: {
[Locales.EN]: 'Small project in Go that watches services for Linux servers. When a service fails, it sends you an email with a one-time use link. Opening the link restarts the service. I\'ve used it for a couple years for my VPS.',
- [Locales.FR]: 'Projet personnel en Go qui surveille les services pour des serveurs linux. Quand un service échoue ou s\'arrête, un email est envoyé avec un lien à usage unique. Ouvrir le lien dans permet de redémarrer le service. Utilisé pendant quelques années sur mon VPS.',
+ [Locales.FR]: 'Projet personnel en Go qui surveille les services pour des serveurs linux. Quand un service échoue ou s\'arrête, un email est envoyé avec un lien à usage unique. Ouvrir le lien permet de redémarrer le service. Utilisé depuis plusieurs années sur mon VPS.',
},
source: [
{ name: 'git.xdrm.io/go/pingu', link: 'https://git.xdrm.io/go/pingu', commits: 32 },
@@ -370,14 +370,14 @@ export const Projects: Project[] = [
commits: 0,
},
{
- name: 'nix-amer',
+ name: '*nix-amer',
client: null,
skills: [s.Go, s.Linux, s.Systemd, s.Bash, s.OpenSource, s.Git],
started_at: new Date(2018, 10, 6),
stopped_at: new Date(2019, 10, 18),
info: {
- [Locales.EN]: 'Personal project in Go with the goal of providing a universal format to automatically configure any Linux.
The project provides a syntax to manipulate different configuration files, run commands, copy files, install programs, etc. It provides an abstraction of nginx, yaml, ini, bash, json configuration formats. The idea is that when running nix-amer on a new Linux server, it installs and configures the whole server. The project supports task parallelization.',
- [Locales.FR]: 'Projet personnel en Go ayant pour but de fournir un format universel pour configurer un Linux automatiquement.
Le projet fournit une syntaxe permettant d\'éditer différents fichiers de configuration, de lancer des commandes, copier des fichiers, installer des programmes, etc. Il fournit une abstraction des formats de configuration nginx, yaml, ini, bash, json. L\'idée étant qu\'en lançant nix-amer sur un nouveau serveur Linux, il installe et configure le serveur. Le projet supporte la parallélisation des tâches.',
+ [Locales.EN]: 'Personal project in Go providing a universal format to automate Linux configuration.
The project provides a syntax to manipulate several configuration files, run commands, copy files, install programs, etc. It provides an abstraction of the most used configuration formats : nginx, yaml, ini, bash, json. Running *nix-amer on a new Linux server, installs and configures the whole server. The project supports heavy task parallelization.',
+ [Locales.FR]: 'Projet personnel en Go proposant un format universel afin d\'automatiser la configuration de machines Linux.
Le projet fournit une syntaxe permettant d\'éditer différents fichiers de configuration, de lancer des commandes, copier des fichiers, installer des programmes, etc. Il fournit une abstraction des formats de configuration nginx, yaml, ini, bash, json. L\'idée étant qu\'en lançant *nix-amer sur un nouveau serveur Linux, il installe et configure le serveur. Le projet supporte la parallélisation des tâches.',
},
source: [
{ name: 'git.xdrm.io/go/nix-amer', link: 'https://git.xdrm.io/go/nix-amer', commits: 108 },
@@ -392,8 +392,8 @@ export const Projects: Project[] = [
started_at: new Date(2019, 10, 22),
stopped_at: new Date(2019, 10, 23),
info: {
- [Locales.EN]: 'Personal project in Go allowing the visualization of code coverage in a terminal by exploiting the vt-100 standard which allows using colors.',
- [Locales.FR]: 'Projet personnel en Go permettant la visualisation de couverture de code dans un terminal en exploitant le standard vt-100 qui permet notamment l\'utilisation de couleurs.',
+ [Locales.EN]: 'Personal project in Go allowing the visualization of code coverage in a terminal. The library exploits the vt-100 standard which allows using colors.',
+ [Locales.FR]: 'Projet personnel en Go permettant la visualisation de couverture de code dans un terminal. La librairie exploite le standard vt-100 qui permet notamment l\'utilisation de couleurs.',
},
source: [
{ name: 'git.xdrm.io/go/cliverage', link: 'https://git.xdrm.io/go/cliverage', commits: 11 },
@@ -409,7 +409,7 @@ export const Projects: Project[] = [
stopped_at: new Date(2020, 1, 20),
info: {
[Locales.EN]: 'Utility using i3lock to lock your Linux PC without looking like it: the screen remains visible and the mouse works, but that\'s all. You just have to type your password then ENTER to unlock it.
I added a security layer because it is still possible to kill the i3lock process from another administrator account. When the process starts, a file with a random name is created in /tmp. Deleting this file locks the screen, so it is difficult to unlock it, because it would require recreating the file whose name is not known.',
- [Locales.FR]: 'Utilitaire exploitant i3lock pour verrouiller son pc Linux sans en avoir l\'air : l\'écran reste affiché et la souris fonctionne, mais c\'est tout. Il suffit de taper son mot de passe puis ENTRER pour le déverrouiller.
Ajout d\'une couche de sécurité car il est possible de tuer le process i3lock depuis un autre compte administrateur. Au verrouillage, un fichier au nom aléatoire est créé dans /tmp. La suppression de ce fichier permet de verrouiller l\'écran, il est donc difficile de le déverrouiller, car il faudrait recréer le fichier dont le nom n\'est pas connu.',
+ [Locales.FR]: 'Utilitaire exploitant i3lock pour verrouiller son pc Linux sans en avoir l\'air : l\'écran reste affiché et la souris fonctionne, mais c\'est tout. Il suffit de taper son mot de passe puis ENTRER pour le déverrouiller.
Ajout d\'une couche de sécurité car il est possible de tuer le processus i3lock depuis un autre compte administrateur. Au verrouillage, un fichier au nom aléatoire est créé dans /tmp. La suppression de ce fichier permet de verrouiller l\'écran, il est donc difficile de le déverrouiller, car il faudrait recréer le fichier dont le nom n\'est pas connu.',
},
source: [
{ name: 'git.xdrm.io/xdrm-brackets/xlock', link: 'https://git.xdrm.io/xdrm-brackets/xlock', commits: 9 },
@@ -473,8 +473,8 @@ export const Projects: Project[] = [
started_at: new Date(2017, 11, 9),
stopped_at: new Date(2017, 11, 10),
info: {
- [Locales.EN]: 'Project as part of the Nuit de l\'info, 2017 edition. The Nuit de l\'info brings together thousands of students around the development of a project with a common topic. Many sponsors offer challenges and prizes.
We developed together, a full-stack website with a PHP and Kotlin backend, we used Vue for the frontend. I developed the PHP part and the front-end.
At the end of the night, the project won 2 silver medals: "Into The While" team',
- [Locales.FR]: 'Projet dans le cadre de la Nuit de l\'info, édition 2017. La nuit de l\'info regroupe des milliers d\'étudiants autour du développement d\'un projet avec un sujet commun. De nombreux sponsors proposent des défis et des prix.
Nous avons développé, en binôme, un site web full-stack avec un backend PHP et Kotlin, nous avons utilisé Vue pour le frontend. J\'ai développé la partie PHP et le front-end.
A l\'issue de la nuit, le projet a remporté 2 médailles d\'argent : équipe "Into The While"',
+ [Locales.EN]: 'Project achieved for the Nuit de l\'info, 2017 edition. The Nuit de l\'info is a national event that brings together thousands of students around the development of a project with a common topic. Many sponsors offer challenges and prizes for the winners.
We built a website with a PHP and Kotlin backend, with a Vue frontend. I developed the PHP part and the front-end.
At the end of the night, the project won 2 silver medals: "Into The While" team',
+ [Locales.FR]: 'Projet réalisé pour la Nuit de l\'info, édition 2017. La nuit de l\'info est un évènement national qui rassemble des milliers d\'étudiants autour du développement d\'un projet avec un sujet commun. De nombreux sponsors proposent des défis et des prix pour les gagnants.
Nous avons développé, en binôme, un site web full-stack avec un backend PHP et Kotlin, nous avons utilisé Vue pour le frontend. J\'ai développé la partie PHP et le front-end.
A l\'issue de la nuit, le projet a remporté 2 médailles d\'argent : équipe "Into The While"',
},
source: [
{ name: 'git.xdrm.io/ndi-2018/main', link: 'https://git.xdrm.io/ndi-2018/main', commits: 229 },