<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>blog.fidelramos.net</title><link>https://blog.fidelramos.net/</link><description/><atom:link href="https://blog.fidelramos.net/feeds/en.rss.xml" rel="self"/><lastBuildDate>Tue, 07 Apr 2026 20:38:29 +0000</lastBuildDate><item><title>Pre-establishing SSH master connections for Ansible, or using OnlyKey with Ansible without losing your mind</title><link>https://blog.fidelramos.net/software/ansible-ssh-master-connections</link><description>&lt;p&gt;I use an &lt;a href="https://onlykey.io/"&gt;OnlyKey&lt;/a&gt; as a hardware security device for a variety of purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Common passwords are one keypress away, they get typed automatically.&lt;/li&gt;
&lt;li&gt;As 2FA in my password manager (KeepassXC), by applying HMAC on the password.&lt;/li&gt;
&lt;li&gt;SSH connections.&lt;/li&gt;
&lt;li&gt;GPG encryption and signing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;figure class="align-center"&gt;&lt;img src="https://blog.fidelramos.net/images/ansible_and_onlykey/onlykey.webp"&gt;&lt;figcaption&gt;OnlyKey&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;SSH connections are handled through the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2026-04-07:/software/ansible-ssh-master-connections</guid><category>Software</category><category>ansible</category><category>automation</category><category>howto</category><category>linux</category><category>security</category></item><item><title>Announcing Reflex, a Pelican theme</title><link>https://blog.fidelramos.net/software/announce-reflex-theme</link><description>&lt;p&gt;I'm happy to announce the public availability of my Pelican theme: &lt;a href="https://github.com/haplo/python-theme-reflex"&gt;Reflex&lt;/a&gt;.
It is &lt;a href="https://pypi.org/project/pelican-reflex/"&gt;published on PyPI&lt;/a&gt;, which should be the best way for most users to install it.&lt;/p&gt;
&lt;p&gt;When I first started this blog I decided on Pelican because I had lots of experience with Python, so it would …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2026-02-16:/software/announce-reflex-theme</guid><category>Software</category><category>free-software</category><category>pelican</category></item><item><title>Self-hosted Home, Part 1: Design and Planning</title><link>https://blog.fidelramos.net/software/self-hosted-home-1</link><description>&lt;p&gt;Those who have been paying attention to the blog know that I bought a house and have been planning its full renovation.
As a computer nerd what excites me the most is the opportunity to implement &lt;strong&gt;my dream  smart home, networking and home server&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I have a clear idea of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2026-01-25:/software/self-hosted-home-1</guid><category>Software</category><category>free-software</category><category>linux</category><category>self-hosting</category></item><item><title>New Year's Resolutions for 2026</title><link>https://blog.fidelramos.net/personal/new-years-resolutions-2026</link><description>&lt;p&gt;Another year has passed, and what I originally didn't plan to turn into a tradition has become one I never miss: publishing my resolutions for the new year.
I always fail at some of my resolutions, but I like the effort of reflection and keeping them in mind throughout the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Thu, 08 Jan 2026 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2026-01-08:/personal/new-years-resolutions-2026</guid><category>Personal</category><category>personal</category></item><item><title>Periodic script to back up installed OS packages</title><link>https://blog.fidelramos.net/software/backup-installed-packages</link><description>&lt;p&gt;A while ago I &lt;a href="https://github.com/haplo/dotfiles/commit/0f7aedfa2ee71ca4a5d709d2f2a21c57a83be264"&gt;switched to yadm&lt;/a&gt; for managing my dotfiles.
One of its features I have been enjoying is its &lt;a href="https://yadm.io/docs/bootstrap"&gt;bootstrap support&lt;/a&gt;.
I have been adding idempotent setup operations&lt;/p&gt;
&lt;p&gt;My latest addition is a script that creates backup files with all installed OS packages.
In case of disaster if …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2025-12-08:/software/backup-installed-packages</guid><category>Software</category><category>backup</category><category>fish</category><category>free-software</category><category>howto</category><category>linux</category><category>shell</category></item><item><title>Responsible education in computing</title><link>https://blog.fidelramos.net/software/computing-education-1</link><description>&lt;p&gt;My oldest daughter is turning 7 soon, and I have promised her a gift: her first computer.
I'm secretly hoping that she will develop an interest in computing similar to my own.
Not because I want to reproduce my childhood in her (although, of course, I would like to share …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Sun, 09 Nov 2025 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2025-11-09:/software/computing-education-1</guid><category>Software</category><category>education</category><category>free-software</category><category>linux</category></item><item><title>2025 Resolutions Review</title><link>https://blog.fidelramos.net/personal/new-years-resolutions-2025-review</link><description>&lt;p&gt;We are about (okay come on, already past) halfway through the year, so it's a good time to assess progress on my &lt;a href="https://blog.fidelramos.net/personal/new-years-resolutions-2025"&gt;resolutions for 2025&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2025-07-17:/personal/new-years-resolutions-2025-review</guid><category>Personal</category><category>personal</category></item><item><title>Now with self-hosted comments</title><link>https://blog.fidelramos.net/software/self-hosted-comments</link><description>&lt;p&gt;A few days ago I received an email from a reader and &lt;a href="https://zenodotus280.mataroa.blog/"&gt;fellow blogger&lt;/a&gt;, to let me know that he was following my blog and also gave me a shout out about &lt;a href="https://blog.fidelramos.net/personal/new-years-resolutions-2025#blog"&gt;my New Year's resolution to write at least one article every month of 2025&lt;/a&gt;, and that I was …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Mon, 10 Feb 2025 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2025-02-10:/software/self-hosted-comments</guid><category>Software</category><category>blog</category><category>free-software</category><category>howto</category><category>linux</category><category>privacy</category><category>self-hosting</category></item><item><title>New Year's Resolutions for 2025</title><link>https://blog.fidelramos.net/personal/new-years-resolutions-2025</link><description>&lt;p&gt;A year ago &lt;a href="https://blog.fidelramos.net/personal/new-years-resolutions-2024"&gt;I posted my resolutions for 2024&lt;/a&gt;.
I did it with no intention of making it an annual tradition, it was more to get it off my chest.
However some friends recently made me reflect on the resolutions I have kept and those I haven't (that social pressure …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2025-01-06:/personal/new-years-resolutions-2025</guid><category>Personal</category><category>personal</category></item><item><title>New Year's Resolutions for 2024</title><link>https://blog.fidelramos.net/personal/new-years-resolutions-2024</link><description>&lt;p&gt;I have been reflecting on life for several months, perhaps I am going through my particular midlife crisis.&lt;/p&gt;
&lt;p&gt;This year 2024 I want to do my part to correct what is in my power (and worry less about what is not in my power), hence this list of New Year's …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Mon, 01 Jan 2024 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2024-01-01:/personal/new-years-resolutions-2024</guid><category>Personal</category><category>personal</category></item><item><title>My homelab setup</title><link>https://blog.fidelramos.net/software/homelab</link><description>&lt;p&gt;Welcome to my homelab!&lt;/p&gt;
&lt;p&gt;If you don't know what a homelab is, it refers to running servers from your home.
What is a server?
It's basically a computer that is always on, connected to the network, often with no display or input.
For a longer explanation take a look at …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Fri, 29 Dec 2023 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2023-12-29:/software/homelab</guid><category>Software</category><category>backup</category><category>caddy</category><category>debian</category><category>docker</category><category>free-software</category><category>homelab</category><category>linux</category><category>kodi</category><category>nextcloud</category><category>nginx</category><category>privacy</category><category>self-hosting</category></item><item><title>Migrating to fish shell</title><link>https://blog.fidelramos.net/software/fish-shell</link><description>&lt;p&gt;I'm a heavy shell user.
As a programmer I enjoy the power and flexibility of the shell, so I always keep multiple terminals open (just one keystroke away thanks to &lt;a href="https://apps.kde.org/yakuake/"&gt;Yakuake&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I have been using &lt;a href="https://www.gnu.org/software/bash/"&gt;Bash&lt;/a&gt; for as long as I have been a GNU/Linux user, that's 24 years …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Thu, 07 Dec 2023 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2023-12-07:/software/fish-shell</guid><category>Software</category><category>fish</category><category>shell</category><category>linux</category></item><item><title>Replacing Nginx with Caddy in Docker Compose</title><link>https://blog.fidelramos.net/software/switch-nginx-caddy-docker-compose</link><description>&lt;p&gt;The main server in my homelab runs a bunch of services, but the heart of it is a &lt;a href="https://docs.docker.com/compose/"&gt;Docker Compose&lt;/a&gt; configuration, several of them exposed to the Internet via a reverse proxy webserver.&lt;/p&gt;
&lt;p&gt;Before I was using three Docker images to run Nginx, proxy traffic to other services and have …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Thu, 09 Nov 2023 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2023-11-09:/software/switch-nginx-caddy-docker-compose</guid><category>Software</category><category>caddy</category><category>docker</category><category>homelab</category><category>nginx</category></item><item><title>Automating Python code quality</title><link>https://blog.fidelramos.net/software/python-code-quality</link><description>&lt;p&gt;In this article I explain what I mean by code quality and how it benefits developers.&lt;/p&gt;
&lt;p&gt;In the first half I discuss general concepts and workflows that apply to most software projects.
Even if you are not writing Python code you might learn something from it.&lt;/p&gt;
&lt;p&gt;In the second half …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Fri, 23 Jun 2023 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2023-06-23:/software/python-code-quality</guid><category>Software</category><category>programming</category><category>python</category><category>automation</category><category>howto</category><category>free-software</category></item><item><title>Public record: my BTC bet with tripu</title><link>https://blog.fidelramos.net/cryptocurrency/btc-bet</link><description>&lt;p&gt;On the back of the bet on the future relative prices of Bitcoin and US dollars that Balaji and Medlock settled publicly on 2023-05-02
(&lt;a href="https://twitter.com/balajis/status/1653451860488130565"&gt;confirmation by Balaji&lt;/a&gt;;
&lt;a href="https://twitter.com/jdcmedlock/status/1653452817179508736"&gt;confirmation by Medlock&lt;/a&gt;),
today &lt;a href="https://tripu.info/"&gt;tripu&lt;/a&gt; and I agree on the following terms of a bet:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The object of the bet is whether Bitcoin …&lt;/li&gt;&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Sat, 06 May 2023 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2023-05-06:/cryptocurrency/btc-bet</guid><category>Cryptocurrency</category><category>cryptocurrency</category><category>bitcoin</category><category>btc</category><category>fiat</category><category>money</category><category>inflation</category></item><item><title>Privacy-respecting self-hosted Web Analytics</title><link>https://blog.fidelramos.net/software/privacy-respecting-self-hosted-web-analytics</link><description>&lt;p&gt;It all started with a desire: I wanted some basic analytics for this blog to know how it's
doing, which articles are popular and which are the main referrers. But therein lied the
conundrum: I am a privacy zealot, very much against extensive online tracking (just look
at the &lt;a href="https://blog.fidelramos.net/software/web-browser-addons"&gt;browser …&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Fri, 27 May 2022 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2022-05-27:/software/privacy-respecting-self-hosted-web-analytics</guid><category>Software</category><category>privacy</category><category>web</category><category>analytics</category><category>self-hosting</category></item><item><title>My free-software photography workflow</title><link>https://blog.fidelramos.net/photography/photography-workflow</link><description>&lt;p&gt;In this article I present a step-by-step walkthrough of my photography workflow. I won't
go through all the details of every piece of software I mention, they have their own
manuals and documentation for that, I will highlight the operations I do.&lt;/p&gt;
&lt;p&gt;My main goals are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Full ownership of all …&lt;/li&gt;&lt;/ol&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Thu, 31 Mar 2022 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2022-03-31:/photography/photography-workflow</guid><category>Photography</category><category>photography</category><category>free-software</category></item><item><title>Web browser add-ons I use</title><link>https://blog.fidelramos.net/software/web-browser-addons</link><description>&lt;p&gt;This article lists the web browser extensions I use and why.
I will keep it updated from time to time.&lt;/p&gt;
&lt;p&gt;Currently I use &lt;a href="https://brave.com/"&gt;Brave&lt;/a&gt; as my main web browser, and is the one I recommend to everyone.
It offers a great experience by default, with features such as a built-in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Wed, 23 Feb 2022 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2022-02-23:/software/web-browser-addons</guid><category>Software</category><category>browser</category><category>firefox</category><category>web</category><category>addons</category><category>privacy</category><category>security</category><category>cryptocurrency</category></item><item><title>Nextcloud CardDAV and CalDAV discovery with DNS records</title><link>https://blog.fidelramos.net/software/nextcloud-caldav-carddav-dns</link><description>&lt;p&gt;I use a self-hosted Nextcloud instance to hold a lot of my personal data, and that
includes my contacts and calendars. Recently I had to reinstall
&lt;a href="https://www.davx5.com"&gt;DAVx5&lt;/a&gt; on my phone, and I was surprised that the Nextcloud account
was failing to be added.&lt;/p&gt;
&lt;p&gt;The DAVx5 error logs showed that it …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Thu, 17 Feb 2022 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2022-02-17:/software/nextcloud-caldav-carddav-dns</guid><category>Software</category><category>nextcloud</category><category>howto</category><category>self-hosting</category><category>dns</category></item><item><title>Unlocking a LUKS-encrypted partition on boot with an USB drive</title><link>https://blog.fidelramos.net/software/unlock-luks-usb-drive</link><description>&lt;p&gt;The use case I wanted to solve was this: I have a headless server with
a LUKS software-encrypted hard drive, and I want to be able to reboot
it without having to input the password on a keyboard. The solution I
implemented is to create a LUKS keyfile on a …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Fidel Ramos</dc:creator><pubDate>Sun, 13 Oct 2019 00:00:00 +0000</pubDate><guid>tag:blog.fidelramos.net,2019-10-13:/software/unlock-luks-usb-drive</guid><category>Software</category><category>linux</category><category>encryption</category><category>security</category><category>howto</category></item></channel></rss>