One of my favorite features in the fish shell is the ability to define abbreviations using the abbr command . Here’s a quick note about abbr , and how to set the cursor to the right position without breaking your flow. The problem # As a Quarkus core team contributor, I frequently need to rebuild extensions and run integration tests. These require some boilerplate Maven commands, such as:…
I previously shared my experience in moving to the Fish shell during the last quarter of 2025. I thought I would share a quick update after a few months going all-in on Fish, and expose the small adjustments that were made. Overall experience # Fish is a truly productive shell. Everything feels smooth and fast. The completions are always spot-on. A good example is when I need to make a git push…
I have been aware of the Fish shell for many years. I think I first tried it around 2009. Fish is a very developer friendly shell, and I have tried it on and off, but I never managed to make the plunge and have it as my daily driver, despite recommendations from people with a good sense of taste like François Lesueur . Fast forward 2025, and I have decided to finally move over to Fish.
Lots of things have been going on in the background, and posting content to my personal website hasn’t been a big priority of the last (few) years! From Jekyll to Hugo # I have migrated this website to Hugo , a powerful and popular static website generator written in Go. Jekyll had been my choice for the last decade, but I grew frustrated with the Ruby dependencies management. At some point…
What is Podman? # Podman is an open source container, pod, and container image management engine. Podman makes it easy to find, run, build, and share containers. – See https://podman.io/features If you are new to Podman then I recommend watching this IBM Technology “What is Podman? How is it Different Than Docker?” video : Let there be pods! # Just like docker , podman can build…
I had been randomly exposed to conventional commits as part of my opensource activities, not really paying attention to this weird form of commit messages. It is only in the recent months that I have taken a serious look at them and realised how they were much better commits . Here is why I think you should pay notice, too! 😃 How much of a commit is a commit? # This is a classic problem in…
The Java Reactive Streams APIs have been part of the JDK since Java 9. It is about time for the modern Java ecosystem to migrate away from the legacy APIs ( org.reactivestreams:reactive-streams Maven coordinates) and adopt the interfaces in java.util.concurrent.Flow . I have recently started migrating the Mutiny and Mutiny Zero libraries and thought these notes would be useful to others as well.…
Go 1.18 recently introduced test fuzzing , so I decided to give it a go (no no, I’m not making a stupid joke). Go has a great tutorial about fuzzing . The idea behind fuzzing is not to replace traditional tests but rather to complement them by (randomly) iterating over input values to the code under test. This is helpful to find bugs and security issues on data whose domain are numbers, byte…
Git is a fantastic tool to manage source code. Switching branches is especially easy (if you are a CVS / Subversion veteran you know what I mean). My workflow to implement features is not very surprising: I spawn a new branch from the main branch, I prepare changes in one or a few commits, I open a pull-request and ask for peer-review, (goto 1) Still, there are times when I need to explore various…
I was recently puzzled by flaky tests in Mutiny . The problem # Once in a while we would get build failures in GitHub Action runners, and of course we could not reproduce them locally. Even repeating a test a thousand times would not reproduce the failure seen in the runners. And of course, there was not much determinism in which test could fail. Still, the logs would hint at tasks being rejected…
I presented today a new publication called Analysing the Performance and Costs of Reactive Programming Libraries in Java at the 8th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (REBLS) (a workshop of Splash 2021 ). This paper was co-authored with Arthur Navarro, Clément Escoffier and Frédéric Le Mouël. Abstract # Modern services running in cloud and edge…
🚨 Update 2024/09/24 : exa is not maintained anymore, use the eza fork instead. Using exa eza as a modern replacement to the venerable Unix ls command # So you know ls (often found as /bin/ls ), the good old Unix command to list files in a directory. I recently came across exa , a modern replacement for ls . It is part of a wave of new command-line tools written in Rust and that bring modernity…
After: an academic sabbatical, and a career bet, and a job change, and a minor health issue and my ever first surgery, and a pandemic that greatly disrupts lives across the world… I am happy to announce that my book Vert.x in Action (Asynchronous and Reactive Java) has been published! 🥳 I have so many people to thank that the best is to read the acknowledgements section of the book 😇
I am happy to announce that my upcoming book Vert.x in Action: Asynchronous and Reactive Applications in Java is now available in early access at Manning! The road towards completion is still long, but the beauty of the Manning Early Access Program is that readers can give their feedback as chapters are being written and edited. By purchasing a book, you do participate in making a book even…
Two years ago I ventured into spending some time in industry. I was delegated by INSA Lyon to work with Red Hat on the Eclipse Vert.x project. What had to happen happened: I loved the experience, enjoyed working with the people here, started interesting work, and after 2 years it became just too soon to end the journey. I always wanted to work at the frontier between industry and academia, and Red…
It seems like the whole Java ecosystem is going mad these days with GraalVM . Every library and framework wants to proudly work on GraalVM, making GraalVM a new silver bullet for modern Java applications. I expect the GraalVM crazyness to follow the typical hype cycle, and soon we will hear of disillusions and people will actually understand what GraalVM is — and more importantly — what GraalVM is…
I am very happy to announce that I am joining the Vert.x team at Red Hat starting next Monday! I will work part-time as a delegated consultant to Red Hat thanks to an agreement with INSA-Lyon where I will continue my academic projects and duties. After a few years in Academia I felt the need to get some fresh “hands-on” industry experience and step out of my comfort zone. Eclipse Vert.x is a…
I am in favor of using contributor license agreements (CLA) for opensource projects that are expected to be developed in the long run, especially when you develop them as part of your professional activities. That being said, using a CLA is not always a practical option as it adds a bit of bureaucracy. Indeed, you will need to adapt a CLA like the one from the Apache Software Foundation , and you…
Update 2014/04/29: for the record Boon is the new JSON implementation for Groovy. groovy in the benchmarks actually refers to the old implementation. Rick Hightower recently published a JSON JVM libraries benchmark where his project Boon was the clear winner. For some reason I ended up looking at Andrey Bloschetsov’s JSON benchmarks . I found a few mistakes in the way the benchmark was…
The other day I stumbled upon a retweet on the anger of Pierre Joye against contributor license agreements (CLAs): @github you should put a red button on any repo requiring a CLA to contribute so we don't even bother trying to contribute. — PierreJoye (@PierreJoye) August 10, 2013 It is not the first time that I saw complaints or suspicion against CLAs. For as much as I hate all forms of…
So… I started writing this while in the train to Lyon going back from the Devoxx France 2013 conference held in Paris. The fact that this note got eventually published on April 1st is of course pure coincidence . What a week it has been! As you probably know by now, I demoed and released my latest creation: the Golo programming language . Before this release there are many months of work…
The release of the Mozilla Public License Version 2.0 probably flew under the radar when it happened in January 2012 . In fairness, the initial Mozilla Public License (MPL) was admittedly not much used outside of the Mozilla world. Mozilla-branded software source code have traditionally been released under a tri-license comprising the GNU GPL , the GNU LGPL and the MPL itself. Some Mozilla…
I did a joint PhD (2004 – 2008) between Université Blaise Pascal (Clermont-Ferrand, France) and The University of New South Wales (Sydney, Australia), meaning that I obtained a PhD from each University. My advisors where Pr. Farouk Toumani and Pr. Boualem Benatallah. I obtained my French PhD ( “Doctorat en Informatique de l’Université Blaise Pascal” ) on July 1st 2008 with…
All my publications are being listed here. My PhD thesis is an exception as it was worth its own page 🙂 Since it is hard keeping track of everything that was published, you may also find my publications in public repositories: me on DBLP me on Google Scholar me on HAL my ORCID Books # Julien Ponge. Vert.x in Action. Asynchronous and Reactive Java . Manning Publications. October 2020 ISBN…
I am a Director and Senior Principal Software Engineer (Red Hat) at IBM , based in Lyon, France . As an individual contributor , I focus on reactive systems and Java-based cloud-native technologies , contributing primarily to Quarkus , Mutiny , and Eclipse Vert.x . I am the author of Vert.x in Action – Asynchronous and Reactive Java , published by Manning: Before joining IBM through Red Hat, I was…