Avatar (Fabio Alessandro Locati|Fale)'s blog

Parse multi-CSV files in Go

August 22, 2022

As it happens every year, I had to pull a lot of information from various financial intermediaries and convert them into the way the local tax system wanted them. For this reason, I created a Go program that does this modularly. Whenever I have a new financial intermediary, I create a new module that can read whatever format they create and returns a structured object in the form that the application expects.

Read More

Fedora Sway OSTree Spin name

August 12, 2022

The Fedora Sway SIG is working to create an immutable version of the Sway Spin (also work in progress) using OSTree. Those immutable spins of Fedora are becoming more common following Silverblue and Kinoite’s success. As it often happens, one of the most challenging things to do in creating something is to come up with clever names. This task is made even more complex by the relatively small amount of people active in this conversation.

Read More

MACCHIATObin Single Shot first impressions

July 31, 2022

I’ve played with a MACCHIATObin Single Shot board for the last month. I decided to pick this up instead of a different board because of its sheer connectivity. This board has 1x1GbE, 1x2.5GbE, and 2x10GbE, which is very rare for those kinds of boards. I was most interested in the two 10GbE due to some projects I have in mind. I was interested in installing Fedora, which proved very easy. The first time I created a bootable micro-SD card with Fedora, it worked perfectly out of the box.

Read More

Nebula on Fedora

June 30, 2022

In the last year, I moved more and more data and services to hardware that I can directly control. A direct consequence of this is that I started to run more hardware at my house. This change has been very positive, but it is suboptimal when not at home. All services I run are secure and could be shared directly on the web, but I prefer a more cautious approach. For this reason, I decided to create a VPN.

Read More

Can you trust a cloud provider for HA?

May 23, 2022

We have seen a massive increase in the “real world” dependency on digital services in the last few years. This process will probably continue in the future, and we are not ready for it. In the same few years, we have seen a lot of cases where digital services went offline or got hacked. In a society that relies more and more on digital services, we can not afford such services not to be available or secure.

Read More

Obtain an Ansible Job output from Ansible Tower API

April 27, 2022

A couple of years back, I wrote a blogpost on obtaining the previous Job ID in Ansible Tower workflow. Now, let’s go further and create another module to obtain the output of such a job. Before moving further, I want to specify that I talk about Ansible Tower since this is the most known name for this software, but I could also be talking about AWX or Ansible Controller since those are the same codebase.

Read More

gopass in Fedora

April 25, 2022

I started to use ZX2C4’s pass back in 2016 to manage my passwords. I liked the idea behind pass, but I found it too hackish. For this reason, I moved to gopass at the end of 2017 because it was a far more complete implementation of pass from my point of view. gopass is now part of my system, and I’m so used to it that it is hard for me to think about my workflows without gopass into them.

Read More


March 31, 2022

On Friday, I had the opportunity to take scrum.org’s Professional Scrum Master I (PSM I) and Professional Scrum Product Owner I (PSPO I) exams. I’ve started to prepare myself with a training course mainly focused on PSM I. Even though the training title was around PSM I, the course has been on the ideas and reasons behind scrum more than specifically on the certification. I’ve then proceeded with a full read of the scrum guide.

Read More

Inject DB connections in Golang gRPC API

March 21, 2022

One of the first issues that I had to solve when I started to use gRPC was how to inject a DB connection pool to the function handling the request. The DB connection injection is needed because creating a new SQL connection every time there is a new gRPC request (and tearing it down at the end) is a massive waste of resources. Also, this approach could limit the scalability of the API since the database probably has a limited number of connections it will accept.

Read More

gRPC-Gateway 2 in Fedora

February 22, 2022

gRPC is a very nice technology that allows the implementation of efficient APIs in a very efficient way. Thanks to gRPC and protobuf, you do not have to write much boilerplate code since the boilerplate code is generated automatically from the proto file. This works perfectly until both your client and server can perform gRPC calls. Luckily most of the languages have no issue with this. Still, the big exception is JavaScript (and other languages that will compile to JS, such as TypeScript) running in a browser.

Read More
Older Newer