
July 28, 2021
A few years ago, I wrote a blog post on managing CORS headers with Negroni.
Lately, I’ve created a new API server that needed to be accessible from the browser, but this time I used a different technology, more precisely gRPC-Gateway.
Few months after I wrote that blog post, I stopped writing new REST services by hand.
I did not rewrite all the services that used the old paradigm just because they needed a fix or a new feature, but for all new services, I moved to gRPC with gRPC-Gateway.
Read More 
June 28, 2021
Few months ago I posted a library for sensible int scale for Gonum Plot.
There is a similar package I’ve developed to handle timescales.
The integer one, being based on a recursive function, works with any number scale.
Differently, this one will only work well with a timescale between 2 days and a couple of years.
Extending it is not hard since it’s enough to add additional case
statements in the switch
, but I’ve not found use-cases for different timeframes so far.
If you add additional options, please commit them back!
Read More 
May 31, 2021
Three years passed from the moment the GDPR become binding law in the European Union.
On the one hand, I’m happy that it has already been three years, but on the other hand, I’m impatient to see GDPR fully applied.
Cookies
Cookies are always a hot theme when we talk about GDPR.
I still see websites handing out cookies (first and third parties ones) without a cookie banner or to users who have not pressed the “accept” button on the cookie banner.
Also, speaking about cookie banners, the majority are not compliant since they often make it hard to refuse cookies or pre-select cookie acceptance.
This situation is unfortunate, but we see some movement on this (like the noyb initiative).
If those initiatives continue, as I hope, next year, the cookie situation will be much better!
Read More 
April 29, 2021
For many years now, I’ve been using immutable versions of Fedora.
I remember that I started to play with immutable Fedora back in 2015 when Fedora Atomic was new.
I liked the idea since the first time I’ve read about it, but in the beginning, I did not spend too much time making it work on my setup because it seemed a little bit too complex.
At DevConf.cz 2016, I met Patrick Uiterwijk, who was running his spin of Fedora Atomic.
We had a long chat on it, and he explained to me his workflow.
Soon after, I started to use an immutable version of Fedora on my personal laptop, but I was not daring to use it on my work laptop.
When I left Red Hat at the end of 2017, my personal laptop became my only laptop for a little while, and the immutable Fedora became my only OS.
Since then, I’ve been using only immutable Fedora on my computers.
In June 2020, I took the time to clean up my build process and files, and I moved all the needed bits to a new git repo that is now openly available and can be found here.
Read More 
March 31, 2021
Late last year, I’ve read that a new Ansible-related exam was available: the Red Hat Certified Specialist in Services Management and Automation exam (EX358).
I’ve taken and passed this exam at the end of January.
It was the first time I did a Red Hat exam that was brand new and without having the possibility of finding online some opinions around it.
Some people have reported for other exams that when new exams are launched, the scoring has issues.
I’ve not noticed such an issue with this exam, so I was pleased about it.
Read More 
February 1, 2021
In my pursuit of the Red Hat Certified Architect (RHCA) certification, I’ve taken the Red Hat Certified Specialist in Advanced automation: Ansible best practices exam (EX447).
As for the other Ansible Exams, you can always consult the Ansible documentation available offline in the exam system.
Different from the Red Hat Certified Engineer exam (EX294), this exam also includes Ansible Tower as a topic, so be sure to have good knowledge of it as well!
Read More 
January 20, 2021
Over the years, I found myself multiple times using Gonum Plot.
I do find it as a very good and easy to use plotting tool for Go.
The problem I found myself, over and over, dealing with is the tickers scale.
If you know before-hand the values that can be expected to be created by the application, it is very straightforward, but the majority of times, this is not the case.
I often find myself creating a plotting application on data that track events that have not yet happened and cannot predict their range.
Read More 
December 28, 2020
At the beginning of this month, I took the EX294 exam, which allowed me to obtain the Red Hat Certified Engineer (RHCE) certification.
It was the first time I attempted the RHCE exam, but I prepared myself in the past for the EX300 exam, the exam that allowed you to obtain the RHCE certification in the RHEL7 time, but never got around to do the exam.
Compared to what I had to study for the EX300, I found the EX294 program way more sensible.
An aspect I’ve never liked about the EX300 was that you needed to learn many implementation details, such as the in-scope applications’ configuration format.
EX294 changed this aspect since it is based on Ansible, and Ansible abstracts the majority of implementation details of the various applications.
Read More 
November 15, 2020
Ansible Tower allows you to create Workflows, which enable you to create complex workflows by putting together multiple Ansible Playbooks.
Ansible Tower Workflows can have some simple logics, such as run different Ansible Playbooks based on the outcome (success or failure) of a previous Ansible Playbook run.
Sometimes, though, you need to have more information about a previous Ansible Playbook run than just the outcome.
I recently found myself in a situation where I had an Ansible Tower Workflow with two Ansible Playbooks into it, where the first one was performing specific tasks.
The second one needed to get and process the output of the first Ansible Playbook.
Since Ansible Tower provides an API to fetch an Ansible Playbook run output, this part is trivial if you know the Job ID that Ansible Tower assigned to that specific run.
Looking around, I’ve not found much information on how to retrieve the Job ID of a different Job, so I looked at the various APIs and found this solution, which I’m going to share with you today.
I’ve not found much information about getting another Job ID because it is usually a bad practice to do such a thing and that very often you can achieve the same goal in a much cleaner way.
This better option, though, was not present in my case.
Due to many constraints I had in this project, this was the best way I’ve found, even if I’ve tried - at least mentally - many other ways before accepting that this was the only one in my case.
Read More 
October 1, 2020
A few years ago, I did pass this exam, but since then, the certification expired, so I had to re-take the exam.
While the first time I did the exam in a testing center, this time I had to do it at home since all test centers are closed.
The experience of doing the exam at home has been a very positive one since you can arrange the environment as it better fits you.
You can have as much light as you like (within sensible limits), you can use the chair you prefer and the desk orientation you prefer.
You will not be allowed to bring cheating sheets or similar things since the proctor will ask you to show the whole room using the webcam, as you might imagine.
Read More