Hello 👋

Self-hosting Umami with Docker Compose

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.

Creating vocal interfaces is difficult

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.

Paxos: a distributed consensus protocol

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.

Distributed Consensus, Atomic Commit and FLP Theorem

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.

Basics of Distributed Systems theory

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.

Self-hosting Matomo with Docker

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, tasks and storyboards in HCI

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.

Basics of MIPS Assembly

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.

MIPS CPU with a single clock cycle

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.