Image for post
Image for post
A random Github repository

Not long time ago Github introduced the “actions” feature:

GitHub Actions makes it easy to automate all your software workflows

You can define in a well-known subfolder of your project (.github) another subfolder (workflows) along with the other files already supported, such as templates for issues, etc., with yet another yml CI/CD pipeline definitions. I’m not going deep with this Github feature since the documentation is very comprehensive.

What is a monorepo? It is a git repository that contains all the modules that compose a software solution. This makes refactorings and code dependency management easier.

Disclaimer: I’m not a monorepo fan. I think that monorepos create as many problems as they solve. If you are in finding why monorepos are not the silver bullet of VCS read this article by Matt Klein. I think they are a good solution if all these conditions…


Image for post
Image for post
image courtesy of Wikimedia

TimescaleDB is an open-source database packaged as a Postgres extension that supports time series. After a lot of struggle integrating time-series database with relational ones to make peace between IOT field telemetry and business data, I want to try to keep all related stuff together. Having a single language for all data mining operation seemed to be a very appealing feature. And so it is!

One thing you learned in the past few months is that IOT stuff can produce a decent amount of data, and maybe you don’t want to read through every single row but more a high-level view of certain metrics, related to the specific device usage and context. …


This is a story from 1985. It is not about COVID-19 quarantine and lockdown: it happened when I was 9. Probably a lot of my friends already know the story, but since it has a lot of connection with the present situation I think it is a tale worth telling.

Image for post
Image for post

The winter between December 1984 and January 1985 was particularly harsh, characterized by ever lower temperatures, due to a thermal anomaly of the stratosphere which caused the conjunction of the Azores anticyclone with the polar one, allowing the descent of Arctic air maritime on Europe. Starting from January 4th, a massive wave of frost from the Russian arctic reached the Mediterranean sea. The exceptional nature of the phenomenon caused chaos and problems throughout Northern Italy, unprepared for such a situation. Furthermore, part of the snow-proofing equipment of my home town had previously been sent to Rome, since the capital had already been blocked, on January 6, by an anomalous snowfall for the place. Schools were closed for a week. An extra vacation with very little chance to go out since it was freezing cold and I was not equipped with suitable clothes. Also, even without email or Zoom, the teachers had been smart enough to send us extra homework. My worst concern was the three-digit divisions and as a 4th grade, I did not have an electronic calculator at hand. Lucky my dad at the time was a High school teacher and was learning to program on an Olivetti M-10 laptop. …


Hello, dear citizen of the free world. I’m writing while I’m in a restricted lifestyle. On Monday night Italy’s prime minister decided that the entire country would be covered by restrictions that can be summarised as follows:

“I stay at home”

All travel was banned unless justified on professional or health grounds. You can go out to buy food and medications and nothing else. You can’t visit your parents if they are in a different neighborhood. I’m working remotely 100% of the time and trying to survive with two kids with a lot of spare time 😰.

The situation is serious just because the health care system is at its maximum capacity and lives of the elderly and other people with serious chronic afflictions are at stake. That said everything is fine: we have food and the sun shines as always in Italy. …


Image for post
Image for post
Photo by Marvin Meyer on Unsplash

A few weeks ago I was setting up a minimal Continuous Integration solution based on Maven running on Bitbucket pipelines. To frame the problem lets just say it was a git mono-repo with the sources of multiple artifacts. Some of these artifacts where runnable applications, but others where client libraries that I had to deploy in a private maven repository. Now I run into a security issue and a moral problem: maven stores credentials to access private repository in the settings.xml configuration file. Although everybody uses a global/ system-wide settings.xml is also possible to override with a local one using the -s cli switch. According to maven’s documentation is not possible to pass repository credentials from the command line. Now I surely don’t want to commit a file with my private maven repository credentials in it. I don’t even want to commit a settings.xml file into my git repo just for the sake of the Continuous Integration. Many CI product asks for a configuration file in the root repository with the description of the actions flow for the build (bitbucket-pipelines.yml): this is the necessary evil and the maximum level of intrusion I can stand in my projects.
So I used the environment variable substitution feature of Maven to solve the first issue. In a custom settings.xml …


Image for post
Image for post

Day 5 presented a very peculiar challenge. The puzzle itself was not that hard, but my caveat using just Apache Spark API made it really challenging to build in a performant and elegant way.

This was the first part of the challenge:

The polymer is formed by smaller units which, when triggered, react with each other such that two adjacent units of the same type and opposite polarity are destroyed. Units’ types are represented by letters; units’ polarity is represented by capitalization. …


Image for post
Image for post

I kept working on the Advent of code challenge using just the Spark API. Here you can find my solution of day 1 and all the code is on my Github repo.

I’ll try to be more consistent in the next few days, but I think I’m going to engage only the e odd days.

The third day’s problem was the following:

Each Elf has made a claim about which area of fabric would be ideal for Santa’s suit. All claims have an ID and consist of a single rectangle with edges parallel to the edges of the fabric. …


Image for post
Image for post
Photo by Joanna Kosinska on Unsplash

This year the “ Advent of code challenge” seems to have taken more spin than in the past editions… or maybe many people I know are joining the challenge. So to make something different rather than writing solution in functional Typescript or Scala I decided to try to build a solution around Apache Spark API. Engineering wise is not a good choice to bind yourself to a very specific API, built to solve very specific problems to tackle a series of unknown problems. So my initial disclaimer is that these series of posts aren’t supposed to be a tutorial of using Spark or some best practice. Quite the opposite. I just would like to show some use cases for some Spark API and probably some anti-pattern you should try to avoid. You can find all the code on my GitHub repo. I used Spark 2.4.0 in a “local” configuration ( it means you don’t need a separate Spark server to run the code ). …


Image for post
Image for post
Photo by Samson Duborg-Rankin on Unsplash

Today is my last day at Engineering S.P.A, one of the biggest software firms in Italy. I worked here for over a decade. In a so long stretch of time, there have been good, bad and very bad moments. I came here to develop a huge developer oriented source generator/framework. In all these years I learned a lot of stuff, mostly on my own, for my own sake, driven by the hunger for knowledge. I developed high profile skills in application security and system integration and I had the chance to develop huge products for the top financial players in my country. This is the kind of opportunity that only a big software firm can put on the table. There have been tough times. I worked really hard to build bridges between old legacy systems and brand new solutions. Just a few years ago I had the opportunity to work on a very important project and we did an awesome job. It has been how working in a big company should be. We develop a foundation technology in order to easily integrate a particular kind of legacy systems at a more abstract level. This stuff has been used for years now in different products and even extended multiple times with very little effort. It is a damn good design piece of software. It will be my little legacy in this place. So why am I leaving? Because that amazing product did not make history, it did not become the standard way of managing projects. This seemed to become more and hastier. I’m sorry to say so, probably in a company with thousands of employees is a necessary evil, but still, it makes day to day work really grinding. The “problem” is that the banking sector has been one of the first field being heavily digitalized. Now we have a huge volume of legacy system that can not sustain the volume and the business needs of the modern financial industry. That’s fine but I need a change, I need to work on something new that is not a big rewrite of a legacy product that has to look like exactly as the old one. I will join a vibrant young company in pursuit of my dream of becoming a better software engineer, not just an experienced developer, a living reference guide for tools and libraries. I will work with friends that are skilled professionals, exchanging knowledge and jokes, the team is driven by a mission I believe in: to build a software that simplifies people jobs with the help of Machine learning techniques. I will write more about my new job soon. I will work in an international environment which is something I always dreamed of. Life is full of uncertain, but from the uncertain comes possibility and from possibility comes development. …


On September 24th I will ride in the Distinguished Gentlemen Ride

Image for post
Image for post
This is me an my bike at a recent Ducati Scrambler event

As a rider of a stylish Ducati Scrambler, I will join my local chapter of the DGR. It is a retro-themed motorbike event, held globally in the world, to raise funds for research into prostate cancer and mental health programs as part of our mission to support men’s health globally. These funds are invested by our partners the Movember Foundation, the world’s largest men’s health organization.

PROSTATE CANCER

Prostate cancer is the second most commonly diagnosed cancer in men. …

About

Sam Reghenzi

The missing link between a Developer and a Kickboxer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store