Avatar

Organizations

  • Introduction

    In my previous post Workflows everywhere pt. 1 I tried to define workflows and enumerate their functional and non-functional requirements. The post concluded with the realization that in many case we need workflow engines to power our workflows.

    This post defines what a workflow engine is and lists some of the most popular engines by category. Or at least that was the original intention, but there is a twist.

    What Is a Workflow Engine?

    Workflow engines are systems designed to simplify the creation and execution of workflows. They orchestrate the flow of information between the activities that compose the workflow based on predefined logic, conditions and dependencies.

    Created Tue, 29 Jul 2025 00:00:00 +0000
  • Introduction

    Workflows are everywhere. From CI/CD pipelines, all system / data integration to business process automation. It wouldn’t be too far-fetched to say that even modern software build tools like make, maven or npm are in their own way workflow engines.

    There are countless tools out there that help people define, execute and monitor workflows varying from simple no-code tools to complex frameworks that allow developers to define workflows in code, or even architect their software as workflows.

    Created Sun, 06 Jul 2025 00:00:00 +0000
  • Signing Git Commits

    I recently had a discussion with two fellow engineers about secure coding practices. After the discussion I realized that I am neglecting one of the most important practices: signing my commits.

    There are tons of articles on the internet explaining why and how. These are my notes on the subject that I decided to publish.

    These notes actually use literate programming so they are a mix of notes and code you can actually use via org-mode. You can find the actual notes file here.

    security git gpg ssh Created Wed, 02 Apr 2025 00:00:00 +0000
  • Intro

    It seems that everyone is an MCP guru these days.

    I am not.

    In fact, I know almost nothing about it. I am just aware of the concept.

    This post describes the steps I took in order to create an MCP from scratch, resulting in the project created at:

    I also recorded my journey starting from scatch with almost zero knowledge on the topic and using the Quarkus Blog as a guide:

    Created Sat, 22 Mar 2025 00:00:00 +0000
  • Using ChatGPT via gptel to make my Emacs nutrition tracker smarter

    Introduction

    Back in April 2020 I shared how I built a nutrition tracker in Emacs that leveraged org-capture templates and or-ql to record foods, recipes, and meals. At that time, I relied on an org-mode based database and manual updates to keep track of calories, protein, carbs, and fat. While the system worked, maintaining that data was both tedious and error-prone. Each time I needed to insert a new food, I had to do an internet search to find the nutritional information and then manually update my org-mode files.

    emacs chatgpt gptel ai nutrition tracker Created Sun, 16 Feb 2025 09:19:00 +0300
  • Intro

    A couple of weeks ago I came across Roberto Carratalla’s blog post on Function calling on OpenShift AI. At the time I was preparing for RedHat Summit Connect Zurich 2025 where I was meant to run a workshop on Quarkus and Langchain4j with Kyra Goud, Dimitris Andreadis and Codrin Bucur. We had an issue however, related to enabling functions on OpenShift AI.

    Roberto pointed us to the blog post, but I couldn’t spot what I was doing wrong. So, I decided to port the examples in the blog post to Java to make sure that I was comparing apples to apples.

    java quarkus langchain4j ai Created Fri, 14 Feb 2025 00:00:00 +0200
  • Introduction

    This year I decided to put some personal time in learning reactjs. While I enjoy using Javascript for the frontend, I’d say that it’s not the language of choice for me for backend use. I don’t have anything against nodejs, but I prefer use java frameworks, which is the focus of my day job. So, I wanted to combine reactjs with Quarkus. A combination that just became more fun with the Quinoa. Quinoa allows users to use their favorite javascript framework with Quarkus with no additional configuration. On top of that it allows development of both backend and fronted from via the Quarkus dev mode. Last but not least it allows for native compilation that produces a single binary containing both fronted and backend.

    quarkus quinoa keycloak react Created Mon, 17 Oct 2022 14:36:00 +0300
  • Intro

    I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.

    In this post I am going to discuss about flowcharts and more specifically about:

    • why bother with flowcharts
    • tools for creating flowcharts
    • integrating flowcharts with with wiki

    What is a flowchart ?

    A flowchart is a diagram of the sequences of movements or actions of people or things involved in a complex system or activity.

    Created Tue, 11 Jan 2022 23:56:00 +0200
  • Introduction

    Kubernetes is around for almost 7 years now! Ever since the beggining there have been efforts to make consuming / binding to services simpler. And while discovering the actual service is not so much of an issue (if you employ a set of conventions), getting the credentials etc is slightly trickier.

    The Service Catalog has been an effort that promised to simplify provisioning and binding to services, but it seems that it has lost its momentum. The lack of uniformity between providers, the differences in how each service communicated the binding information and the fact that people tend to favor operators for provisioning services made it pretty hard to use in practice.

    java quarkus kubernetes Created Mon, 29 Nov 2021 17:56:00 +0200
  • Introduction

    I was experimenting with some Github Actions that needed to make use of Mandrel so, I thought that I should use sdkman. I run into some issues though and I thought I should document the experience

    The main issue I encountered, is that no matter how I mixed sdkamn into the mix, my steps acted like it was not

    The sdkamn action

    It seems that there is a Github Action for sdkman available, which should allow you to manage any `candidate`. I used it like this:

    sdkman github Created Mon, 20 Sep 2021 09:20:00 +0300
  • Prologue

    These are just some personal notes, that I’ll surely forget unless I write them down.

    The problem

    As I am bloging for over a decade now and most of the time I am sharing code, I needed of a decent way to highlight my code and make it available to users. In the beginning I was using blogger but later on I migrated to wordpress.

    So, I needed a syntax highlighting solution similar to what I was using for blogger.

    wordpress Created Wed, 01 Sep 2021 12:38:00 +0300
  • Intro

    I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.

    In this section I am going to discuss why and how markdown is the ideal format for using for your notes. I am also going to conver how to use markdown in order to maintain wiki/second brain for your Jiu Jitsu notes.

    jiu jitsu Created Mon, 30 Aug 2021 21:48:00 +0300
  • Intro

    I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.

    This post is going to demonstrate how to use mplayer for watching Jiu Jitsu instructionals, in order to:

    • Capture notes
    • Create bookmarks
    • Create animated gifs demonstrating techniques

    This post will cover the fundamentals and will be the base for future posts that will demonstrate integrations with ohter tools.

    Created Mon, 30 Aug 2021 21:48:00 +0300
  • Intro

    I am a 40+ software engineer and recreational Jiu Jitsu practitioner, struggling with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.

    This post is going to demonstrate how to use ffmpeg in order to:

    • Split long insturctions into logical chapters
    • Capture screenshots
    • Create animated gifs demonstrating techniques

    This post will cover the fundamentals and will be the base for future posts that will demonstrate integrations with ohter tools.

    jiu jitsu ffmpeg Created Wed, 11 Aug 2021 23:20:00 +0300
  • Intro

    I am a 40+ software engineer and recreational Jiu Jitsu practitioner, strugglying with vast amount of information related to the sport. I decided to make use of my `computer` skills to aid me in the process of taming this new skill.

    This is the first post in a series of posts, documenting the process.

    Who is this series of posts for ?

    • Jiu Jitsu practitioners with decent computer skills

    jiu jitsu Created Wed, 11 Aug 2021 22:46:00 +0300
  • Intro

    I used to be pretty vocal about things I work on. I used to write blogs, give conference talks or occasionally create short vlog kind of videos. If there is one topic I’ve completely missed, that is sundrio.

    So, what is sundrio ?

    sundrio is a code generation toolkit for generating code that no one wants to write by hand and everyone enjoys using. Besides the code generation frameworks, it also comes with modules (they are actually framework applications) for generating things like:

    sundrio Created Thu, 05 Aug 2021 09:19:00 +0300
  • This is not a blog post. This is my Emacs powered nutrition tracker!

    No, I mean it!

    It’s the one file that contains all the code, templates and data of my tracker, exported in html.

    Keep reading, to see how you can harness the power of emacs and org mode to track your nutrition and even generate cool graphs like:

    For quick demo you can check this short Youtube demo: Nutrition tracking using Emacs.

    emacs org-mode Created Fri, 03 Apr 2020 18:39:00 +0300
  • Prologue

    ap4k is a collection of java annotations and processors for generating, customizing and testing kubernetes and openshift manifests.

    The idea of using java annotations for customizing kubernetes and openshift manifests is not something entirely new. In 2015 fabric8 provided an artifact called `kubernetes-generator` (not to be confused with other generators under the fabric8 umbrella) that allowed developers to hook into the compilation process code that customized these manifests. The way the code was hooked into the compilation processors was via java annotations. The idea was nice but did required developers to write actual code, and thus was soon abandoned as in favor of the fabric8-maven-plugin which was rewritten at the same time by Rolland Huss.

    java kubernetes openshift dekorate Created Mon, 07 Jan 2019 17:39:00 +0200
  • Prologue

    As I am approaching my 40s its becoming harder and harder to get really excited with a new framework. There are of course some exception to this rule and micronaut is such an exception. I won’t get into details here, but in many ways I feel that micronaut is a framework I would like to have written myself…

    So, this post is going to be a first look at micronaut. It will include:

    java micronaut Created Thu, 25 Oct 2018 14:39:00 +0300
  • Prologue

    I recently came across micronaut one of the many java micro-frameworks that gain a lot of interest lately. This particular framework was being installed locally using a tool that I haven’t come accross before: sdkman.

    This will be a really short post about sdkman.

    What is sdkman?

    Even if you only use a computer for playing games, sooner or later you are going to have to manage multiple versions of the same piece of software. Now, if you are into development then its possible that you’ve either have a handcrafted solution or using one provided by the operating system.

    java sdkman Created Tue, 16 Oct 2018 15:57:00 +0300
Next