
January 18, 2019
Golang forces its users to use the repository URL of the dependency in the import statement.
For instance, if we want to import the “test” package that is hosted at github.com/fale/test
, we will need to use github.com/fale/test
.
On the one hand, this is very nice since it allows anyone reading the code to immediately understand where the code is hosted and therefore find it very quickly.
Also, this URL-based import path guarantees that no two different packages can have the same import path, preventing this kind of confusion for both programmers and the compiler itself.
On the other hand, this is a limitation since it makes the code very reliant on the repository location.
Read More 
December 3, 2018
Today the IT world is very focused on high performance, high throughput interfaces.
In this situation, it is common to find REST and gRPC API, given their performances compared to the other solutions.
Sometimes, though, we still encounter old API written with older techniques or new API that for some reasons have been developed with outdated technologies.
One of those cases that I’ve encountered a few times over the last few months is SOAP.
Read More 
November 18, 2018
There are some pieces that you need to put in every microservice you write.
Those are for instance logging, error handling, authentication.
Over the last year, I found myself writing over and over CORS headers.
This requirement brought me to think that I should have used a Negroni middleware since we are already using Negroni for other middlewares.
I started looking online for an already written one, and I found a bunch, but I was not happy with what I found, so I decided to write my own.
Read More 
September 23, 2018
Golang uses URLs for the dependencies packages resolution.
To unbundle the code repository hosting the package and the import path, Golang supports the idea of Vanity Import Paths.
The way this has been implemented is that, as long as the import path points to a page where Go can find the real package URL, it will follow through.
So, we will need to create a web server that can serve pages in a way that the Go toolchains can understand.
To do so, I use the following code:
Read More 
August 31, 2018
Lately, I found myself to work on an application that was communicating via SOAP with a server.
My goal was to understand how this application worked with the SOAP server to emulate its behavior.
Even if I had access to the source code of the application, I thought it would have been easier, faster and more fun to do the work without actually reading the code.
It’s important to note that actually, the application is fairly small and self-contained. Otherwise, I would have probably taken a different approach.
Read More 
April 26, 2017
After many years of using Hetzner as a server provider, and having rented from them multiple servers for many reasons, I decided to rent a server with 128Gb of RAM to do some tests with many (virtualized) machines on top of CentOS.
As it often happens, hosting providers put in place a lot of security measurements that sometimes make doing simple stuff more complex.
The first approach I tried was using the (only) Ethernet interface as a bridged interface, but that did not brought me very far.
Speaking with the support they pointed out that it was impossible in my setup, so I moved to the second option: the broute.
Read More 
April 2, 2014
I usually don’t start with this, but lately I had some time constraints that made me wondering if is right to use so much time reading books. The Wireshark Field Guide Analyzing and Troubleshooting Network Traffic by Robert J. Shimonski is only 149 pages long (if we cut the introduction, indexes, etc. it boils down to 128 pages). This is a really short book and I have really appreciated this fact. Wireshark is a very useful and powerful tool, but many people do not need to know everything about it. If you need to know everything about wireshark, the best option is to download the source and read it, but this is not the case for 99.99% of the people interested in Wireshark.
Read More 
January 29, 2013
I come to this book less than a month after reviewing the 70-410 Exam Ref.
As the title may suggest, this book is tailored to the preparation of the Microsoft 70-413 exam.
Speaking of the exam, I have to advice that the book does cover any exam objective, but does not cover every exam question.
The book is split into an introduction, 5 chapters and the index.
The first chapter helps to understand how to plan and deploy a server infrastructure. The other four are focused on the designing and implementation of the various components: network infrastructure services (chapter 2), network access services (chapter 3), Active Directory logical infrastructure (chapter 4) and Active Directory physical infrastructure (chapter 5).
A thing I liked about this book is the presence of questions (with detailed answers).
What is improvable for these question is the number.
I think they should put way more questions.
So, the questions, are a good idea not well implemented.
The only thing I hoped to see on this book but is missing is the emphasis on the security.
Read More 
January 1, 2013
Reading this book has helped me a lot understanding better how the networking works.
This book is tailored for the CompTIA Network+ certification (and this led me to this book instead of another one, since I’m looking forward to take this certification.
I really liked the “structureness” of this book.
After a brief introduction (Chapter 1) the book author analyzes the whole networking stack starting from ground up. The first chapters, in fact, are about Physical layer (Chapter 2), Data-Link Layer (Chapter 4) and Network Layer (Chapter 6). Then we find the Transportation Layer (Chapter 8) and the Application Layer (Chapter 9). We also find some really interested chapters like Network Devices (Chapter 3), Wireless Networking (Chapter 5), Network Security (Chapter 11) and Network Management (Chapter 12).
Read More