{"@attributes":{"version":"2.0"},"channel":{"title":"Home on Julien Ponge","link":"https:\/\/julien.ponge.org\/","description":"Recent content in Home on Julien Ponge","generator":"Hugo","language":"en-us","lastBuildDate":"Fri, 31 Oct 2025 10:31:01 +0100","item":[{"title":"Moving from Zsh to the Fish Shell is Easy","link":"https:\/\/julien.ponge.org\/posts\/moving-from-zsh-to-the-fish-shell-is-easy\/","pubDate":"Fri, 31 Oct 2025 10:31:01 +0100","guid":"https:\/\/julien.ponge.org\/posts\/moving-from-zsh-to-the-fish-shell-is-easy\/","description":"<p>I have been aware of the <a href=\"https:\/\/fishshell.com\/\">Fish shell<\/a> for many years.\nI think I first tried it around 2009.<\/p>\n<p>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 <a href=\"https:\/\/flesueur.tuxlab.net\/index.php?lang=en\">Fran\u00e7ois Lesueur<\/a>.<\/p>\n<p>Fast forward 2025, and I have decided to <em>finally<\/em> move over to Fish.<\/p>"},{"title":"Updates October 2025","link":"https:\/\/julien.ponge.org\/posts\/updates-october-2025\/","pubDate":"Tue, 14 Oct 2025 14:19:24 +0200","guid":"https:\/\/julien.ponge.org\/posts\/updates-october-2025\/","description":"<p>Lots of things have been going on in the background, and posting content to my personal website hasn&rsquo;t been a big priority of the last (few) years!<\/p>\n<h2 class=\"heading\" id=\"from-jekyll-to-hugo\">\n From Jekyll to Hugo\n <a class=\"anchor\" href=\"#from-jekyll-to-hugo\">#<\/a>\n<\/h2>\n<p>I have migrated this website to <a href=\"https:\/\/gohugo.io\/\">Hugo<\/a>, a powerful and popular static website generator written in Go.<\/p>\n<p><a href=\"https:\/\/jekyllrb.com\/\">Jekyll<\/a> had been my choice for the last decade, but I grew frustrated with the Ruby dependencies management.\nAt some point I had to stick to old Ruby and gems versions for the setup to work, so I eventually gave up and migrated the website to Hugo.<\/p>"},{"title":"The Pod in Podman","link":"https:\/\/julien.ponge.org\/posts\/the-pod-in-podman\/","pubDate":"Wed, 03 Jul 2024 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/the-pod-in-podman\/","description":"<h2 class=\"heading\" id=\"what-is-podman\">\n What is Podman?\n <a class=\"anchor\" href=\"#what-is-podman\">#<\/a>\n<\/h2>\n<blockquote>\n<p>Podman is an open source container, pod, and container image management engine. Podman makes it easy to find, run, build, and share containers.<\/p>\n<p>&ndash; See <a href=\"https:\/\/podman.io\/features\">https:\/\/podman.io\/features<\/a><\/p><\/blockquote>\n<p>If you are new to Podman then I recommend watching this <a href=\"https:\/\/www.youtube.com\/watch?v=5WML8gX2F1c\">IBM Technology &ldquo;What is Podman? How is it Different Than Docker?&rdquo; video<\/a>:<\/p>\n<div style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;\">\n <iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen\" loading=\"eager\" referrerpolicy=\"strict-origin-when-cross-origin\" src=\"https:\/\/www.youtube.com\/embed\/5WML8gX2F1c?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;\" title=\"YouTube video\"><\/iframe>\n <\/div>\n\n<h2 class=\"heading\" id=\"let-there-be-pods\">\n Let there be pods!\n <a class=\"anchor\" href=\"#let-there-be-pods\">#<\/a>\n<\/h2>\n<p>Just like <code>docker<\/code>, <code>podman<\/code> can build and run containers that live next to the other.<\/p>"},{"title":"The Power of Conventional Commits","link":"https:\/\/julien.ponge.org\/posts\/the-power-of-conventional-commits\/","pubDate":"Tue, 30 Jan 2024 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/the-power-of-conventional-commits\/","description":"<p>I had been randomly exposed to <a href=\"https:\/\/www.conventionalcommits.org\/\">conventional commits<\/a> as part of my opensource activities, not really paying attention to this <em>weird<\/em> form of commit messages.\nIt is only in the recent months that I have taken a serious look at them and realised how they were <strong>much better commits<\/strong>.<\/p>\n<p>Here is why I think you should pay notice, too! \ud83d\ude03<\/p>\n<h2 class=\"heading\" id=\"how-much-of-a-commit-is-a-commit\">\n How much of a commit is a commit?\n <a class=\"anchor\" href=\"#how-much-of-a-commit-is-a-commit\">#<\/a>\n<\/h2>\n<p>This is a classic problem in software engineering: you create a branch, you make some changes, and then you create a Git commit.\nIn theory your commit is self-contained: it is a documentation update, or it is a bug fix, or it is a new feature, etc.<\/p>"},{"title":"Notes on Migrating From the Legacy Reactive Streams APIs to Java Flow","link":"https:\/\/julien.ponge.org\/posts\/notes-on-migrating-from-the-legacy-reactive-streams-apis-to-java-flow\/","pubDate":"Tue, 30 Aug 2022 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/notes-on-migrating-from-the-legacy-reactive-streams-apis-to-java-flow\/","description":"<p>The Java <a href=\"https:\/\/www.reactive-streams.org\/\">Reactive Streams<\/a> APIs have been part of the JDK since Java 9.<\/p>\n<p>It is about time for the modern Java ecosystem to migrate away from the legacy APIs (<code>org.reactivestreams:reactive-streams<\/code> Maven coordinates) and adopt the interfaces in <a href=\"https:\/\/docs.oracle.com\/javase\/9\/docs\/api\/java\/util\/concurrent\/Flow.html\"><code>java.util.concurrent.Flow<\/code><\/a>.<\/p>\n<p>I have recently started migrating the <a href=\"https:\/\/smallrye.io\/smallrye-mutiny\/\">Mutiny<\/a> and <a href=\"https:\/\/smallrye.io\/smallrye-mutiny-zero\/\">Mutiny Zero<\/a> libraries and thought these notes would be useful to others as well.<\/p>\n<h2 class=\"heading\" id=\"migration-of-isomorphic-apis\">\n Migration of isomorphic APIs\n <a class=\"anchor\" href=\"#migration-of-isomorphic-apis\">#<\/a>\n<\/h2>\n<p>The good news is that the legacy and the <code>Flow<\/code> APIs are isomorphic.\nFor instance <code>org.reactivestreams.Publisher&lt;T&gt;<\/code> becomes <code>java.util.concurrent.Flow.Publisher&lt;T&gt;<\/code>.<\/p>"},{"title":"Playing with Test Fuzzing in Go","link":"https:\/\/julien.ponge.org\/posts\/playing-with-test-fuzzing-in-go\/","pubDate":"Wed, 23 Mar 2022 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/playing-with-test-fuzzing-in-go\/","description":"<p>Go 1.18 recently introduced <em>test fuzzing<\/em>, so I decided to give it a go (no no, I&rsquo;m not making a stupid joke).<\/p>\n<p><a href=\"https:\/\/go.dev\/doc\/tutorial\/fuzz\">Go has a great tutorial about fuzzing<\/a>.\nThe 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.\nThis is helpful to find bugs and security issues on data whose domain are numbers, byte arrays or strings.<\/p>"},{"title":"A Workflow for Experiments in Git: Scratchpad Branches","link":"https:\/\/julien.ponge.org\/posts\/a-workflow-for-experiments-in-git-scratchpad-branches\/","pubDate":"Wed, 09 Mar 2022 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/a-workflow-for-experiments-in-git-scratchpad-branches\/","description":"<p>Git is a fantastic tool to manage source code.\nSwitching branches is especially easy (if you are a CVS \/ Subversion veteran you know what I mean).<\/p>\n<p>My workflow to implement features is not very surprising:<\/p>\n<ol>\n<li>I spawn a new branch from the <code>main<\/code> branch,<\/li>\n<li>I prepare changes in one or a few commits,<\/li>\n<li>I open a pull-request and ask for peer-review,<\/li>\n<li>(goto 1)<\/li>\n<\/ol>\n<p>Still, there are times when I need to explore various designs, and doing so takes several days or even weeks.\nIn such cases I would use a mix of:<\/p>"},{"title":"Not All Java Single Threaded Executors Are Created Equal: a Java Finalizer Horror Story","link":"https:\/\/julien.ponge.org\/posts\/not-all-java-single-threaded-executors-are-created-equal-a-java-finalizer-horror-story\/","pubDate":"Thu, 02 Dec 2021 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/not-all-java-single-threaded-executors-are-created-equal-a-java-finalizer-horror-story\/","description":"<p>I was recently puzzled by flaky tests in <a href=\"https:\/\/smallrye.io\/smallrye-mutiny\/\">Mutiny<\/a>.<\/p>\n<h2 class=\"heading\" id=\"the-problem\">\n The problem\n <a class=\"anchor\" href=\"#the-problem\">#<\/a>\n<\/h2>\n<p>Once in a while we would get build failures in <em>GitHub Action<\/em> runners, and of course we could not reproduce them locally.\nEven repeating a test a thousand times would not reproduce the failure seen in the runners.\nAnd of course, there was not much determinism in which test could fail.<\/p>\n<p>Still, the logs would hint at tasks being rejected by terminated Java executors, so I started digging.\nI went through the usage of executors in tests, but aside from a few trivial fixes, all executors were being used as they should be, as in:<\/p>"},{"title":"Publication: Analysing the Performance and Costs of Reactive Programming Libraries in Java","link":"https:\/\/julien.ponge.org\/posts\/publication-performance-and-costs-of-reactive-programming-libraries-in-java\/","pubDate":"Mon, 18 Oct 2021 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/publication-performance-and-costs-of-reactive-programming-libraries-in-java\/","description":"<p>I presented today a new publication called <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3486605.3486788\">Analysing the Performance and Costs of Reactive Programming Libraries in Java<\/a> at the <a href=\"https:\/\/2021.splashcon.org\/home\/rebls-2021\">8th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (REBLS)<\/a> (a workshop of <a href=\"https:\/\/2021.splashcon.org\/\">Splash 2021<\/a>).<\/p>\n<p>This paper was co-authored with Arthur Navarro, Cl\u00e9ment Escoffier and Fr\u00e9d\u00e9ric Le Mou\u00ebl.<\/p>\n<h2 class=\"heading\" id=\"abstract\">\n Abstract\n <a class=\"anchor\" href=\"#abstract\">#<\/a>\n<\/h2>\n<blockquote>\n<p>Modern services running in cloud and edge environments need to be resource-efficient to increase deployment density and reduce operating costs. Asynchronous I\/O combined with asynchronous programming provides a solid technical foundation to reach these goals. Reactive programming and reactive streams are gaining traction in the Java ecosystem. However, reactive streams implementations tend to be complex to work with and maintain. This paper discusses the performance of the three major reactive streams compliant libraries used in Java applications: RxJava, Project Reactor, and SmallRye Mutiny. As we will show, advanced optimization techniques such as operator fusion do not yield better performance on realistic I\/O-bound workloads, and they significantly increase development and maintenance costs.<\/p>"},{"title":"Using Exa (Eza) as a Modern Replacement to the Venerable Unix \"ls\" Command","link":"https:\/\/julien.ponge.org\/posts\/using-exa-as-a-modern-replacement-to-the-venerable-unix-ls-command\/","pubDate":"Sun, 22 Nov 2020 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/using-exa-as-a-modern-replacement-to-the-venerable-unix-ls-command\/","description":"<p><strong>\ud83d\udea8 Update 2024\/09\/24<\/strong>: <code>exa<\/code> is not maintained anymore, use the <a href=\"https:\/\/github.com\/eza-community\/eza\">eza<\/a> fork instead.<\/p>\n<h2 class=\"heading\" id=\"using-exa-eza-as-a-modern-replacement-to-the-venerable-unix-ls-command\">\n Using <del>exa<\/del> eza as a modern replacement to the venerable Unix ls command\n <a class=\"anchor\" href=\"#using-exa-eza-as-a-modern-replacement-to-the-venerable-unix-ls-command\">#<\/a>\n<\/h2>\n<p>So you know <code>ls<\/code> (often found as <code>\/bin\/ls<\/code>), the good old Unix command to list files in a directory.<\/p>\n<p>I recently came across <a href=\"https:\/\/the.exa.website\">exa<\/a>, a modern replacement for <code>ls<\/code>. It is part of a wave of new command-line tools written in <a href=\"https:\/\/www.rust-lang.org\">Rust<\/a> and that bring modernity while staying faithful to the Unix way of writing focused and composable tools.<\/p>"},{"title":"Vertx in Action Has Been Published!","link":"https:\/\/julien.ponge.org\/posts\/vertx-in-action-has-been-published\/","pubDate":"Fri, 30 Oct 2020 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/vertx-in-action-has-been-published\/","description":"<p>After:<\/p>\n<ul>\n<li>an academic sabbatical, and<\/li>\n<li>a career bet, and<\/li>\n<li>a job change, and<\/li>\n<li>a minor health issue and my ever first surgery, and<\/li>\n<li>a pandemic that greatly disrupts lives across the world&hellip;<\/li>\n<\/ul>\n<p>I am happy to announce that my book <strong><a href=\"https:\/\/www.manning.com\/books\/vertx-in-action?a_aid=vertx-in-action&amp;a_bid=22152024\">Vert.x in Action (Asynchronous and Reactive Java)<\/a><\/strong> has been published! \ud83e\udd73<\/p>\n<p><a href=\"https:\/\/www.manning.com\/books\/vertx-in-action?a_aid=vertx-in-action&amp;a_bid=22152024\">\n\n\n\n\n\n\n\n\n\n\n\n<figure class=\"\">\n\n \n \n \n <div class=\"img-container\" style=\"--w: 350; --h: 439;\">\n <img loading=\"lazy\" alt=\"Cover of Vert.x in Action\" src=\"https:\/\/julien.ponge.org\/posts\/vertx-in-action-has-been-published\/vertx-in-action-cover.png\" width=\"350\" height=\"439\">\n <\/div>\n \n \n\n \n<\/figure>\n<\/a><\/p>\n<p>I have so many people to thank that the best is to read the <em>acknowledgements<\/em> section of the book \ud83d\ude07<\/p>"},{"title":"Vertx in Action MEAP","link":"https:\/\/julien.ponge.org\/posts\/vertx-in-action-meap\/","pubDate":"Tue, 23 Oct 2018 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/vertx-in-action-meap\/","description":"<p><a href=\"https:\/\/www.manning.com\/books\/vertx-in-action?a_aid=vertx-in-action&amp;a_bid=22152024\">\n\n\n\n\n\n\n\n\n\n\n\n<figure class=\"\">\n\n \n \n \n <div class=\"img-container\" style=\"--w: 300; --h: 377;\">\n <img loading=\"lazy\" alt=\"Cover of Vert.x in Action\" src=\"https:\/\/julien.ponge.org\/posts\/vertx-in-action-meap\/MEAP-cover.png\" width=\"300\" height=\"377\">\n <\/div>\n \n \n\n \n<\/figure>\n<\/a><\/p>\n<p>I am happy to announce that my upcoming book <a href=\"https:\/\/www.manning.com\/books\/vertx-in-action?a_aid=vertx-in-action&amp;a_bid=22152024\">Vert.x in Action: Asynchronous and Reactive Applications in Java<\/a> is now available in early access at Manning!<\/p>\n<p>The road towards completion is still long, but the beauty of the <em>Manning Early Access Program<\/em> is that readers can give their feedback as chapters are being written and edited.<\/p>\n<p>By purchasing a book, you do participate in making a book even better!<\/p>"},{"title":"Hello Red Hat","link":"https:\/\/julien.ponge.org\/posts\/hello-redhat\/","pubDate":"Mon, 01 Oct 2018 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/hello-redhat\/","description":"<p>Two years ago I ventured into spending some time in industry.\nI was <em>delegated<\/em> by INSA Lyon to work with Red Hat on the Eclipse Vert.x project.<\/p>\n<p>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.<\/p>\n<p>I always wanted to work at the frontier between industry and academia, and Red Hat gave me the chance and the perfect context to do it.<\/p>"},{"title":"The GraalVM Frenzy","link":"https:\/\/julien.ponge.org\/posts\/the-graalvm-frenzy\/","pubDate":"Thu, 06 Sep 2018 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/the-graalvm-frenzy\/","description":"<p>It seems like the whole Java ecosystem is going mad these days with <a href=\"https:\/\/www.graalvm.org\/\">GraalVM<\/a>. Every library and framework wants to proudly work on GraalVM, making GraalVM a new <em>silver bullet<\/em> for modern Java applications.<\/p>\n<p>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 <em>\u2014 and more importantly \u2014<\/em> what GraalVM is not.<\/p>\n<h2 class=\"heading\" id=\"where-does-graalvm-comes-from\">\n Where does Graal(VM) comes from?\n <a class=\"anchor\" href=\"#where-does-graalvm-comes-from\">#<\/a>\n<\/h2>\n<p>Graal is a what happens when you give a group of academic and industry researchers ample time and budget to work on interesting problems.<\/p>"},{"title":"Taking a Part Time Industry Leave to Work on Vert.x at Red Hat","link":"https:\/\/julien.ponge.org\/posts\/taking-a-part-time-industry-leave-to-work-on-vertx-at-redhat\/","pubDate":"Thu, 13 Oct 2016 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/taking-a-part-time-industry-leave-to-work-on-vertx-at-redhat\/","description":"<p>I am very happy to announce that I am joining the Vert.x team at Red Hat starting next Monday!<\/p>\n<p>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.<\/p>\n<p>After a few years in Academia I felt the need to get some fresh \u201chands-on\u201d industry experience and step out of my comfort zone. Eclipse Vert.x is a vibrant project that matches lots of my and my Dynamid research team current interests. It will provide a natural continuity between my academic work and my contributions to Eclipse Vert.x.<\/p>"},{"title":"Developer Certificate of Origin Versus Contributor License Agreements","link":"https:\/\/julien.ponge.org\/posts\/developer-certificate-of-origin-versus-contributor-license-agreements\/","pubDate":"Fri, 11 Mar 2016 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/developer-certificate-of-origin-versus-contributor-license-agreements\/","description":"<p><a href=\"https:\/\/julien.ponge.org\/posts\/in-defense-of-contributor-license-agreements\/\">I am in favor of using <em>contributor license agreements (CLA)<\/em><\/a>\nfor opensource projects that are expected to be developed in the long run, especially when you develop them as part of your professional activities.<\/p>\n<p>That being said, using a CLA is not always a <em>practical<\/em> option as it adds a bit of bureaucracy.\nIndeed, you will need to adapt a CLA <a href=\"https:\/\/www.apache.org\/licenses\/icla.txt\">like the one from the Apache Software Foundation<\/a>, and you will have to make sure that people send it back to you before you can accept any contribution from them.<\/p>"},{"title":"Revisiting a (JSON) Benchmark","link":"https:\/\/julien.ponge.org\/posts\/revisiting-a-json-benchmark\/","pubDate":"Mon, 28 Apr 2014 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/revisiting-a-json-benchmark\/","description":"<blockquote>\n<p><strong>Update 2014\/04\/29:<\/strong> for the record Boon is the new JSON implementation for Groovy.\n<code>groovy<\/code> in the benchmarks actually refers to the old implementation.<\/p><\/blockquote>\n<p>Rick Hightower recently <a href=\"http:\/\/rick-hightower.blogspot.fr\/2014\/04\/groovy-and-boon-provide-fastest-json.html\">published a JSON JVM libraries benchmark<\/a>\nwhere his project <a href=\"https:\/\/github.com\/RichardHightower\/boon\/wiki\">Boon<\/a> was the clear winner.<\/p>\n<p>For some reason I ended up looking at <a href=\"https:\/\/github.com\/bura\/json-benchmarks\">Andrey Bloschetsov&rsquo;s JSON benchmarks<\/a>.\nI found a few mistakes in the way the benchmark was written, and here is how I revisited and fixed it.<\/p>"},{"title":"In Defense of Contributor License Agreements","link":"https:\/\/julien.ponge.org\/posts\/in-defense-of-contributor-license-agreements\/","pubDate":"Tue, 27 Aug 2013 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/in-defense-of-contributor-license-agreements\/","description":"<p>The other day I stumbled upon a retweet on the anger of <a href=\"https:\/\/twitter.com\/PierreJoye\">Pierre Joye<\/a> against contributor license agreements (CLAs):<\/p>\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\"><a href=\"https:\/\/twitter.com\/github?ref_src=twsrc%5Etfw\">@github<\/a> you should put a red button on any repo requiring a CLA to contribute so we don&#39;t even bother trying to contribute.<\/p>&mdash; PierreJoye (@PierreJoye) <a href=\"https:\/\/twitter.com\/PierreJoye\/status\/366067690714038272?ref_src=twsrc%5Etfw\">August 10, 2013<\/a><\/blockquote>\n<script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n\n\n<p>It is not the first time that I saw complaints or suspicion against\nCLAs. For as much as I hate all forms of bureaucracy, I feel that CLAs\nare being mistaken by many fellow open source developers.<\/p>"},{"title":"Golo Story","link":"https:\/\/julien.ponge.org\/posts\/golo-story\/","pubDate":"Mon, 01 Apr 2013 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/golo-story\/","description":"<p>So&hellip; I started writing this while in the train to Lyon going back from the <a href=\"http:\/\/www.devoxx.fr\/\">Devoxx France 2013 conference<\/a> held in Paris.<\/p>\n<p>The fact that this note got eventually published on April 1st is of course <em>pure coincidence<\/em>.<\/p>\n<p>What a week it has been! As you probably know by now, I demoed and released my latest creation: the <a href=\"http:\/\/golo-lang.org\/\">Golo programming language<\/a>.<\/p>\n<p>Before this release there are many months of work behind, and I thought that it could be a good idea to share the story behind Golo with you.<\/p>"},{"title":"The Mozilla Public License Version 2.0: A Good Middle Ground?","link":"https:\/\/julien.ponge.org\/posts\/mozilla-public-license-v2-a-good-middleground\/","pubDate":"Thu, 09 Aug 2012 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/posts\/mozilla-public-license-v2-a-good-middleground\/","description":"<p>The release of the <a href=\"http:\/\/www.mozilla.org\/MPL\/2.0\/\">Mozilla Public License Version 2.0<\/a> probably flew under the radar <a href=\"https:\/\/mpl.mozilla.org\/2012\/01\/03\/announcing-mpl-2-0\/\">when it happened in January 2012<\/a>.<\/p>\n<p>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 <a href=\"http:\/\/www.gnu.org\/copyleft\/gpl.html\">GNU GPL<\/a>, the GNU LGPL and the MPL itself. Some Mozilla extensions and derivatives decided to follow the same path, but the reality is that the MPL never really spread outside of its originating community (<a href=\"http:\/\/www.adobe.com\/products\/eula\/flex\/flex3sdk.html\">Adobe publishing significant parts of Flex under the MPL<\/a> is a rare counter-example). This is in sharp contrast to, say, the Apache License or the Eclipse Public License.<\/p>"},{"title":"PhD Thesis","link":"https:\/\/julien.ponge.org\/phd-thesis\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/phd-thesis\/","description":"<p>I did a joint PhD (2004 &ndash; 2008) between <a href=\"http:\/\/www.univ-bpclermont.fr\/\">Universit\u00e9 Blaise Pascal<\/a> (Clermont-Ferrand, France) and <a href=\"http:\/\/www.unsw.edu.au\/\">The University of New South Wales<\/a> (Sydney, Australia), meaning that I obtained a PhD from each University.<\/p>\n<p>My advisors where Pr. Farouk Toumani and Pr. Boualem Benatallah.<\/p>\n<p>I obtained my French PhD (<em>&ldquo;Doctorat en Informatique de l&rsquo;Universit\u00e9 Blaise Pascal&rdquo;<\/em>) on July 1st 2008 with distinctions (<em>&ldquo;mention tr\u00e8s honorable&rdquo;<\/em>). I defended my PhD thesis in front of:<\/p>\n<ul>\n<li>Pr. Marie-Christine FAUVET (President), Universit\u00e9 Joseph Fourier \/ LIG, Grenoble, France<\/li>\n<li>Pr. Schahram DUSTDAR (Reviewer), Vienna University of Technology, Austria<\/li>\n<li>Pr. Claude GODART (Reviewer), Universit\u00e9 Henry Poincar\u00e9 \/ LORIA, Nancy, France<\/li>\n<li>Pr. Marlon DUMAS (Examiner), University of Tartu, Estonia &amp; Queensland University of Technology, Brisbane, Australia<\/li>\n<li>Pr. Michel SCHNEIDER (Examiner), Universit\u00e9 Blaise Pascal \/ LIMOS, Clermont-Ferrand, France<\/li>\n<li>Pr. Farouk TOUMANI (supervisor), Universit\u00e9 Blaise Pascal \/ LIMOS, Clermont-Ferrand, France<\/li>\n<li>Pr. Boualem BENATALLAH (supervisor), University of New South Wales, Sydney, Australia<\/li>\n<\/ul>\n<p>I obtained my Australian PhD (<em>under cotutelle agreements<\/em>) from the University of New South Wales in December 2008. The manuscript was accepted at the first round, without any modification request from the reviewers.<\/p>"},{"title":"Publications","link":"https:\/\/julien.ponge.org\/publications\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/publications\/","description":"<p>All my publications are being listed here.\n<a href=\"..\/phd-thesis\/\">My PhD thesis<\/a> is an exception as it was worth its own page \ud83d\ude42<\/p>\n<p>Since it is hard keeping track of everything that was published, you may also find my publications in public repositories:<\/p>\n<ul>\n<li><a href=\"https:\/\/dblp.uni-trier.de\/pers\/hd\/p\/Ponge:Julien.html\">me on DBLP<\/a><\/li>\n<li><a href=\"https:\/\/scholar.google.fr\/citations?user=IjVOPEAAAAAJ\">me on Google Scholar<\/a><\/li>\n<li><a href=\"https:\/\/cv.archives-ouvertes.fr\/julien-ponge\">me on HAL<\/a><\/li>\n<li><a href=\"https:\/\/orcid.org\/0000-0003-3452-9183\">my ORCID<\/a><\/li>\n<\/ul>\n<h2 class=\"heading\" id=\"books\">\n Books\n <a class=\"anchor\" href=\"#books\">#<\/a>\n<\/h2>\n<p class=\"front-pictures\">\n <a href=\"https:\/\/www.manning.com\/books\/vertx-in-action\">\n <img src=\".\/vertx-in-action-cover.png\" alt=\"Vert.x in Action book cover\" class=\"book-cover\" \/>\n <\/a>\n<\/p>\n<p>Julien Ponge. <strong>Vert.x in Action. Asynchronous and Reactive Java<\/strong>. Manning Publications. October 2020 ISBN 9781617295621<\/p>"},{"title":"Who am I?","link":"https:\/\/julien.ponge.org\/about\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/julien.ponge.org\/about\/","description":"<img src=\".\/me.png\" alt=\"Julien Ponge\" class=\"profile-pic\">\n<p>I am a <strong>Director and Senior Principal Software Engineer (Red Hat)<\/strong> at <a href=\"https:\/\/www.ibm.com\/\">IBM<\/a>, based in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lyon\">Lyon, France<\/a>.<\/p>\n<p>As an <em>individual contributor<\/em>, I focus on <strong>reactive systems and Java-based cloud-native technologies<\/strong>, contributing primarily to <a href=\"https:\/\/quarkus.io\">Quarkus<\/a>, <a href=\"https:\/\/smallrye.io\/smallrye-mutiny\/\">Mutiny<\/a>, and <a href=\"https:\/\/vertx.io\">Eclipse Vert.x<\/a>.<\/p>\n<p>I am the author of <a href=\"https:\/\/www.manning.com\/books\/vertx-in-action\"><em>Vert.x in Action \u2013 Asynchronous and Reactive Java<\/em><\/a>, published by Manning:<\/p>\n<a href=\"https:\/\/www.manning.com\/books\/vertx-in-action\">\n <img src=\".\/vertx-in-action-cover-full.png\" alt=\"Vert.x in Action book cover\" class=\"book-cover\" \/>\n<\/a>\n<p>Before joining IBM through Red Hat, I was an <strong>Associate Professor of Computer Science and Engineering<\/strong> at <a href=\"http:\/\/www.insa-lyon.fr\/\">INSA Lyon<\/a> and the <a href=\"http:\/\/www.citi-lab.fr\/\">CITI Laboratory<\/a>, where I held several teaching, research, and leadership roles.<\/p>"}]}}