license open source apache MIT BSD

On Open Source, licenses and changes

The subject of Open Source and OS licenses has been waxing and waning over time. Recently, it became hot again. In this post, I’d like to do a quick recap to set the stage. Then, I’ll analyze reasons for license changes. The rise of Open Source Before I actually started my career - even I was before even born - software was provided with its source code. The value was in the hardware. Most customers - if not every one of them - modified and adapted the source code to their hardwar

hibernate query cache performance

Digging into Hibernate's Query Cache

I haven’t used Hibernate for a long time, and I haven’t blogged about it for even longer. Recently, I was working on a blog post in the context of my job on setting up an evergreen cache. When I was coding the demo, I faced some issue regarding Hibernate’s Query Cache: it didn’t work as I expected it to. Finally, after some time, I managed to fix the issue. This post aims to dig deeper into Hibernate’s Query Cache in order to help fellow developpers confronted with

architecture system architecture state

The illusion of statelessness

Some libraries, frameworks, components, and architectures either encourage statelessness, or make it a requirement. While statelessness has a lot of benefits, it’s unfortunately rarely possible in the real world. In this post, I’d like to detail this stance of mine a bit. State in Functional Programming Functional Programming is based on a set of principles. Among those principles are pure functions: A pure function is a function that has the following properties: Its return

Project Loom threading parallelism reactive coroutines

On Project Loom, the Reactive model and coroutines

Java 15 will see the first release of Project Loom. I believe this will be a game-changer for the JVM. In this post, I’d like to dive a bit into the reasons that lead me to believe that. First, we need to understand the core problem. Then, I will try to describe how previous technologies try to solve it. Afterwards, we will see the approach taken by Project Loom. Finally, I’ll extrapolate on what effects the latter could have on the ecosystem. Threading We first have to remember

Vaadin productivity GUI

Why I (still) love Vaadin

It’s funny how things come in sequences. Recently, on three separate occasions, I stumbled upon questions asking what people used for front-end technologies. Every time, my answer was Vaadin. Unfortunately, some places, e.g. Twitter, are too limiting to explain my answer in depth. In this blog, I’ve no such limitations. In one sentence, Vaadin is a framework to create GUI using plain Java, or any JVM-based language for that matter. One develop in Java, and the framework takes care o

streams

Changing coding habits to be stream-friendly

Because of the recent worldly travel restrictions, I recently found myself writing more code than usual. After having reviewed it, I noticed I was not very satisfied with it. I believe that comes from the fact that Java is an 'old' language, but it has evolved a lot, especially in its latest versions. While working with a language for a long time, one is bound to get habits, whether good or bad. When the language changes, it takes a conscious effort to change those habits. Yet, this is necessary,

automation workflow architecture

Automating a conference submission workflow: deploying to production

In the first post of this series, we detailed the setup of a software to automate submissions to conferences. In the second one, we configured the integration endpoints. This third post is dedicated to the deployment of the solution to production. To Cloud or not to Cloud? To decide what to do, the first step is to ask oneself whether to host: On-premiseIn the CloudOr even use my own machine First, let’s remove on-premise from the options. It wouldn’t make sense, as I’m th

automation workflow architecture

Automating a conference submission workflow: integrating the solution

In the previous post, I described a poster child for automation: managing the repetitive tasks around a conference submission workflow. I wrote about the setup, and how to use ngrok to redirect webhooks to my computer. This week, I’d like to write about some of the hiccups I encountered along the way. Registering a Trello webhook Most SaaS providers allow to register webhooks through their GUI. This is the case of GitHub for example: it’s located in the Settings  Webhooks men

automation workflow architecture

Automating a conference submission workflow: the setup

Even given the current situation, part of my Developer Advocate job is to talk at (virtual) conferences. Sometimes, organizers invite me. Yet, most of the times, I need to take part in a CfP. With the sheer numbers of conferences I submit to, I need a tool to manage the status of each submission. Since I started, Trello has been my tool of choice. I’ve a dedicated board with several defined columns: backlog, abandoned, submitted, rejected, submitted and done. A conference is a card that I m