Jails: confining the omnipotent root

Preamble Recently I became nostalgic and fascinated with stuff from the past, so I decided to create a Vagrantfile to work with FreeBSD1. Why FreeBSD? Because as a developer, I really like Docker and I started looking in the past to find its historical birth: in fact, as a concept, Docker is no so recent as you think, and I think it exists also because of the works of some other bigs from 80’, such as Poul-Henning Kamp2. Starting from its work and using a FreeBSD installation I did some experiments with jails, to understand better what they really are, how they works - how can you create what it will look like a vintage container - and why you should use them in a FreeBSD environment - at least, to learn something new. ...

April 19, 2020 · 10 min

T.H.I.N.K: is all about problems, not data

Intro Mute post Bye

February 10, 2020 · 1 min

?(DRY(KIS(afe)S)) => CF(ALB+TLS+SM);

Intro If you work with AWS, you might be involved in building infrastructure to enable some of your customers (both internal and external) to use a particular service, or just to try one of the hundreds open-source application available on Github. Furthermore, most of the ML/AI tools are shipped in docker containers and the philosophy -> if it runs on docker, it runs everywhere has been spread up to the highest level of management (nice, but… sometimes dangerous 😅 ed. ) And it’s pretty much true, buuuuut… ...

February 1, 2020 · 11 min

A monadic reasoning around function composition in Golang

Introduction Function composition is something we as developers do every day, more or less. This concept come from Mathematics: if you search on Wikipedia, you find out that function composition is an operation that takes two functions \(f\) and \(g\) and produces a function \(h\) such that \(h(x) = g(f(x))\). In this operation, the function \(g\) is applied to the result of applying the function \(f\) to the input \(x\). That is, the functions \(f: X \rightarrow Y\) and \(g: Y \rightarrow Z\) are composed to yield a function that maps \(x\) in \(X\) to \(g(f(x))\) in \(Z\). ...

January 16, 2020 · 10 min

The await/async concurrency pattern in Golang

Introduction First of all…happy new year! I decided after a while to come back online speaking about Golang. In this post, I will focus on parallelism and concurrency and how you can achieve the same behavioral pattern you can achieve with Node.js using await/async statements, without the difficulties (hopefully) of dealing with Single Threaded Event Loop and these primitives (that, btw, keep things really simple). Let’s start! A bit of confusion Concurrency and parallelism are two terms that are bound to come across often when looking into multitasking and are often used interchangeably. However, they mean two distinctly different things. Concurrency is all about the following: ...

January 2, 2020 · 10 min

Devops strategies

Intro As you might know, I use to work with AWS doing and destroying stuff like many other devopssss out there: this post is all about some challenges and problems I had to deal recently - in the last months - and involves some notes about how to deal with multistage environments, decoupling and many other practices you should all know about. The first thing to emphasize is that each of these best practices is fairly clear and well-defined, for sure online (perhaps discussed by bloggers more experienced than me XD) and deeply described in many books. The problem - at least, in my experience - is not about understanding these best practices, sharing them within a team and starting to use them as a group. The huge problem is actually the one of verifying and scaffold a behavioral pattern to put them in place, by definition of standards within a context that did not use them previously. ...

December 8, 2019 · 12 min

From Jekyll to Hugo, from Travis to Gitlab: a time for changes

Intro In the last 50 days I had to work a lot for many… many different reasons. The main ones: I was accepted as a Speaker at FullStackConf19 in Turin, talking about coding in mobility. You can find the slide of my speech here and the material I prepared the talk in this Github repo. By the way, I was truly inspired by some of the talks during the conference, and I started brainstorming around the next post; I moved back to Italy and trust me -> it was a pretty complex goal to achieve, with particular regards to my car; I joined Enerbrain and I’m really having fun with theme building smart-energy solution as a Devops Engineer; I joined a softball team - yes, it’s mixed, but it’s officially played also by men hahe. Let me say that it’s not the usual kind of team, it’s more a sort of “group of old friends playing drinking and…” overall having fun together; What else… oh yes, I migrated my blog to Hugo and I also migrated my release pipeline to Gitlab. ...

September 20, 2019 · 6 min

Time to say good bye

Prelude In the last two months, many things happened in my life, so this is the reason I wasn’t able to dedicate a lot of time to my blog. What can I say… I’ve been in South Africa, and I literally lived experiences I will never forget and cannot be described. I visited the Blyde Canyon and the Rain Forest. I made so many safaris, I saw the elephants in the morning washing and drinking from the river, the giraffes, I saw the warthogs - and by the way, they are exactly as Pumba in the Lion King by Disney - the lion, which was about to attack the buffalos, I found the white rhinos, the hyenas and the leopards. I ate in places with monkeys literally running free, I slept in a lodge - which was more similar to a castle than a lodge, and so much more comfortable than my apartment - and I had showers with an astonishing view on the savannah and nothing else. I visited Cape Town and I bought a beautifully engraved ostrich egg, I took a boat for the island of the seals. I made pictures of so many panoramic points on the coast, and I saw one breeding of ostriches. I reached the tip of Good Hope with the funicular up to the lighthouse, and I saw where the Atlantic Ocean and the Indian Ocean meet. I saw the South Africans penguins, I stopped inside False Bay and after that, I visited the botanical garden, with so many flowers, directly under the mountains, connected to the wild forest. It was an amazing trip, but it is not the only thing it happened to me. In fact, I also decided to leave Germany… ...

September 3, 2019 · 10 min

The Good Employee, a story about how you can explain modern companies with graph theory

Prelude This is a twin post of - I guess - a good one that I wrote a long time ago: I was just surfing the blog thinking about all I would like to do, and I came to my old thoughts. I was curious, you know? so I read it, and read it once again, I reflected a bit on it - and I found it inspiring in a sense: even better, I would say I found myself surprised to agree with myself of almost 1 year and a half ago, in most of the things I wrote. For me, it was an important moment because it has been like a kind of retrospective. This is the reason I wanted to give this new lifestyle-kind-of post just the same title as his father. Like: I’m still learning. Or even better: I’m still learning - Revenge of the Fallen but I wanna warn you, once again - this is a deeply full-of-truth-and-complaints post - ok no, just kidding. This is more kind of a story, in five Chapters. ...

July 10, 2019 · 15 min

My team run VSC in the browser and they are just fine - Part II

Introduction In the first part of this series - I run VSC in the browser and I was just fine - I wrote many stupid things around the possibility of having a VSC server instance running inside AWS over a simple, immutable, ec2 instance. The template {that can be easily deployed by a Lambda function [that can be easily deployed behind a route53 record (that can be easily placed as the endpoint of a custom Slack action)]} let you start your IDE and code from wherever you would like to. In this second part, I wanna talk about how to extend the same idea to serve a Team of developers. Yes, like the one below. ...

July 3, 2019 · 15 min