R Run your own private AI assistant locally with Chat-UI and Deepseek on Docker

February 1, 2025 — 4 Min Read

Want to harness the power of Deepseek LLM without relying on external APIs or worrying about data privacy? Running it locally is the answer! This guide will walk you through setting up all you need on your own machine using the user-friendly Chat UI and the containerization magic of Docker. Get ready to chat with your very own private AI assistant!


W Why I migrated my personal blog from GatsbyJS to Hugo

August 26, 2024 — 6 Min Read

Over the years my personal blog has undergone several iterations, each using a different tech stack. When I adopted GatsbyJS, I believed I had found my long-term solution as I was initially very happy with it: React is a very good and easy to use library to develop frontends, the Gatsby community is big, and there are plenty of resources or examples about implementing common frontend features.

However, maintaining the blog proved challenging over time. My limited available time clashed with the significant effort required to keep the framework updated.

This is the journey that brought me to ditch GatsbyJS in favour of Hugo.


D Deploy OpenFaas to minikube

May 21, 2020 — 2 Min Read

OpenFaas is an open source FaaS platform that allows to deploy event-driven functions and microservices to Kubernetes quickly.

In this tutorial we will see how to deploy it. In particular we will use minikube, which implements a simple local k8s cluster.


C Configure Grafana to pull metrics from Prometheus

April 18, 2020 — 4 Min Read

Grafana is a great tool to create dashboards to visualize data, it can use different sources to pull data from. In this article we’re going to use Prometheus for this role.

We won’t investigate all the features of it, for example it can be used for alerting as well, but in this post we’re going to use it simply as a data source.

We’re going to setup the whole stack using docker-compose. For the impatient the code is in a github repo.


T The Optional anti-patterns in Java

September 27, 2019 — 6 Min Read

Traditionally, Java programs have returned null as a way to represent that a value isn’t present. The version 8 of the SDK includes a new class which was made specifically to manage missing values.

I won’t describe the details of the Optional class, but very briefly it’s a container object which may or may not contain a non-null value. Therefore, it is possible to manipulate null values as if they were normal instances without necessarily having to perform a null check at every step.

In this article, I’m going to talk about experiences I gathered while working with Java and describe some anti-patterns I’ve seen about such class.


U Use Android SDK Manager with Java 11

June 9, 2019 — 2 Min Read

Since with the release 11 some deprecated packages used by the Android SDK were removed, it’s not yet possible to run it with the latest Java versions. As a workaround it’s possible to download the required classes separately and add them to the classpath, or install the latest supported version, java 1.8. This latter approach is the recommended one.


U Uninstall older versions of Java from macOS

February 11, 2019 — 1 Min Read

Sometimes it happens that after installing different versions of Java you want to remove the old/unused ones: in this brief tutorial we’ll see how to list all the installed versions and remove the one that are not required anymore from macOS.