Blog

Filter by language: All, English, French

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