Blog

Filter by language: English French

  • Kibana most useful keyboard shortcuts

    My most used keyboard shortcuts for Kibana. Yes, Kibana has keyboard shortcuts! 🚀

  • Elasticsearch 101: Shards vs Replicas

    Understanding the critical difference between Elasticsearch shards and replicas for optimal cluster performance and reliability.

  • Elasticsearch 101: Object vs Nested

    Interview question on Elasticsearch: what is the difference between object and nested data types?

  • Elasticsearch tips: auto_expand_replicas

    The auto_expand_replicas setting in Elasticsearch dynamically adjust replica counts during cluster scaling.

  • Elasticsearch best practice: disable dynamic mapping

    Elasticsearch best practice: disable dynamic mapping in your indices, or even reject unmapped fields.

  • Elasticsearch best practice: aliases

    Elasticsearch aliases are a best practice. They simplify alot management of indices, for example, migration between indices.

  • Elasticsearch 101: refresh interval

    Quick Guide on Elasticsearch refresh_interval setting.

  • Elasticsearch JS: retry on timeout

    Elasticsearch.js 8.14.0 changes how request timeouts are handled.

  • Improving Elasticsearch Performance with Compression in Node.js

    When using Elasticsearch in Node.js apps, there’s a simple performance optimization many developers miss: compression is not enabled by default.

  • Streaming data from BigQuery with TypeScript, Fast!

    How to read from BigQuery in the fastest possible way? Let’s explore three different ways, from normal to the fastest one I know.

  • Ransomware-Resistant Backups with Kopia and Scaleway Object Lock

    With backups, the ultimate goal is to protect against ransomware attacks and for someone, even you, to prevent any deletion. This guide demonstrates how to set up secure backups with Object Lock. We will use Kopia as the backup tool and Scaleway as the cloud provider.

  • Backup with Restic

    Learn how to set up a secure, monitored backup system using Restic and Healthchecks.io. This guide covers running Restic without root privileges, automating backups and cleanup, and getting notifications when things go right—or wrong.

  • Bulletproof Your Files in 2025: The Syncthing + Restic Setup

    Lost files? Outdated versions? A proper backup strategy eliminates these risks. Here’s my battle-tested setup and the solution I recommend for 2025.

  • You need a MacroPad

    I found a pretty good companion for my Keyboard: a MacroPad! ⌚

  • Get structured output from a Language Model using BAML

    What if your LLM produces invalid JSON, and worse, JSON that does not respect your schema? Let us dig into BAML, a tool to solve that, and more!

  • Delightful experience with Anthropic Claude LLM

    Lately, I wanted to convert my list of books from a text file to JSON to give it a better structure. Instead of writing a bunch of regexes and string tricks, I went for Anthropic Claude LLM. The experience and results were impressive!

  • Maximizing Efficiency: A Guide to Caching in Jest, Prettier, ESLint, and TypeScript

    Cache all the things! Speed up your development workflow by enabling caching for Jest, Prettier, ESLint, and TypeScript, both locally and in your CI.

  • How to configure MSMTP for self-hosted email

    I recently reinstalled my server and configured msmtp to send emails to myself. It wasn’t working right at first. Here’s how to configure it properly.

  • Think carbon, reduce typescript bundle size

    Reducing the size of JS compiled from Typescript is easy.

  • Switching app with a single key press

    Some years ago, I found that using alt-tab for app switching was not that convenient nor fast.

  • Better NPM'ing, Tips and Tricks using NPM

    I discovered several tips for working with NPM on a daily basis. Here are the top ones.

  • Intellij Championship

    Last week I ran an “Intellij Master Championship” class/presentation. There were prizes to win, like Jetbrains Yoyos, Intellij Stickers.

  • Global Day Of Coderetreat 2016

    Saturday was the Global day of Coderetreat, an event occurring every year and which brings people, in their free time, to pair-program with complete strangers. The website tells about 115 participating cities and many developers worldwide.

  • My attempt at building a production grade docker image

    As I am self-hosting a couple of services, mainly for keeping my data for myself (Sorry Google, Facebook), I tried to build a “production-grade docker image”. Here’s my attempt and what I learnt along the way.

  • Working Effectively with Unit Tests by Jay Fields

    I am very happy to have read Jay Fields’ Working effectively with unit tests. This is a rare book where developers are taught how to be better at a very argued discipline: testing.

  • The Secrets of Consulting by Gerald M. Weinberg

    The book “Secrets of Consulting” by Weinberg stayed for years on my shelf. I finally found why I did not read it just after I bought it, but why I should have read it before.

  • Learning to touchtype using the Colemak layout

    I was always interested in keyboards and keyboard layouts: typing faster, reducing wrist injuries, and morover never looking back at my keyboard. After all, Azerty/Qwerty were not made for developers. So last year, I decided to spend some time learning to touchtype using a new layout, the Colemak.

  • An introduction to Java Agent and bytecode manipulation

    A few months ago, I wrote a little shell script to colorize Maven’s output. This is a good solution, but Jean-Christophe Gay has written a pure Java version to solve the same problem with interesting bits of Java technologies: Java Agent and bytecode manipulation using ASM.

  • CrĂ©er son EURL et devenir indĂ©pendant : les Ă©tapes

    J’ai créé mon EURL courant octobre-novembre et je suis donc maintenant indĂ©pendant. Dans cet article, je liste les Ă©tapes qui m’ont permis de crĂ©er la sociĂ©tĂ©. Le parcours Ă©tait finalement simple, mĂȘme si beaucoup de questions se sont posĂ©es. Je suis parti avec une rupture conventionnelle, j’intĂšgre donc les Ă©lĂ©ments Pole-Emploi.

  • Maven in colors

    Maven output is quite pale. Want to see some green for successes, red for failures and yellow for warnings? Let’s see how to do it.

  • Slides of my presentation : DB Migration Automation

    Below are my slides about why and how we automated the migration of our databases. These slides were created for an internal presentation at my current gig.

  • Review: Play Framework Cookbook

    Play!, the framework for the bored Java developers! Very interesting and opinated framework. I didn’t play with it a lot in the previous months, but the new book “Play Framework Cookbook” by Packt Publishing, released this summer was a good way to dig into the framework. The ebook was offered for free to people who want to review it. No excuse.

  • Better autocompletes with Fuzzy Matching

    This article is an introduction to Fuzzy Matching and how it can improve an Autocomplete widget. Fuzzy Matching is used to find the most appropriate strings into a set of strings, like finding Sinatra when you misspelled it Senatra.

  • FitNesse technical setup

    Getting FitNesse working for a development team is not particularly clear. You have many possibilities and some of them are not so effective.

  • Industrialisation des dĂ©veloppements : automatisez votre base de donnĂ©es

    Le grand oubli dans l’industrialisation des dĂ©veloppements est la base de donnĂ©es, cette chose monolithique et statique qui n’évolue pas aussi vite et aussi aisĂ©ment que le code. Au mĂȘme titre que l’intĂ©gration continue et les systĂšmes de gestion de version pour le code source, il existe des outils permettant de fluidifier et d’automatiser le travail autour du schĂ©ma physique des donnĂ©es. Travailler avec ces outils permet de complĂ©ter une dĂ©marche Agile en permettant une rĂ©activitĂ© forte face aux changements.

  • Notes sur Rework de 37signals

    Mes notes sur le deuxiĂšme livre de la sociĂ©tĂ© 37signals, Rework. Il fait suite Ă  Getting Real. J’ai avalĂ© rapidement le livre, car les idĂ©es sont tranchantes, inspirantes et quelques fois rĂ©voltantes. Mais le but est lĂ  : rĂ©aliser qu’il y a d’autres façons de faire du business. de concevoir son entreprise et de travailler.

  • Construire la nouvelle gĂ©nĂ©ration de leaders techniques

    Transcription de la session de Patrick KUA Ă  l’USI 2010 : Building the next gĂ©nĂ©ration of technical leaders.

  • JPA : les illusions sur les NamedQueries

    Un certain nombre d’idĂ©es reçues existent sur les NamedQueries. On les dit plus performantes, car mises en cache, on les dit plus sĂ»res car validĂ©es au chargement. Etudions ces points et regardons quels sont les rĂ©els avantages des NamedQueries.

  • 8 raisons d'aimer Ruby

    Ruby est un langage qui Ă©volue vite, qui monte fortement et qui est utilisĂ© pour faire de vraies choses (mĂȘme en prod !). Cet article contient 8 points qui font de Ruby un trĂšs bon langage et une plateforme de choix pour rĂ©aliser ses futurs projets.

  • Tests d'intĂ©gration : quid de la base de donnĂ©es ?

    La base de donnĂ©es est un Ă©lĂ©ment important des tests d’intĂ©gration. Les deux questions Ă  se poser sont : Puis-je utiliser une base de donnĂ©es embarquĂ©e ? Puis-je dĂ©sactiver les contraintes d’intĂ©gritĂ© ?

  • MoreUnit : les tests plus vite sous Eclipse

    J’ai dĂ©couvert aujourd’hui le plugin MoreUnit pour Eclipse. Celui-ci accĂ©lĂšre grandement le passage code/test et la crĂ©ation de tests.

  • Critique du livre "Passionate Programmer"

    Dans “The Passionate Programmer”, apprenez comment gĂ©rer votre carriĂšre de geek, comment booster votre vie professionnelle, et avoir du fun et l’argent du fun.

  • Gradle : vos builds aux petits oignons

    Gradle est un outil permettant d’écrire ses scripts de build en groovy. Il nous a Ă©tĂ© prĂ©sentĂ© hier soir chez Zenika par son crĂ©ateur, Hans Dockter.

  • Les limites de Wicket

    ConnaĂźtre un framework, c’est aussi reconnaĂźtre ses limites et ses points faibles. Pour Wicket, il m’a fallu creuser profondĂ©ment. J’ai interrogĂ© les pros de Wicket prĂ©sent Ă  cette soirĂ©e, Carl Azoury, un des boss de Zenika et Martin Dashort, committer Wicket.

  • Retour du Barcamp "Travailleurs Du Web"

    Samedi a eu lieu le premier Barcamp TDW destinĂ©s aux personnes travaillant dans le Web ou s’y intĂ©ressant : designers, dĂ©veloppeurs, webmasters, curieux et mĂȘme un mec qui fait du Java (vous avez devinĂ© qui).

  • DĂ©marrer avec JPA, Spring, Maven et Glassfish

    Je vous propose un projet qui permettra de dĂ©marrer avec Spring, de dĂ©ployer sous Glassfish v3 et de lancer les tests d’intĂ©gration sans serveur d’application, le tout avec le pom Maven qui va bien.

  • JavaCamp 3 : Compte-rendu

    J’ai assistĂ© hier au JavaCamp n°3 organisĂ© par Valtech chez Sun. Une quinzaine de personnes Ă©taient prĂ©sentes et les sessions se sont rapidement organisĂ©es. Un compte rendu rapide des sessions auxquelles j’ai participĂ©es.

  • 30 secondes avec Glassfish v3

    Glassfish, le serveur d’app dont on entend parler un peu partout.

  • Critique du livre "Don't Make Me Think"

    J’ai eu le plaisir de lire le livre de Steve Krug “Don’t Make Me Think” dont le sujet est l’usabilitĂ© Web. L’usabilitĂ©, c’est la conception d’un site afin qu’il fonctionne au mieux. Pourquoi faire un site utilisable ? Steve Krug cite sa femme : “Si quelque chose est difficile Ă  utiliser, alors je l’utilise moins”.

  • ClearCase : changer le comparateur de fichier

    L’astuce du jour est : “se passer de ClearCase pour comparer les fichiers”.

  • PrĂ©sentation et retour sur GreenPepper

    Au boulot, nous Ă©valuons GreenPepper de la sociĂ©tĂ© Pyxis. GreenPepper est un outil de test fonctionnel et nous souhaitons Ă  terme que les MOA l’utilisent afin de rĂ©diger les spĂ©cifications et les tests associĂ©s.

  • Critique du livre "Wicket In Action"

    Je lorgnais depuis un sacrĂ© moment sur Wicket, ce cĂ©lĂšbre framework Web orientĂ© composant. Les exemples du site m’avaient fait saliver : dĂ©coupage propre du HTML et du code Java, gestion des Ă©vĂ©nements cĂŽtĂ© java (comme un onclick sur un lien), composants rĂ©utilisables, support Ajax natif, intĂ©gration Ă  Spring et Hibernate
 Beaucoup de qualitĂ©s qui ont suscitĂ© ma curiositĂ©.

  • Entreprendre au JUG2B

    Jeudi soir s’est tenu le JUG2B “Ma petite entreprise ne connaĂźt pas la crise”. J’ai eu le plaisir d’y assister et j’y ai appris pas mal de choses sur la crĂ©ation d’entreprise. Je poste ici ce que j’en ai retenu de mĂ©moire.

  • A la dĂ©couverte des Components Hibernate

    Plusieurs annĂ©es avec Hibernate et j’apprends une de ses fonctionnalitĂ©s de base : les Components. Ceux-ci permettent de mapper plusieurs objets dans une mĂȘme table.

  • Les inconvĂ©nients de Selenium

    Selenium est un trĂšs bon projet de test fonctionnel Web qui souffre de certains dĂ©fauts. Il a Ă©normĂ©ment de qualitĂ©, mais tout n’est pourtant pas rose. Je liste ses limitations et ses disfonctionnements afin que vous puissiez mieux le cerner. À lire pour ceux qui veulent dĂ©couvrir l’envers du dĂ©cor.

  • Astuce Quartz : tester une expression Cron

    Pour tester rapidement une nouvelle configuration d’un Cron, par exemple 0 * * * * ?, il suffit d’utiliser la classe CronExpression fournie par Quartz. Celle-ci fournit entre autre la prochaine date de lancement.

  • Quartz : un calendrier qui exclut les jours fĂ©riĂ©s

    L’idĂ©e part d’un besoin simple : lancer un job Quartz toutes les heures ouvrĂ©es, hors week-end et jours fĂ©riĂ©s.

  • Tuning de Tomcat par Mark Thomas

    Ce matin, aux Rencontres Spring, Mark Thomas a parlĂ© du tuning de Tomcat en production. J’y ai appris plusieurs choses intĂ©ressantes que je rĂ©sume ici.

  • Spring DM Server, le pari fou ?

    AprĂšs les Rencontres Spring qui ont eu lieu aujourd’hui, nous avons eu le droit Ă  quelques Ă©lĂ©ments de rĂ©ponses Ă  la question suivante :

  • Moteur de recherche Maven par Sonatype

    Sonatype propose un propre moteur de recherche dans les repository Maven. Il utilise le gestionnaire de Repo Nexus, un concurrent d’Artifactory proposĂ© par Sonatype.

  • Rencontre avec JĂ©rĂŽme Louvel, auteur de Restlet

    Suite au dernier JUG, JĂ©rĂŽme Louvel, l’auteur de Restlet, a bien voulu rĂ©pondre Ă  mes questions. Les sujets incluent les apports de REST, Ă  qui il est destinĂ©, JAX-RS et l’intĂ©gration Ă  un existant.

  • Configurer Quartz sur un Cluster

    Quartz est un scheduler. Il permet de lancer des Job Ă  intervalles spĂ©cifiĂ©s ou un jour donnĂ©. Par exemple, il peut ĂȘtre utiliser pour rĂ©aliser des calculs Ă  une heure oĂč la charge serveur est faible.

  • GWT et les questions des Juggers

    Hier, le JUG parisien s’est retrouvĂ© pour une prĂ©sentation de GWT et de REST-GWT.

  • Selenium : Boostez vos tests avec Tellurium

    Au commencement, vous écriviez vos tests Selenium en HTML. Mais cela posait des problÚmes : aucune factorisation possible, pas de setUp()/tearDown()


  • De la programmation dĂ©fensive

    Vous aviez dĂ©veloppĂ© un nouveau service. Les interfaces et les donnĂ©es Ă©changĂ©es Ă©taient dĂ©finies. Vous Ă©tiez optimiste, vous connaissiez bien le client. Malheureusement celui-ci utilisait de temps en temps mal votre API, vous fournissant des paramĂštres invalides. Vous voilĂ  en train de corrompre l’intĂ©gritĂ© de vos donnĂ©es. Pourtant, mĂȘme la Javadoc prĂ©cisait le format des donnĂ©es. Avez-vous Ă©tĂ© trop optimiste ? Et votre code, comment aurait-il dĂ» rĂ©agir ? Est-ce votre faute ou celle du client ?

  • OSGI : oui mais non

    Xebia a prĂ©sentĂ© hier soir “OSGI” au Paris JUG. Ce fut une confĂ©rence trĂšs intĂ©ressante menĂ©e par Cyrille Le Clerc et Nicolas Griso. Tout leur discours a consistĂ© Ă  nous prĂ©senter honnĂȘtement ce qu’est OSGI et nous permettre de nous faire notre propre opinion.

  • PrĂ©sentation du livre "The Mythical Man Month"

    Le livre “The Mythical Man Month” figure dans le TOP 10 des livres à avoir lu. Revue du livre.

  • Compte-rendu de la prĂ©sentation de Terracotta chez Zenika

    J’ai assistĂ© hier Ă  la prĂ©sentation de Terracotta par son CTO et co-fondateur, Ari Zilka, organisĂ© par la sociĂ©tĂ© Zenika.

  • Jetty : dĂ©marrage rapide

    Jetty est un serveur d’application lĂ©ger, trĂšs lĂ©ger. Il est en plus rapide et complĂštement intĂ©grĂ© Ă  Maven 2. Si vous voulez dĂ©ployer une application Web sans devoir installer un serveur sĂ©parĂ©ment, suivez le guide.

  • Selenium en java : DĂ©marrage rapide

    L’article est un guide de dĂ©marrage rapide pour l’écriture de tests Selenium en Java. Nous allons voir ce qu’il faut configurer dans le pom.xml de Maven et comme lancer l’ensemble des tests.

  • Script de sauvegarde WordPress et MySQL

    Qui dit nouveau blog, plugins Ă  gogo, tests et expĂ©rimentations, dit un jour ou l’autre : “si j’avais fait une sauvegarde, ça m’aurait Ă©vitĂ© de perdre mon blog et tout son contenu !”.

  • Export Excel avec Spring Web Flow

    Spring Web Flow s’intùgre à merveille à Spring MVC pour l’enchaünement des pages. Son rîle essentiel est de sortir la logique de navigation des contrîleurs.