Git trailers are just lines of text at the bottom of a commit that take note of some metadata. Common ones are Co-Authored-By , Reported-By , Reviewed-By or Signed-Off-By , all of them autodescriptive I think. Magit has a way of adding trailers, just press C-c TAB or C-c C-i in commit view …
Emacs has no sandbox. Every package you install runs arbitrary Lisp with your full privileges: your files, your credentials, your network. This makes me really scared of installing new packages, or upgrading existing ones. The packages most of us use are not vetted artifacts: MELPA builds from some repository (usually …
We’ve reached the halfway point of 2026, and it’s a good time to review my progress on my 2026 New Year’s resolutions . Spend less time on tasks ❌ Fail. And not because the plan was bad, but because I honestly haven’t followed it (though maybe that’s why it was bad?). Of all the ideas, the only one I usually stick to is writing down the day’s tasks on a post-it note. Sometimes it works and…
The Problem I’ve been using Venice.ai ( referral link if you want to sign up ) for quite some time now for all my artificial intelligence needs. I love it because, unlike most AI platforms, it’s private : When you use Venice’s own models (open-source models running on their …
I've been running a home server with a bunch of self-hosted services (Immich, Jellyfin, Nextcloud...) behind a single Caddy instance using caddy-docker-proxy (documented in this post ). Some of them have genuine public uses, e.g. sharing a folder in Nextcloud or an album in Immich, or connecting to Jellyfin through …
The Problem I realized that this blog uses a lot of code blocks, but it’s not easy to copy them because there’s no Copy button on each block. I looked for a plugin for Pelican that would do this, convinced that there must be one already out there …
I'm going to start a new series of articles on how I'm using AI to develop software or solve technical problems. The articles will follow this structure: Problem Execution Results Lessons and findings In this article, I don't want to delve into ethical, environmental, or political-economic considerations regarding AI, but …
I've been using Syncthing for years to keep files in sync between my laptop, desktop, phone, tablet and home server. It is an amazing piece of software and has been very reliable, with only the occasional conflict, but I have never lost any data. On the contrary, Syncthing file versioning …
I've been using Opencode as my AI coding agent. Very unlike me, I don't have a long list of reasons why I picked it among the many alternatives. I just wanted to get started with an agent system that checked my main requirements: Must be fully open-source. Popular, meaning it's …
In Part 1 I set up Headscale and had every tailnet client use Cloudflare DNS. That works, but it's leaving value on the table: every device that connects to my Tailscale gets whatever DNS servers I set, so I might as well run my own DNS server inside the private …
I had been hearing a lot of people raving about Tailscale as a solution for interconnecting devices, or in other words for creating your own mesh VPN. It does seem great on paper: easy to set up, fast and lightweight, based on an open protocol ( WireGuard ), works everywhere, solves the …
I use an OnlyKey as a hardware security device for a variety of purposes: Common passwords are one keypress away, they get typed automatically. As 2FA in my password manager (KeepassXC), by applying HMAC on the password. SSH connections. GPG encryption and signing. OnlyKey SSH connections are handled through the …
I'm happy to announce the public availability of my Pelican theme: Reflex . It is published on PyPI , which should be the best way for most users to install it. When I first started this blog I decided on Pelican because I had lots of experience with Python, so it would …
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 my dream smart home, networking and home server . I have a clear idea of …
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 …
A while ago I switched to yadm for managing my dotfiles. One of its features I have been enjoying is its bootstrap support . I have been adding idempotent setup operations My latest addition is a script that creates backup files with all installed OS packages. In case of disaster if …
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 …
A few days ago I received an email from a reader and fellow blogger , to let me know that he was following my blog and also gave me a shout out about my New Year's resolution to write at least one article every month of 2025 , and that I was …
A year ago I posted my resolutions for 2024 . 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 …
I have been reflecting on life for several months, perhaps I am going through my particular midlife crisis. 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 …
Welcome to my homelab! 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 …
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 Yakuake ). I have been using Bash for as long as I have been a GNU/Linux user, that's 24 years …
The main server in my homelab runs a bunch of services, but the heart of it is a Docker Compose configuration, several of them exposed to the Internet via a reverse proxy webserver. Before I was using three Docker images to run Nginx, proxy traffic to other services and have …
In this article I explain what I mean by code quality and how it benefits developers. 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. In the second half …
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 ( confirmation by Balaji ; confirmation by Medlock ), today tripu and I agree on the following terms of a bet: The object of the bet is whether Bitcoin …
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 browser …
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. My main goals are: Full ownership of all …
This article lists the web browser extensions I use and why. I will keep it updated from time to time. Currently I use Brave 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 …
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 DAVx5 on my phone, and I was surprised that the Nextcloud account was failing to be added. The DAVx5 error logs showed that it …
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 …