Blog
2024
Internet n'est pas mort, il a juste une drôle d'odeur
Lorsque j'ai mis en ligne ce blog il y a quelques années, j'ai longuement cherché à détourner des répliques de The Big Lebowski comme accroche. Ne trouvant rien de concluant, je me suis finalement tourné vers une valeur sûre : Frank Zappa.
Générer une blogoliste depuis un fichier opml avec Hugo
Une blogoliste, c'est un peu un résultat de moteur de recherche généré non pas par un algo, mais par une personne. Si vous avez un lecteur RSS pour votre veille, voici comment utiliser votre liste de flux pour générer une page blogoliste avec Hugo.
Migrer une application React de CRA à Vite
Rapide retour d'expérience sur la migration d'une application React gérée avec l'outillage CRA vers l'outillage Vite
2023
nodemon, sans npm ni nodemon
Comment faire pour relancer automatiquement un processus node lorsque le code est modifié, sans npm ni nodemon ?
2022
Mes commandes Git
Ce sixième et dernier article de la série sur mon terminal aborde la commande que je lance le plus souvent (historique zsh à l'appui) : git. J'y explique mes alias de configuration, les cli et les scripts que j'ai pu ajouter au cours du temps, ainsi qu'un script unifiant ce foisonnement de commandes devenues hétérogènes : gitt.
Mes commandes du quotidien
Ce cinquième article de la série sur mon terminal est un peu une liste à la Prévert. Mais il y a tout de même un fil directeur : je me limite aux commandes que j'utilise au moins une fois par jour.
L’émulateur de terminal Kitty
Pour cette quatrième publication au sujet de mon terminal, je passe en revue les raisons m'ayant fait choisir Kitty comme émulateur : sa gestion de polices de caractère avec ligature, ses thèmes et sa gestion des onglets et fenêtres.
Pourquoi j'utilise le shell zsh
Ce troisième article de la série sur ma console pourrait être très technique, tant les discussions sur les différents Shell peuvent être polémiques et pointues (et barbantes). Mais il ne l'est pas, car je m'y borne à parler de la configuration de zsh et des quelques points ayant emporté mon adhésion : la complétion, Oh My Zsh et les alias.
Un terminal transposable grâce aux dotfiles
Dès que l'on commence à utiliser quotidiennement le terminal, on cherche à l'adapter à ses habitudes via des fichiers de configuration : les dotfiles. Ce second article aborde l'organisation de ces fichiers, mais aussi une stratégie permettant de les sauvegarder et donc de les partager. Et s'il existe plusieurs outils pour effectuer cette tâche, je parle de celui que j'utilise maintenant : Stow.
Le terminal, mon atelier de travail
Pour ce premier article à propos de mon terminal, je tente de mettre du contexte. Quelle est la différence entre une console et un terminal ? C’est quoi le Shell ? Est-ce que j’utilise un terminal ou un émulateur de terminal ? Qu’est-ce qu’une cli ? Autant de questions que j’ai dû me poser avant de pouvoir considérer mon terminal comme étant mon atelier de travail.
Pourquoi choisir JSON Resume pour maintenir son CV
Maintenir régulièrement à jour son curriculum vitæ dans un secteur d’activité où l’on est (trop ?) souvent amené à changer d’employeurs ou de clients, c’est faire preuve de prévoyance. Mais s’imaginer que ses projets publics sur Github ou son profil LinkedIn suffisent, c’est sans doute un manque de clairvoyance. Une meilleure stratégie pour conserver les traces de son parcours professionnel consiste à investir sur un format dédié et interopérable : le JSON Resume.
Pourquoi choisir Hugo comme générateur de site statique
Un générateur statique de site est un peu le chainon entre un site écrit de A à Z en HTML/CSS à la main, et un site dynamique nécessitant un serveur et une technologie spécifique (PHP, Python, JavaScript, Elixir ...). Parmi l'offre pléthorique de générateur de ce type, pourquoi choisir Hugo ?
2021
Auto-hébergement avec une machine virtuelle Freebox
Plutôt que d'avoir à alimenter un serveur dédié, pourquoi ne pas utiliser directement ma box - qui devra être allumée quoi qu'il se passe - pour faire mon auto-hébergement web ?
Utiliser des balises ESI avec Next.js
Comment améliorer encore plus le temps de réponse d'un site basé sur Next.js ? Avec des ESI !
Utiliser une base SQlite dans react-admin
Pour utiliser une base de données dans une application web, nous devons construire une API. Mais que se passerait-il si nous pouvions utiliser une base de données directement depuis le navigateur ?
Using An SQLite Database Live In React-Admin
To use a database in a web app, we have to build an API. But what if we could use a database directly from the browser?
FOSS interview : React-admin avec Gildas
Dans cette vidéo, Gildas nous parle du projet open-source React-admin
FOSS interview : stretch-discord avec Maxime et Pierre
Dans cette vidéo, Maxime et Pierre nous parlent du projet open-source stretch-discord
FOSS interview : comfygure avec Kevin
Dans cette vidéo, Kevin nous parle du projet open-source comfygure
Histoire d'une migration chez Arte (3/3) : action
Comment nous avons mis en œuvre une migration continue
Histoire d'une migration chez Arte (2/3) : la mise en place
Comment nous avons préparé un chantier de migration continue
Histoire d'une migration chez Arte (1/3) : le contexte
Pourquoi nous nous sommes lancés dans un chantier de migration continue
2020
Handling JWT in Admin Apps the Right Way
The best practice regarding JWT storage is to use memory rather than local storage. But it comes with numerous challenges. Let's see how to tackle these in the case of a react-admin application.
Nettoyage de printemps de nos projets open-source
On trouve plus de 200 dépôts publics sur notre compte Github. Est-ce à dire que nous maintenons plus de 200 projets open-source ? Non, un petit nettoyage s'imposait...
OpenAPI : un contrat pour vos API.s
La spécification OpenAPI permet d'écrire le contrat du service fourni par une API REST. Mais comment écrire un tel contrat et à quoi va-t-il servir ?
OpenAPI dans la jungle du REST
HATEOAS, JSON-LD, JSON API, HAL, Hydra ... La liste des acronymes de spécification liées au REST est longue. Quelle est la place d'OpenAPI dans cette liste ?
Mocking an API with Polly.js
It is never easy to set up functional tests involving calls to an external API. Polly.js is a useful tool to know when you need to mock calls to an API.
2019
Bouchonner une API avec Polly.js
Ce n'est jamais simple de mettre en place des tests fonctionnels impliquant une base de données ou des appels à une API externe. Si Polly.js ne résout pas le problème de la base de données, c'est un outil utile à connaitre pour bouchonner des appels vers une API.
Les cartes techniques
Si l'on se limite aux histoires utilisateur pour remplir le backlog produit, ne passe-t-on pas à côté de la plaque ?
Visual Studio Live Share, c’est de la balle !
Cela fait maintenant plus de deux ans que je travaille en full remote. Une des questions récurrentes lorsque j’en discute concerne les outils que j’utilise pour travailler avec mes collègues. Et bien en voici un vraiment très bon : Visual Studio Live Share.
2018
Applications 12 facteurs: comment validez-vous votre configuration ?
Dès lors que nous livrons notre code sous forme d’image docker, comment s’assurer que la configuration de l’environnement d’exécution sera correcte ?
A Developer's Diary: Building A Notes Taking App in Shell
I'm used to recording all the little things I learn from day to day as a developer. Since I didn't find the right note-taking tool to integrate in my daily routine, I coded it. Read on to see what I learned in the process.
Journal intime d'un développeur
Une chose que j’aime particulièrement dans mon métier de développeur, c’est que l’on apprend tout le temps : un pattern, une lib, une obscure astuce de configuration… Dans le feu de l’action, on se réjouit, mais quelques jours après, souvent, on oublie. C’est dans ces moments-là que l’on se dit que l’on aurait bien fait de prendre des notes.
Happy Node.js 11.0.0 Day
C'est cette semaine qu'est sortie la version 11 de Node.js. L'occasion de faire un petit ménage dans mes modules npm installés en global.
Un serveur en deux deux
Comment lancer un projet docker-compose sur un serveur publique en moins de 10 minutes
Managing State in React: Redux or not Redux?
Redux is a fantastic tool for managing state in React.js, but is it suitable for all situations? Probably not.
Avec ou sans Redux ?
Redux est un outil fantastique, mais convient-t-il à toutes les situations ? Sans doute pas.
ESLint et Prettier
Lorsque je lance un nouveau projet, les premières étapes sont souvent les mêmes : créer un repository, bootstraper les bases du projet (yarn add express, create-react-app webapp, ...), et ouvrir le projet dans VSCode, où l’indentation et autre "doubleQuote" me rappellent la prochaine étape : mettre en place les règles d'ESLint.
Un monorepo pour les petits projets
Plébiscitée sur les grosses bases de code, l’utilisation d’un monorepo sur un projet de librairies est un indéniable plus. Mais qu’en est-il sur les projets plus standards ?
2017
Développer un site Gasby.js avec Docker
En ce moment, j'utilise Gasby pour plusieurs sites (ce blog compris). Mais tous les contributeurs de ces sites ne veulent pas forcément installer Node sur leur machine. La solution évidente : Docker.
React Router v4, SSR, Redux Saga et Code Splitting sont dans un bateau
React est rapide, pour peu que l'on y applique les bonnes optimisations. Le code splitting et le server side rendering sont deux pistes permettant d'atteindre cet objectif. Utilisons-les toutes les deux sur une application s'appuyant sur Redux, Saga et React Router V4.
Running React Router v4, Redux Saga, SSR and Code Splitting together
Code splitting and server-side rendering are two ways of making a React app fast. Let's put them together in practice, with Redux, Sagas and React Router V4.
Retour sur une année en télétravail à plein temps
On trouve beaucoup d’articles de blog sur le « full time remote jobs », moins sur le télétravail à plein temps. Si les entreprises en France s’ouvrent petit à petit, journée par journée au télétravail, le travail à plein temps à distance est moins courant. Pourtant c’est possible et c’est efficace.
Associer un utilisateur à celui d'un container Docker
L'un des problèmes très classiques lorsque l'on utilise Docker, c'est que l'utilisateur d'un container est root par défaut. Du coup, on peut rencontrer des problèmes de droits sur les répertoires générés au sein de ce container.
5e édition du Printemps Agile de Caen
Jusqu'à présent, la ville de Caen était réputée pour sa scène rock (The Lanskies, Cannibale, Grand Parc) et electro (Baadman, Superpoze, Fakear). Mais elle risque également de le devenir pour son dynamisme autour de l'agilité.
Découvrir les service workers
Un outil de plus dans la panoplie des développeurs web ? Les services workers offrent bien plus que la simple possibilité de rendre une application disponible hors-ligne. Voyons ça en pratique.
2016
Yarn
Parfois, les outils javascript semblent être des effets de mode. Mais devant le nombre de retours positifs sur projet Yarn, cela doit quand même valoir le coup d'y jeter un coup d’œil.
Is it snobbery to want a real console on Windows?
Sometimes you have to code on Windows: this can be because of a personal challenge, or because you lost a bet, or because you don't have a choice. And it can be a bit painful when you are used to a powerful terminal. But some good solutions exist, as we'll see.
Déploiement continu vers S3
L’application « Road to Caen » est maintenant bootstrappée. Avant de commencer le développement proprement, il reste à mettre en place le tunnel de déploiement continu, du code créé en local au bucket S3 d’hébergement, déploiement sécurisé par l’exécution automatique des tests unitaires et fonctionnels déjà mis en place.
Est-ce du snobisme que de vouloir une vraie console sous Windows ?
Il arrive parfois que l’on doive coder sous Windows : que ce soit par challenge, parce que l’on a perdu un pari ou parce qu’on n’a pas le choix. Et cela peut être un peu douloureux lorsque l’on est habitué à sa console Mac ou Linux.
Road to Caen
Un nouveau blog, un premier post et un titre pas très technique : je déménage cet été à Caen.
2014
Bilan du Forum PHP 2014: Le PHP, langage de l'innovation ?
Le PHP est-il un langage de choix pour relever le défi de l'innovation ? Compte-rendu sélectif de ce qu'en a dit la communauté PHP réunie au Beffroi de Montrouge le 23 et 24 octobre dernier.
Une commande tree plus efficace grâce au Go
Peut-on facilement et rapidement améliorer la classique commande `tree` grâce au langage Go ? Nancy étant dans les cartons, c'est Paris qui s'y colle pour cette journée de Hackday.
Une console plus graphique avec node.js et d3.js
"Afficher graphiquement l'occupation disque d'un répertoire dans la console en Javascript" : l'énoncé du problème est très motivant. Mais après 5 jours à en tenter l'implémentation, peut-on dire que node.js et d3.js sont utilisables pour des rendus graphiques dans un terminal ? Oui. Mais ...
MobileInsight : une semaine avec Angular.js, Ionic et PhoneGap
Retour d'expérience sur le développement d'une application mobile hybride, basée sur le service SensioLabsInsight, avec Angular.js, Ionic et PhoneGap
Du PHP au Go: une semaine pour réaliser un produit fonctionnel
Du PHP au Go: une semaine pour réaliser un produit fonctionnel.