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.