Skip to main content

My MacOS Monterey Setup

· 8 min read
Saverio Ferrara
Software Engineer

I think you are supposing I am a macOS fan... but I am not! Linux is my favourite OS, so why I spent time customizing macOS? I am also a software developer and, like many others, I have been asked to use macOS.

The experience was very frustrating at the beginning and I suspect the main issue was the entire Mission Control system. Typical questions: "Where is the window I opened a moment ago?", "Why the order of the spaces keeps changing?", "Do I really need those fancy animations?". Then I spent a couple of days in macOS customization and I'd like to thank the other blogger who shared their configs. The result is a Windows/Linux-like desktop setup, that tries to leverage default macOS behaviour as much as possible. In the specific, I mean a setup that is fast, keyboard-centric and without distractions.
Now, let's describe the setup in detail following a recipe-style format so I (and you) can re-execute the same recipe if I'll need it.

Sending and receiving TCP/UDP packets using Netcat

· 2 min read
Saverio Ferrara
Software Engineer

This story will show you how to use Netcat to send and receive TCP/UDP packets. We'll focus on a specific example... we'll simulate a Statsd client/server.

What is Netcat? Netcat is a featured networking utility which reads and writes data across network connections, using the TCP/IP protocol. Designed to be a reliable "back-end" tool, Netcat can be used directly with other programs and scripts to send files from a client to a server and back. At the same time, it is a feature-rich network debugging and exploration tool that can specify the network parameters while also establishing a connection to a remote host via a tunnel.

Saverio's Source Code channel on Twitch

· One min read
Saverio Ferrara
Software Engineer

Do you have fun while programming? Maybe you do think it is quite strange... Well, it's not! Just think of competitive programming, that is defined as "mind sport". An example is Code Wars, a website that provides a large collection of coding challenges submitted and edited by their the community. But it is not the only one, there are a lot of other examples.

Working Together in a Global Company

· 6 min read
Saverio Ferrara
Software Engineer

I still remember when I joined the Hotels.com™ (part of Expedia Group™) technology team and how excited I was to start such a new challenge. Since the very early days, I noticed that working in a global company is quite different from working in the same building. That is obvious, I know, but it wasn't easy to get used to the new way of working.

I missed getting in touch with new teammates, and sometimes felt isolated from others and had the feeling of being a remote worker. Later on, only when I started working from home for 2 days per week, I realized that working in a global team has a lot in common with the remote work.

In this article, I will list my personal seven rules that allowed me to collaborate effectively with colleagues scattered across the world.

Isolate services using the command pattern

· 5 min read
Saverio Ferrara
Software Engineer

Using microservices is mainstream nowadays and them bring several challenges for the software engineers: operations and infrastructure, security, monitoring, caching, fault-tolerance, and so on.
In particular, having under control the communication between microservices is the key to build reliable reliable services.

In the Java world there are around several solutions for this purpose but, in this post, I'd like to analyze how Hystrix leverage the "command pattern" to accomplish this goal.

Blogging with Octopress and Jekyll

· 6 min read
Saverio Ferrara
Software Engineer

Nowadays, most blogs are powered by Wordpress. I am a Wordpress users too and I have to admit it is really a great for blogs.
As others CMS, Wordpress requires a database and PHP in order to process the dynamic pages server-side. Jekyll is a static site generator. With it I can generate all my blog pages in on my computer and then publish the entire website on a static hosting server.

Da REST a GraphQL in 90 minuti

· 2 min read
Saverio Ferrara
Software Engineer

21 Dicembre 2017, Hotels.com Technology Rome Office

Da REST a GraphQL in 90 minuti

Il team HCOM technology di Roma vorrebbe condividere con voi le esperienze fatte con GraphQL, e discutere su come questo linguaggio possa essere favorito rispetto all'ormai consueto paradigma REST.

Durante l'incontro faremo una introduzione ai principi base di GraphQL, parleremo di come si definisce uno schema per descrivere i dati e di come è poi possibile eseguire delle interrogazioni su di esso. Subito dopo seguirà una parte pratica durante la quale implementeremo un servizio GraphQL utilizzando l'implementazione javascript.

Getting Started With GraphQL

· 6 min read
Saverio Ferrara
Software Engineer

What is GraphQL? The draft RFC specification (October 2016), defines it as "a query language created by Facebook in 2012 for describing the capabilities and requirements of data models for client‐server applications". More simply, GraphQL is a language specification for API. It defines in which way the client should query the server, and in which way the server should execute those queries.

Aspect Oriented Programming with Spring and AspectJ

· 8 min read
Saverio Ferrara
Software Engineer

Aspect-Oriented Programming (AOP) powerfully complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure.

Drawing a comparison between AOP and OOP we can say that the key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. With aspects, you can group application behaviour that was once spread throughout your applications into reusable modules. You can then declare exactly where and how this behaviour is applied. This reduces code duplication and lets your classes focus on their main functionality.