About
Who is Davide?
Recent content on Davide Quaranta
Who is Davide?
Creating an automatic backup strategy for Docker volumes, on Backblaze B2 buckets managed with Terraform, with state files securely saved on B2 as well.
We had the need to print the environment variables used as parameters of GitLab CI/CD pipelines. Right now there is no official straightforward way to do it, so I resorted to a tiny custom way to do it.
This little post describes how to remove a special edge case of GitHub notifications that cannot be marked as read from the web interface
This post shows how I set up an home network traffic monitoring system in an unconventional way.
i3 is a tiling window manager, which means that the concept of "window" does not exist. Instead of windows, there are "tiles": generic partitions of the screen, where some content is drawn into. In this post I write my opinions on the key changes between stacking and tiling window managers.
A short horror story (with a nice ending) featuring Ubuntu and NVIDIA drivers.
The jump host is an option of the SSH client, that allows to use a third SSH server as "proxy" to access the final intended SSH server
For the past month I've been daily using Duolingo to learn German, and I'm captured by the app's dynamics, which uses some gamification devices that first hook you into forming an habit, and then challenge and reward you for studying and learning more. I've then decided to pack some examples of the gamification tools that Duolingo uses and why.
This is an ongoing experiment. One day I've decided to stop using the default XFCE's window manager xfwm4 and start using Mutter instead, which is the one shipped with GNOME. Switching is easier than expected, but at the end there are a few usability issues, some of which are quickly solvable but others are trickier.
A GitHub Action is the automatic execution of a job, after a specified trigger on a GitHub repository. For example, let's say that we want to run a linter on each new commit, we can create a GitHub action to do it. In this post we'll see a workflow to automatically deploy a Hugo site on GitHub Pages.
Umami is an open-source, privacy oriented and lightweight web analytics service written in Node. Umami is super easy and quick to self-host, and in this post we'll see a setup with Docker Compose.
Why is it so complex to create a good voice interface? There are many factors that affect the quality and usability of the final product. There are many variables involved, and the technology choices are decisive. Let's see why.
Let's look at Paxos: a beautiful and fundamental safe, but not live, distributed consensus protocol. Let's see how it works, what the main elements are, and have some examples.
Let's see the concept of consensus in distributed systems: what it is, why it is complex, when and if it is possible. We'll see a protocol for achieving atomic commit, and finally we prove the FLP theorem.
In this introductory post on distributed systems we'll see some basic concepts such as: local and global states, consistent and inconsistent cuts, vector clocks, Chandy-Lamport's snapshot protocol.
Matomo is a viable alternative to Google Analytics as an ethical and privacy-oriented web analytics tool. In this post we see how to install it with Docker, alongside MariaDB and a couple of nginx-related containers.
Need finding is a fundamental activity in user interface design, because it allows us to understand our users and their needs. With this post we see how to conduct it, and what it consists of.
Send me a message
We have a fairly dense post in front of us, in which we will see the basics of programming in MIPS assembly. By the end of the guide we will be able to do quite a bit (such as operating on vectors and matrices), and also ready to tackle recursion.
The MIPS architecture is of type RISC and originated in 1981 from a research project by Prof. Hennessy at Stanford. This architecture is characterized by instructions of the same length, and is geared toward simplifying pipeline implementation.