RSSAmplifier

Blog

Home on Julien Ponge

Recent content in Home on Julien Ponge

julien.ponge.orgRSS feed ↗25 posts

Latest posts

Fish abbr Tip: Put the Cursor Exactly Where You Need It

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:…

Moving to the Fish Shell: a Few Months Later

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…

Moving from Zsh to the Fish Shell is Easy

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.

Updates October 2025

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…

The Pod in Podman

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…

The Power of Conventional Commits

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…

Notes on Migrating From the Legacy Reactive Streams APIs to Java Flow

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

Playing with Test Fuzzing in Go

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…

A Workflow for Experiments in Git: Scratchpad Branches

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…

Not All Java Single Threaded Executors Are Created Equal: a Java Finalizer Horror Story

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…

Publication: Analysing the Performance and Costs of Reactive Programming Libraries in Java

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…

Using Exa (Eza) as a Modern Replacement to the Venerable Unix "ls" Command

🚨 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…

Vertx in Action Has Been Published!

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 😇

Vertx in Action MEAP

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…

Hello Red Hat

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…

The GraalVM Frenzy

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…

Taking a Part Time Industry Leave to Work on Vert.x at Red Hat

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…

Developer Certificate of Origin Versus Contributor License Agreements

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…

Revisiting a (JSON) Benchmark

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…

In Defense of Contributor License Agreements

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…

Golo Story

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 Mozilla Public License Version 2.0: A Good Middle Ground?

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…

PhD Thesis

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…

Publications

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…

Who am I?

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…