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.