<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>/dev/null</title><link>https://pasdam.github.io/</link><description>Recent content on /dev/null</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 23 Mar 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://pasdam.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>How to add redirects to your GitHub Pages website</title><link>https://pasdam.github.io/blog/posts/github_pages_redirect/</link><pubDate>Sun, 23 Mar 2025 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/github_pages_redirect/</guid><description>&lt;p>GitHub Pages is a fantastic platform for hosting static websites directly from
your GitHub repository. It&amp;rsquo;s simple, free, and perfect for personal portfolios,
project documentation, and small business landing pages. However, as your
projects evolve, you might find yourself needing to move content, or even switch
to a new domain. This is where redirects become essential.&lt;/p>
&lt;p>Without redirects, users who have bookmarked old pages or found links elsewhere
will encounter frustrating &lt;code>404 Not Found&lt;/code> errors. This can lead to a poor user
experience and lost traffic. In this blog post, we&amp;rsquo;ll delve into why you might
need redirects on your GitHub Pages site and provide a detailed, step-by-step
guide on how to implement them effectively.&lt;/p></description></item><item><title>Automatically generate diagrams from resources deployed in AWS</title><link>https://pasdam.github.io/blog/posts/aws_diagrams/</link><pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/aws_diagrams/</guid><description>&lt;p>Navigating through all the services in the AWS console is cumbersome, and
generating diagrams manually and keep them updated is a tedious job.
&lt;a href="https://infra-inspector.github.io/" rel="external"
 target="_blank" >infra-inspector&lt;/a> automates these processes,
so you can use it in CI/CD environments to automatically or periodically
generate these useful info.&lt;/p></description></item><item><title>Run your own private AI assistant locally with Chat-UI and Deepseek on Docker</title><link>https://pasdam.github.io/blog/posts/run_deepseek_model_locally/</link><pubDate>Sat, 01 Feb 2025 19:49:54 +0100</pubDate><guid>https://pasdam.github.io/blog/posts/run_deepseek_model_locally/</guid><description>&lt;p>Want to harness the power of
&lt;a href="https://ollama.com/library/deepseek-r1:1.5b" rel="external"
 target="_blank" >Deepseek&lt;/a> 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 &lt;a href="https://github.com/huggingface/chat-ui" rel="external"
 target="_blank" >Chat UI&lt;/a> and
the containerization magic of Docker. Get ready to chat with your very own
private AI assistant!&lt;/p></description></item><item><title>Why I migrated my personal blog from GatsbyJS to Hugo</title><link>https://pasdam.github.io/blog/posts/migrate_personal_blog_from_gatsby_to_hugo/</link><pubDate>Mon, 26 Aug 2024 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/migrate_personal_blog_from_gatsby_to_hugo/</guid><description>&lt;p>Over the years my personal blog has undergone several iterations, each using a
different tech stack. When I adopted &lt;a href="https://www.gatsbyjs.com/" rel="external"
 target="_blank" >GatsbyJS&lt;/a>, I
believed I had found my long-term solution as I was initially very happy with
it: &lt;a href="https://react.dev/" rel="external"
 target="_blank" >React&lt;/a> 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.&lt;/p>
&lt;p>However, maintaining the blog proved challenging over time. My limited available
time clashed with the significant effort required to keep the framework updated.&lt;/p>
&lt;p>This is the journey that brought me to ditch GatsbyJS in favour of
&lt;a href="https://gohugo.io/" rel="external"
 target="_blank" >Hugo&lt;/a>.&lt;/p></description></item><item><title>Deploy OpenFaas to minikube</title><link>https://pasdam.github.io/blog/posts/deploy_openfaas_to_minikube/</link><pubDate>Thu, 21 May 2020 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/deploy_openfaas_to_minikube/</guid><description>&lt;p>&lt;a href="https://www.openfaas.com/" rel="external"
 target="_blank" >OpenFaas&lt;/a> is an open source
&lt;a href="https://en.wikipedia.org/wiki/Function_as_a_service" rel="external"
 target="_blank" >FaaS&lt;/a> platform that
allows to deploy event-driven functions and microservices to Kubernetes quickly.&lt;/p>
&lt;p>In this tutorial we will see how to deploy it. In particular we will use
&lt;a href="https://github.com/kubernetes/minikube" rel="external"
 target="_blank" >minikube&lt;/a>, which implements a simple
local k8s cluster.&lt;/p></description></item><item><title>Configure Grafana to pull metrics from Prometheus</title><link>https://pasdam.github.io/blog/posts/metrics_with_grafana_prometheus_and_docker/</link><pubDate>Sat, 18 Apr 2020 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/metrics_with_grafana_prometheus_and_docker/</guid><description>&lt;p>&lt;a href="https://grafana.com/" rel="external"
 target="_blank" >Grafana&lt;/a> is a great tool to create dashboards to
visualize data, it can use different sources to pull data from. In this article
we&amp;rsquo;re going to use &lt;a href="https://prometheus.io/" rel="external"
 target="_blank" >Prometheus&lt;/a> for this role.&lt;/p>
&lt;p>We won&amp;rsquo;t investigate all the features of it, for example it can be used
for alerting as well, but in this post we&amp;rsquo;re going to use it simply as a data
source.&lt;/p>
&lt;p>We&amp;rsquo;re going to setup the whole stack using docker-compose. For the impatient the
code is in a
&lt;a href="https://github.com/pasdam/docker-stack-grafana-prometheus" rel="external"
 target="_blank" >github repo&lt;/a>.&lt;/p></description></item><item><title>The Optional anti-patterns in Java</title><link>https://pasdam.github.io/blog/posts/java_optional_antipattern/</link><pubDate>Fri, 27 Sep 2019 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/java_optional_antipattern/</guid><description>&lt;p>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.&lt;/p>
&lt;p>I won&amp;rsquo;t describe the details of the &lt;a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html" rel="external"
 target="_blank" >Optional&lt;/a> class, but very briefly it&amp;rsquo;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.&lt;/p>
&lt;p>In this article, I&amp;rsquo;m going to talk about experiences I gathered while working with Java and describe some anti-patterns I&amp;rsquo;ve seen about such class.&lt;/p></description></item><item><title>Flutter: fix unknown android license status issue</title><link>https://pasdam.github.io/blog/posts/flutter_fix_unknown_license_status/</link><pubDate>Sun, 09 Jun 2019 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/flutter_fix_unknown_license_status/</guid><description>&lt;p>Because of &lt;a href="https://pasdam.github.io/blog/android_sdk_java_11/">android SDK not correctly working with java 11&lt;/a>, when run &lt;code>flutter doctor&lt;/code> we&amp;rsquo;ll get the following error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>$ flutter doctor
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Android license status unknown.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Try re-installing or updating your Android SDK Manager.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Use Android SDK Manager with Java 11</title><link>https://pasdam.github.io/blog/posts/android_sdk_java_11/</link><pubDate>Sun, 09 Jun 2019 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/android_sdk_java_11/</guid><description>&lt;p>Since with the release 11 some deprecated packages used by the Android SDK &lt;a href="https://openjdk.java.net/jeps/320" rel="external"
 target="_blank" >were removed&lt;/a>, it&amp;rsquo;s not yet possible to run it with the latest Java versions. As a workaround it&amp;rsquo;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.&lt;/p></description></item><item><title>Add Disqus comments to a GatsbyJS static blog</title><link>https://pasdam.github.io/blog/posts/gatsbyjs_add_diqus_comments/</link><pubDate>Sat, 27 Apr 2019 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/gatsbyjs_add_diqus_comments/</guid><description>&lt;p>There are &lt;a href="https://www.gatsbyjs.org/blog/2018-04-10-how-to-handle-comments-in-gatsby-blogs/" rel="external"
 target="_blank" >different ways&lt;/a> to add a comments section to your static website or blog, in this guide we won&amp;rsquo;t talk about pros and cons of each solution but we will actually focus on how to use &lt;a href="https://disqus.com" rel="external"
 target="_blank" >Disqus&lt;/a> to enable users to leave comments on a blog generated with &lt;a href="https://www.gatsbyjs.org/" rel="external"
 target="_blank" >GatsbyJS&lt;/a>.&lt;/p></description></item><item><title>Use Go code in c/c++ applications</title><link>https://pasdam.github.io/blog/posts/go_library_for_c_cpp_applications/</link><pubDate>Sat, 27 Apr 2019 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/go_library_for_c_cpp_applications/</guid><description>&lt;p>This simple tutorial will show how is possible to call &lt;a href="https://golang.org/" rel="external"
 target="_blank" >GoLang&lt;/a> functions from a c/c++ code.&lt;/p></description></item><item><title>Uninstall older versions of Java from macOS</title><link>https://pasdam.github.io/blog/posts/remove_old_java_macos/</link><pubDate>Mon, 11 Feb 2019 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/remove_old_java_macos/</guid><description>&lt;p>Sometimes it happens that after installing different versions of Java you want
to remove the old/unused ones: in this brief tutorial we&amp;rsquo;ll see how to list all
the installed versions and remove the one that are not required anymore from
macOS.&lt;/p></description></item><item><title>How to use different SSH keys</title><link>https://pasdam.github.io/blog/posts/ssh_multiple_keys_config/</link><pubDate>Wed, 12 Dec 2018 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/ssh_multiple_keys_config/</guid><description>&lt;p>As a developer you might have to deal with SSH keys to access specific API/machines, and a common approach is to have one key for everything. For security reasons it&amp;rsquo;s good to use different ones so that if one of them is compromised the other services are safe and you don&amp;rsquo;t need to revoke and regenerate the keys for all your API/machines.&lt;/p>
&lt;p>In this guide I will show you how to use a different SSH keys for each domain.&lt;/p></description></item><item><title>Install DataDog Agent as a docker container</title><link>https://pasdam.github.io/blog/posts/datadog_agent_docker/</link><pubDate>Fri, 23 Nov 2018 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/datadog_agent_docker/</guid><description>&lt;p>&lt;a href="https://www.datadoghq.com/" rel="external"
 target="_blank" >DataDog&lt;/a> is a monitoring service for cloud-scale applications, in the following guide we&amp;rsquo;ll see how to create a docker container with the &lt;a href="https://docs.datadoghq.com/agent/?tab=agentv6" rel="external"
 target="_blank" >DataDog agent&lt;/a> and how to use it to publish custom metrics.&lt;/p></description></item><item><title>Use gRPC/protobuf with C++ and Go</title><link>https://pasdam.github.io/blog/posts/grpc_qt_go/</link><pubDate>Mon, 24 Jul 2017 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/blog/posts/grpc_qt_go/</guid><description>&lt;p>In this guide I will show you how to use &lt;a href="http://www.grpc.io/" rel="external"
 target="_blank" >gRPC&lt;/a> to write a simple client (in C++) and server (in Go) for your service.&lt;/p>
&lt;p>For this tutorial we will use the code available in the following Github project: &lt;a href="https://github.com/pasdam/grpcExample" rel="external"
 target="_blank" >pasdam/grpcExample&lt;/a>.&lt;/p>
&lt;p>For the client, in this article I&amp;rsquo;ll show how to write a command line one, but in the repository there is also a GUI client written with the &lt;a href="https://www.qt.io" rel="external"
 target="_blank" >Qt framework&lt;/a>.&lt;/p></description></item><item><title>Search</title><link>https://pasdam.github.io/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pasdam.github.io/search/</guid><description/></item></channel></rss>