Posts by Year

2025

MCP Servers, Claude Desktop and fun with PATHs

2 minute read

If you are playing with AI as a developer, you might has heard of Model Context Protocol (MCP) which is a way for an app to connect an LLM with some capabili...

Back to Top ↑

2024

Securing SSH and commits with a FIDO2 key

6 minute read

If you are curious or interested in FIDO2 security keys and how to use them as SSH keys or to sign your Git commits, this is the blog for you. If you are usi...

Back to Top ↑

2023

Installing Ruby on Apple Silicon

1 minute read

I have been struggling to install Ruby on Apple Silicon, this was due to an OpenSSL version misalignment. This entry can be useful to you in this situations....

Signing Git commits with SSH keys

2 minute read

Today I learned that you could sign your Git commits not only via a gpg key but also via a ssh key. Let’s see how. GPG keys and Git signing I’ve never ha...

Back to Top ↑

2022

Taurus K320 as a mechanical keyboard

2 minute read

For people old enough to have used the IBM keyboards you could stop a tank with, a mechanical keyboard is an achievement in life you are striving for. Like m...

BTRFS vs Ext4 for a NAS

1 minute read

Assuming you have a new NAS for your backups and personal files hosting. Which file system should you use: BTRFS or Ext4? This is a surprisingly unsettled qu...

Back to Top ↑

2021

Java LTS - perspective of a library author

5 minute read

I have had intuitively mixed feelings with the proposed 2 years Long Term Support plan of OpenJDK (from 3 today) so I wanted to write down what was causing i...

Embracing Uncharted

3 minute read

Econtalk is a good podcast where interviews bring you to ideas you have not thought of or crystallized before. Uncharted with Margaret Heffernan is one of th...

53 Java libraries to solve your problems

6 minute read

Max Andersen asked something interesting over the week-end on Twitter. What is an example of a java library that solved your problem just nicely ? Can be...

Selecting a note taking application

10 minute read

I am on the market for a new notes application, I have been asking around for advice. Here is the list of apps and a short analysis I did for each. My use c...

Communicating within remote teams

9 minute read

Communicating in a remote team has some specific challenges. Working remotely has lots of benefits but can be stressful due to the non physical lines between...

Why oh why two spaces after a period?

1 minute read

For the longest time, I was just plainly annoyed at people that were putting two spaces after a period. I thought it was one of those English thing. Being Fr...

Make Google Meet less blurry

2 minute read

Some people complain to you that your sharing screen is blurry with Google Meet. Here is a possible help. As I mentioned in my ultra wide screen blog entry,...

jbang – scripting for Java

5 minute read

Ever had a small task to script? Ever felt Java was not up to the task despite being your primary language? JBang is coming to the rescue. Use case When ...

Jekyll – A new blog infrastructure

4 minute read

After 8 and a half venerable years of service, I’ve retired my Awestruct based blog and migrated it to Jekyll. Read on for some feedback. The blog virus has...

Super ultra wide screen

3 minute read

I recently changed my desktop monitor to a super ultra wide 49” and I love it. Here is why. My venerable 27” Dell was becoming dangerously flaky, this led m...

Back to Top ↑

2018

macOS powerline and Python interpreters

1 minute read

tl;dr; using powerline and having it fail after a homebrew update? Read on. If you have tuned a bit your terminal in macOS, you might be using Powerline. It...

Back to Top ↑

2017

tig and add interactive

1 minute read

Tig is a textual GUI for git which lets you manipulate your git repo like GitX or SourceTree but without leaving your terminal. In particular, you can “graph...

Simplifying your double (calendar) life

1 minute read

If like me you live a double life (pro and personal) and like me you want to share your availability via calendars, you probably have created clones of the s...

MacBook Pro and the SMC cure

1 minute read

The physical parts of your MacBook (fans, ports etc) behaves erratically? I might have a cure. A story of crashes My MacBook Pro was getting on my nerves l...

Using vim and Evernote

1 minute read

I like Evernote because all my notes are in a single place and I can access it from everywhere (desktop, phone). I use it very much as my GTD reference mater...

Embedding Vim options in Markdown

1 minute read

I’ve been wrestling with an issue for quite a while: embed vim options into a Markdown file. I finally found a solution. Context You can customize the opti...

Start IntelliJ IDEA from the command line

2 minute read

You can start IntelliJ IDEA from the command line which is handy when you live in a terminal like me. But you need to enable that feature. Open IntelliJ IDE...

Retraite, baby boomers et pyramide des ages

2 minute read

Je n’avais jamais bien compris pourquoi les baby boomers étaient un tel problème pour les retraites des plus jeunes. Mon hypothèse était que la retraite des ...

Course on inverted index

less than 1 minute read

I gave a three hours course on inverted index to students from Telecom SudParis an engineering school here in… Paris :) It was fun to refresh my knowledge on...

Devoxx CfP - the art of tricking yourself

1 minute read

I noticed that the Devoxx France call for paper (CfP) application was influencing my votes. Sneaky one! Jeff Atwood’s tweet made me rethink about something ...

Back to Top ↑

2016

Why do we have corporate income tax anyways?

3 minute read

There is a lot being written about corporate tax optimisation/evasion these days both in Europe and in the US. This begs for a more general question, why do ...

Synology rsync and non standard ports

1 minute read

Recently running rsync to my Synology diskstation stopped working. I had just changed my default SSH port to a non standard one. Learn how to fix it. Synolo...

Asciidoc folding for Vim

1 minute read

I just learned about the ability to fold in Vim. For mere mortals, it means hiding parts of the file. Here is a code to put in your .vimrc to allow folding ...

Back to Top ↑

2015

Adding color to Maven output

2 minute read

Maven is quite verbose. Finding the useful information when the test fails requires you to squint eyes. Unless, you bring some coloring to the massive Maven ...

Moving to HTTPS

less than 1 minute read

I have decided to move this website to HTTPS. Let me know if you see anything fishy, cannot access it or if the RSS feed no longer updates. Why? With my coun...

Get notified when terminal commands end

1 minute read

Here is a tiny little tool that will speed up the multi-tasking life of terminal users: be notified when a command finishes. How many times have you started...

SPF for dummies - how to fight spams

4 minute read

In this post, you will learn everything you need about SPF (Sender Policy Framework), what it means for your emails and how / if to set it up for your domain...

Une place à gagner pour Devoxx France

less than 1 minute read

Devoxx France m’a offert une place suite au travail que j’ai fait dans le comité de sélection. Comme je suis speaker, je n’en ai pas besoin. Donc elle est po...

Back to Top ↑

2014

One line per idea - the feedback

1 minute read

I wrote a bit more than a year ago on how to wrap lines for markup languages. I promised to give feedback on this experiment and specifically the use of one ...

I love what my Kindle did to my life

3 minute read

I have been a rather early adopter of ebook readers. The Sony PRS-505. But I gave it to my wife and moved on to read on my iPad instead: The whole buying boo...

Fiscalité globale en France

3 minute read

J’ai toujours été intéressé par la répartition de la fiscalité en fonction des revenus en France. Et là vous me dîtes : Hum quoi?! Si l’économie et la ...

L’initiative codeforfrance.org

1 minute read

J’ai eu la chance d’interviewer Tariq Krim pour les cast codeurs et j’ai attrapé un peu de son virus / engouement pour changer les choses. Je suis très conte...

Split a commit in two with Git

2 minute read

Ever wanted a commit was actually made of two? Read on. There are several reasons why you could wish a commit was actually made of several distinct ones: ...

Can you spot the problem?

1 minute read

I am working on Hibernate Search’s ability to provide field bridge autodiscovery. I am usually pretty OK at getting a green bar on first run but I got out of...

Back to Top ↑

2013

Why did you start programming

6 minute read

While discussing with a mom whose boy wants a computer for Christmas, the said “I suppose he wants to play games, what for otherwise?”. To this I obviously r...

Notes sur les garbage collectors de la JVM

4 minute read

Lors d’une discussion sur les différents garbage collectors disponibles sur la JVM, Rémi Forax est sorti de sa tanière et nous a fait un résumé que je trouve...

Change the Apple TV WiFi settings without remote

less than 1 minute read

You have your Apple TV but no remote and need to change the WiFi settings? Read on. You’re on vacations and as a good geek, you’re fully autonomous and pack...

One line per idea

2 minute read

Now that most of my writing is done in a markup language like Markdown or Asciidoc, and now that I do version my writing in an SCM (Git to be specific), I ha...

Autocompletion is crap

1 minute read

I can’t believe autocompletion is still so stupid in 2013. Alright, I said it, I feel better. It’s actually not quite true and a lot of smart things are goi...

Une tasse de thé podcast

less than 1 minute read

Eric Lefevre-Ardand vient de lancer un nouveau podcast sur la programmation et en Français: Une tasse de thé Podcast. Comme son nom l’indique, le podcast es...

Multiple email aliases in iOS

1 minute read

I have tons of email identities. Depending on which hat I am wearing, I use one alias or another. Most are behind my GMail address. It is easy enough to crea...

Google Drive - the good and the ugly

1 minute read

Google Drive is a bit confusing at first but the Dropbox like feature works reasonably well. They have a desktop client that works pretty much like the Dropb...

Back to Top ↑

2012

Thou shalt be binary compatible

2 minute read

I learned some new tricks today thanks to Gunnar around backward compatibilities in Java. There is compatibility and compatibility In Bean Validation, we n...

No more Java Preferences for you!

1 minute read

Java on Max OS X is a moving target to say the least since stewardship has moved from Apple to Oracle. I had a lot of trouble to make Eclipse run on my machi...

Installing po2xml and xml2pot on Mac OS X

less than 1 minute read

Hibernate documentation system uses po2xml and xml2pot to build translations. Unfortunately, Homebrew does not have a formula for it and I don’t think I have...

Unable to update git from homebrew

2 minute read

I have had problems on one machine to upgrade Git from Homebrew. Let me first tell you how to fix the problem and then what homebrew is about. The problem ...

I succumbed to the Cult of vi

5 minute read

I think I am seriously regressing as I grow older. I mentioned in the past moving from the popular, dynamic and UI based blog system Wordpress to the Ruby b...

Instacast - Podcast App for iOS

1 minute read

Executive summary: I went for Instacast and so far I’m happy about it. In its grandiose lack of thinking, Apple has decided that when syncing an iOS wit...

Migrating a Wordpress blog to Awestruct

3 minute read

As I said earlier, I moved my blog from a Wordpress instance to Awestruct, a framework for creating static HTML sites and blogs. The process is roughly made...

Flash Gordon et le permis à points

2 minute read

C’est l’histoire de Flash Gordon qui allait tranquillement chez des amis et qui rencontre un radar fixe : clic-clac Kodak, 1 point et 68 €, circuler, y a rie...

Pro tip on git rebase -i

less than 1 minute read

Here is a small tip to improve your efficiency when using dynamic rebasing in Git. I do my work on topic branches that are forked of master. Before I push m...

Dog vs Cat diary

2 minute read

This is not new by any means but I recently saw this joke. As a recent dog owner I must admit I found it too true to not laugh. Excerpts from a dog’s diary ...

Bash script to expand file templates

1 minute read

I am working on pushing all my “dotfiles” into a Git repo. Some contains passwords or other private data. It took me longer than expected to write an expande...

What design philosophy for your projects?

1 minute read

We had a hotted debate recently in the Hibernate Validator team on a given feature. As a result, we started to write down our design philosophy for the libra...

Feedback on Twitter Bootstrap

2 minute read

Everyone and his dog is in love with Twitter Bootstrap, so I figured I would give it a try and build my website with it. What is Twitter Bootstrap Twitter ...

The perfect storm creates new website and blog

1 minute read

I have been fed up with Wordpress for a while now. Having to upgrade the core plus an average of 4 plugins every time I went to blog was too much. And I am ...

Customize titles of your terminal window

less than 1 minute read

If you are like me, you use many many tabs in your command line terminal. By the way, iTerm2 is a very nice improvement over the vanilla OS X Terminal app. ...

In search for a 2560x1600 display

2 minute read

I have been using a Samsung SyncMaster 305T+ 30" monitor for 4.5 years now and have been very very happy with the screen real estate. Yes two monitors are ni...

Back to Top ↑

2011

OpenWorldForum et OSDC à Paris

less than 1 minute read

If you are in Paris Sept 22th-24th, don't miss the OpenWorldForum and the Open Source Developer Conference. This is one of the too few big events in Paris ar...

How to install an Apple Keynote theme

less than 1 minute read

It is surprisingly hard to find on da internet how to install an Apple Keynote theme (and make it work). Follow this procedure: retrieve the .kth file (t...

Headset worth using: Klipsch Image S4i

1 minute read

I'm a big headset consumer. The average lifespan is around 3 months regardless of the price I pour into it. The way I wear them out is simple: I leave my iPh...

Awestruct: building dynamic static web sites

2 minute read

I've been wanting to update my personal site for a while as it was done in iWeb and Apple is basically killing the product. Through discussions at Red Hat, I...

Back to Top ↑

2010

Mac OS X and IntelliJ crashes

less than 1 minute read

I've struggled in the past several weeks with repeated crashes from IntelliJ IDEA on Mac OS X. I suspect it started right after the upgrade to 1.6.5 and the ...

Autumn Photo in Bruges

less than 1 minute read

I've spent my Sunday working on the backlog of my pictures. I'm far from done but this one really stroke me. I took the picture last month in Bruges, Belgiu...

To Tor or à Tort

1 minute read

Last night, I read some articles about Tor. Tor is an anonymous network that redirects your communications securely and anonymously across the Tor network be...

IntelliJ's Live Template

less than 1 minute read

If you remember, I like to write my getters this way (long story here) public String getName() { return this.name; } public void setName(String name) { this...

"No meeting" always beats "Meeting"

1 minute read

I was chatting with a colleague on a feature that is loooooooong overdue and proposed to kill a meeting and use the time saved to write the damn thing. He r...

Getter / Setter generation in Java

less than 1 minute read

Eclipse or IntelliJ typically generate getters and setters this way: public class Month { private String name; public String getName() { r...

Podcast part I: recording

4 minute read

I have been producing podcasts for almost a year now, primarily at Les Cast Codeurs (a French podcast on Java) but also helped a bit on JBoss Community Asylu...

JSF Days 2010 Tomorrow and Wednesday

less than 1 minute read

If the gods of French and German strikes allow me, I will be speaking at the JSF Days conference organized by Irian. I will first talk about Hibernate Searc...

Migrating from Blogger (esp FTP) to Wordpress

2 minute read

I am one of the "few" that have been let down by Blogger. They no longer support FTP export which makes it a no go for me. I've decided to move over to a se...

Le ParisJUG deux ans après

less than 1 minute read

For people who either don't speak French or are not in Paris tomorrow, skip this post, it's useless to you :) Le ParisJUG a maintenant deux ans. Difficile d...

Back to Top ↑

2009

Hit the road Jack

1 minute read

Now that I am done with my what took a lot of my time recently, I will be on the road for pretty much the whole month of november all over Europe to spread t...

Lies, damned lies, and statistics: EE edition

2 minute read

I came across some figures regarding downloads of Glassfish and JBoss AS that really puzzled me. Basically Glassfish was downloaded 700.000 times a month (en...

Having problems with Adium and Yahoo IM?

less than 1 minute read

Yahoo has changed its login protocol, breaking a number of third party IM clients including Adium. The Adium team has released 1.3.5.rc1 which solves the iss...

Java generics end of mystery

1 minute read

Remember my puzzlement in front of http://blog.emmanuelbernard.com/2009/04/java-generics-mystery.html? I usually try to make sense of the unknown type by l...

Java generics mystery

less than 1 minute read

Here is a puzzle for Generics gurus. Can somebody explain why Set<Address> addresses = new HashSet<Address>();Set<?> things = addresses; c...

Oracle is buying Sun: best quotes of the day

less than 1 minute read

Alex Miller: "Next version of Java will be Java SE 7.0.0.0.17832" Emmanuel Bernard: "The day an Oracle swallows the Sun and in front the Business Machine. No...

Les Cast Codeurs Podcast is born

less than 1 minute read

I have just started a new podcast with a few French open source activists. All about Java, all in French. If you know French, read on ; otherwise, well... le...

Podcast on Bean Validation lastest PFD

less than 1 minute read

I have recently been interviewed by Kenneth Rimple for the Chariot TechCast. In this podcast, we speak to JBoss's Emmanuel Bernard on the future of validat...

Go us

2 minute read

I am usually not the kind of person that likes patting one another on the back. I am always prompt to point out what's left to be done rather that what has b...

How to install Git and git-svn on Mac OS X

less than 1 minute read

It's hard to find good Google links for installing git-svn on Mac OS X. Here is my piece. Install port: download it at http://darwinports.com and run the i...

Back to Top ↑

2008

Answering questions at JavaRanch + free books

less than 1 minute read

I am doing a session on Hibernate Search all this week at JavaRanch. Manning will give away free books of Hibernate Search in Action for the occasion. If you...

Hibernate Search 3.1 RefCard

less than 1 minute read

DZone has a nice Hibernate Search 3.1 6-pages ref card. It is packed with: The list of annotations and their descriptions Hibernate Search's main APIs Luce...

Book review and NHibernate Search

less than 1 minute read

Ayende, one of the active bees behind the NHibernate portfolio, has a nice review of Hibernate Search in Action on his blog. By the way, Ayende has ported Hi...

JarInspector on Mac OS X

less than 1 minute read

There is a tiny little utility that let's you inspect JAR/WAR/EAR files on the Mac OS platform. The software is available here. Install it. To open a JAR, si...

Breaking news: Apple Inc acquires Twitter…

less than 1 minute read

... and uses it as their iTunes Store infrastructure. Now it's broke! I updated my iPhone firmware this morning *as requested by Apple* and the process is hu...

Two third of Hibernate Search in Action out!

1 minute read

We have just pushed another set of chapters for Hibernate Search in Action and reached the symbolic limit of 2/3. Yoohoo! We have also enhanced some of the e...

JSR 303 interviews

less than 1 minute read

I have been talking, writing, preaching Bean Validation in the past six months.A few interesting links came up recently:The list of blog entries I wrote. Pro...

TimeMachine backs up too much?

less than 1 minute read

I just discovered the reason why TimeMachine was backing up so much data. I forgot to exclude my Maven and Ivy repositories :o)Here is a good tip to discover...

Why would you pay for JBoss products?

1 minute read

Andy posted some of the reasons why you would want to use the JBoss subscription based platforms rather than the .org projects. During this exercise, he hint...

Productivity tools

2 minute read

With my regular job(s), the Hibernate Search book and a life going on at the same time, I had to find ways to boost my productivity.Here is a list of some to...

Mac OS X Leopard and internet downloads

1 minute read

If Leopard asks you if "you are sure you want to open this application which was downloaded from the web" every single time, read further.I installed Mac OS ...

Philly's search

less than 1 minute read

I will be at the Philadelphia's Emerging Technologies for the Enterprise conference speaking about Hibernate Search on March 27th (Thursday).The conference h...

Lucene users (2.3): migrate to Lucene 2.3.1

less than 1 minute read

In some specific cases, Lucene 2.3.0 can corrupt your index. It happens in very specific cases:you use autoCommit=false on IndexWriteror multiple ...

Hibernate Search in Action book

less than 1 minute read

I am very please to announce that a book on Hibernate Search is on its way. John Griffin and I are co-authoring Hibernate Search in Action from Manning.The g...

SpringSource's strategy

5 minute read

It has been interesting to follow the recent communications made by Rod Johnson as you can transparently read SpringSource's strategy. I wanted to blog about...

Paris JUG

less than 1 minute read

For the fellows based in Paris or nearby, a new Java User Group has been formed. I expect lots of good content from this user group thanks to some cross-poll...

Back to Top ↑

2007

Candid 10,000 feet thoughts about Android

1 minute read

Android is the new mobile platform developed by Google. They released the SDK yesterday. Basically a Linux kernel, a mobile optimized virtual machine running...

Welcome to G2One

less than 1 minute read

Yesterday was the official public birth of G2One, a new company dedicated to Groovy and Grails training, consulting and support. I am happy to see Guillaume ...

Release Candidate for Hibernate Search 3.0.0

less than 1 minute read

Release Candidate for Hibernate Search 3.0.0Hibernate Search 3.0.0.CR1 is now out. This release is mainly the last bits of new features and polishing before ...

Podcast about Hibernate Shards

less than 1 minute read

Max Ross and Maulik Shah from the Hibernate Shards team at Google got interviewed by the Google Developer Podcast.It's a nice and easy access 30 mins introdu...

Innovation in the Log space, yawn…

2 minute read

Steve and I had a discussion yesterday about loggers. I know what you're thinking: hasn't log been a solved problem for years now? Plus it's boring ;)That's ...

Hibernate at Jazoon'07

less than 1 minute read

I will be at Jazoon (Zurich) to talk about Hibernate Search on Tuesday. I'll hang around Monday and Tuesday, so feel free to pass by the JBoss booth for a ch...

Got a MacBook (Pro), better consider this upgrade

less than 1 minute read

Last night my battery and my MacBook Pro decided not to talk to each other anymore. The battery was full but as soon as I unplugged the AC, the laptop shut d...

Hibernate Search freshly baked features

1 minute read

I had to release Hibernate Search Beta3 early after we discovered a fairly severe bug in Beta2. But I had time to inject some new features. After those intro...

From a Bug blooms a thousand Features

less than 1 minute read

When a severe bug hits a product, you have to fix and release quickly (at least I feel I have to). But, especially in the beta phase, it's fairly humiliating...

Hibernate Search and JSR-303 at JavaOne

less than 1 minute read

I will be presenting Hibernate Search at JavaOne.I will be demoing a live migration of the JBoss Seam DVD Store application from a classic SQL based search e...

Hibernate Search talk at JAX '07

less than 1 minute read

One feature request for Hibernate Search has been surprisingly pretty popular: support for indexed embedded collections and hence correlated queries involvin...

Licensing and trademark

4 minute read

There has been lots of turmoils last week on two not so related subjects. Let's clarify them a bit.LGPL rights and dutyLot's have been said about this licens...

Google Guice: IoC revisited

1 minute read

Google has made public his IoC container. It's all annotations based, no more strings, no more XML.Some key concepts:Avoid string based injection which are e...

Hibernate + Seam team meetup in San Fransisco

less than 1 minute read

This is a pretty rare event, (almost) all the Hibernate + Seam team will be together in San Fransisco end of this week.We organize a meetup on Friday (March ...

SVN: false promises

1 minute read

I've had to do a massive project refactoring. To be more specific, I had to split Hibernate Annotations in several pieces and make Hibernate Validator and Hi...

Groovy Annotations

less than 1 minute read

I have been hammering (nicely) Guillaume for a long time now to get Annotations support in Groovy.Thanks to Alexandru Popescu, this is now an official work i...

To copy a file in …

less than 1 minute read

... Javaprivate static void copyFile(File srcFile, File destFile) throws IOException { FileInputStream is = null; FileOutputStream os = null; tr...

ActiveRecord pattern, so what?

2 minute read

The Active Record pattern has a lot of publicity recently thanks to the Ruby On Rails and Grails wave. A definition could be: an object that encapsulates bot...

Back to Top ↑