<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Technical Notes</title><link>http://luispa.com/en/posts/</link><description>Recent content in Posts on Technical Notes</description><generator>Hugo -- 0.148.0</generator><language>en-US</language><lastBuildDate>Fri, 03 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://luispa.com/en/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Gitbox, multiple Git accounts without conflicts</title><link>http://luispa.com/en/posts/2026-04-03-gitbox/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2026-04-03-gitbox/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-gitbox.svg" alt="Gitbox Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>If you use AI agents or do &lt;em>vibe coding&lt;/em>, you know how quickly repositories pile up across different accounts and providers. Personal GitHub, work GitHub, or even a self-hosted server like Forgejo&amp;hellip; and suddenly you have dozens of repos cloned with the wrong identity, crossed credentials, and a monumental mess.&lt;/p>
&lt;p>This happened to someone very close to me — a non-technical person who is creating many &amp;ldquo;projects&amp;rdquo; with agentic AI and, like anyone starting with Git for versioning and backups, was going crazy.&lt;/p>
&lt;p>I created &lt;strong>&lt;a href="https://github.com/LuisPalacios/gitbox">Gitbox&lt;/a>&lt;/strong> to help &amp;ldquo;non-developers&amp;rdquo; manage multiple accounts and clones more easily, without them stepping on each other. If you&amp;rsquo;re a developer, think of it as another alternative — and if you like it, go ahead. I use it on all my desktops and headless machines.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Limiting Hugging Face Bandwidth</title><link>http://luispa.com/en/posts/2026-02-22-limitar-hf/</link><pubDate>Sun, 22 Feb 2026 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2026-02-22-limitar-hf/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-shaping.svg" alt="Bandwidth Limiting Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Downloading LLM models locally is something you do occasionally, but when you pull a massive 122B parameter model like &lt;code>Sehyo/Qwen3.5-122B-A10B-NVFP4&lt;/code>, the download hogs the entire connection and leaves the rest of the household without internet. The Hugging Face CLI (&lt;code>huggingface-cli&lt;/code> or &lt;code>hf&lt;/code>) doesn&amp;rsquo;t have a &lt;code>--limit-rate&lt;/code> flag, so you need to find alternatives. In this post I explain two ways to limit bandwidth on Linux using Docker (my preferred method) or Wondershaper at the host level.&lt;/p>
&lt;br clear="left"/></description></item><item><title>File Hierarchy with Apple Creator Studio</title><link>http://luispa.com/en/posts/2026-02-08-apple-creator-studio/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2026-02-08-apple-creator-studio/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-fcp.svg" alt="Final Cut Pro Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;strong>&lt;a href="https://www.apple.com/es/apple-creator-studio/">Apple Creator Studio&lt;/a>&lt;/strong> is Apple&amp;rsquo;s &lt;strong>new&lt;/strong> subscription that bundles its professional creative tools: Final Cut Pro, Motion, Compressor, Logic Pro and Pixelmator Pro. In this post I describe how I organize my video projects to make the most of available disks and keep everything under control.&lt;/p>
&lt;p>The challenge isn&amp;rsquo;t using Final Cut Pro &amp;ndash; which is quite intuitive &amp;ndash; but managing the file hierarchy across disks without ending up with orphaned libraries, overflowing caches, or losing raw footage. After several family projects, I&amp;rsquo;ve consolidated a protocol that works for me.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Sancho Learns Skills</title><link>http://luispa.com/en/posts/2026-01-25-sancho-aprende-skills/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2026-01-25-sancho-aprende-skills/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-sancho-sk.svg" alt="Skills Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>I&amp;rsquo;ve been seeing people giving nicknames to their AI assistant. I&amp;rsquo;ve taken to calling mine &amp;ldquo;Sancho&amp;rdquo; (Panza), a nod to that lovable character &amp;ndash; a practical, down-to-earth, loyal and skeptical fellow who avoids his own &amp;ldquo;hallucinations.&amp;rdquo; Let&amp;rsquo;s see if I can find time here and there to write notes about Agentic AI.&lt;/p>
&lt;p>One of Sancho&amp;rsquo;s key decisions is to rely on concrete abilities &amp;ndash; &lt;strong>Agent Skills&lt;/strong>, an architecture designed for AI models to learn and execute specific procedures in a persistent manner.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Personal Knowledge Management</title><link>http://luispa.com/en/posts/2026-01-24-obsidian-en-casa/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2026-01-24-obsidian-en-casa/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-pkm.svg" alt="PKM Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Personal Knowledge Management (PKM) is a challenge. I&amp;rsquo;ve been taking notes for years, accumulating ideas, notes, meeting notes. I&amp;rsquo;ve tried everything: paper, loose files, Evernote, Notes.app, Craft, Standard Notes and Notion. They all promised to be &amp;ldquo;the definitive one.&amp;rdquo; None of them were.&lt;/p>
&lt;p>The problem isn&amp;rsquo;t the application, it&amp;rsquo;s the &lt;strong>model&lt;/strong>. When your notes live in a proprietary format, on someone else&amp;rsquo;s servers, you&amp;rsquo;re renting your knowledge. And one day the company shuts down, raises prices, or you simply decide to switch&amp;hellip; and you discover that migrating is hell.&lt;/p>
&lt;br clear="left"/></description></item><item><title>The Swiss Army Knife for PDFs</title><link>http://luispa.com/en/posts/2025-11-30-navaja-pdfly/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-11-30-navaja-pdfly/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-pdfly.svg" alt="pdfly logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>I just discovered &lt;strong>&lt;a href="https://github.com/py-pdf/pdfly">pdfly&lt;/a>&lt;/strong> (pronounced PDF-ly), the Swiss army knife for working with PDFs from the command line (CLI). It&amp;rsquo;s an application written purely in Python, designed to extract (meta)data and manipulate PDF files.&lt;/p>
&lt;p>It&amp;rsquo;s based on the &lt;code>fpdf2&lt;/code> and &lt;code>pypdf&lt;/code> libraries, is a free and open-source project with no commercial affiliation, and is licensed under BSD-3-Clause.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Kubernetes 101</title><link>http://luispa.com/en/posts/2025-10-26-k8s-101/</link><pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-10-26-k8s-101/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-k8s.svg" alt="kubernetes logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://kubernetes.io/">Kubernetes&lt;/a> (K8s) is an open-source platform for automating the deployment, scaling, and management of containerized applications. It was built to work with Docker and depending on who you talk to, they&amp;rsquo;ll either say it&amp;rsquo;s hell or a piece of cake. The truth? If you&amp;rsquo;ve struggled with infrastructure (servers, networks), logged many hours with Linux, Docker and containers, it might not be that hellish and it&amp;rsquo;ll depend on how many hours you put in.&lt;/p>
&lt;p>Like most of my posts, this is based on documenting my Home Lab, with hours of testing, things that stop working when you least expect it. But the good thing is you learn a ton and, if you&amp;rsquo;re a bit of a geek, you even have fun. Here&amp;rsquo;s my experience, with tricks, mistakes and everything I wish I&amp;rsquo;d known before starting.&lt;/p>
&lt;br clear="left"/></description></item><item><title>ProxmoxVE Helper Scripts</title><link>http://luispa.com/en/posts/2025-08-14-proxmox-ve/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-08-14-proxmox-ve/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-proxmox-ve.svg" alt="linux router logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://www.proxmox.com/en/proxmox-ve">Proxmox VE&lt;/a> is a powerful and easy-to-use open-source virtualization platform that enables the deployment and management of &lt;strong>virtual machines&lt;/strong> (VMs with &lt;a href="https://www.linux-kvm.org/page/Main_Page">KVM&lt;/a>/&lt;a href="https://www.qemu.org">QEMU&lt;/a>) and &lt;strong>containers&lt;/strong> (CTs based on &lt;a href="https://linuxcontainers.org/lxc/introduction/">LXC&lt;/a>).&lt;/p>
&lt;p>If you have little experience it might be a bit daunting, which is why I recommend this wonderful project: &lt;a href="https://community-scripts.github.io/ProxmoxVE/scripts">Proxmox VE Helper-Scripts&lt;/a>, where you&amp;rsquo;ll find hundreds of scripts to &lt;strong>make your life easier installing CTs or VMs&lt;/strong> on top of your Proxmox.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Windows 11 on Proxmox</title><link>http://luispa.com/en/posts/2025-08-04-proxmox-win/</link><pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-08-04-proxmox-win/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-proxmox-vm-win.svg" alt="vm win on proxmox logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Complete guide with all the detailed steps to install, configure and access a Windows 11 Pro Virtual Machine (VM) running on top of &lt;a href="https://www.proxmox.com/en/proxmox-ve">Proxmox VE&lt;/a>.&lt;/p>
&lt;p>This virtualization platform enables the deployment and management of &lt;strong>virtual machines&lt;/strong> running Windows Server/10/11 using &lt;a href="https://www.linux-kvm.org/page/Main_Page">KVM&lt;/a>/&lt;a href="https://www.qemu.org">QEMU&lt;/a>. With advanced integration through the QEMU Guest Agent, VirtIO drivers, and even UEFI Secure Boot with TPM emulation for Windows 11.&lt;/p>
&lt;br clear="left"/>
&lt;style>
table {
font-size: 0.8em;
}
&lt;/style></description></item><item><title>A Decent Windows</title><link>http://luispa.com/en/posts/2025-08-03-win-decente/</link><pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-08-03-win-decente/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-win-decente.svg" alt="linux development logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>This post is about deflating, removing what I personally believe is unnecessary in Windows 11. In English they call it &lt;em>debloat&lt;/em> or &lt;em>bloatware&lt;/em> removal. In this post I explain how to do it on a fresh Windows install, but it also works on an existing one.&lt;/p>
&lt;p>The point is to remove apps, services and pre-installed junk that aren&amp;rsquo;t essential, consume resources and worst of all, affect performance and UX.&lt;/p>
&lt;br clear="left"/>
&lt;style>
table {
font-size: 0.8em;
}
&lt;/style></description></item><item><title>Proxmox and UPS: Graceful Shutdown</title><link>http://luispa.com/en/posts/2025-07-25-nut/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-07-25-nut/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ups-nut.svg" alt="UPS and NUT logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Having a battery backup system (UPS) is essential for home servers hosting multiple services. But it&amp;rsquo;s not enough for the UPS to supply power for a few minutes: the critical part is that, in case of a prolonged outage, the entire system shuts down in a controlled and orderly manner. In this article I document how I deployed a solution based on NUT on Proxmox to achieve this.&lt;/p></description></item><item><title>Cross-platform CLI Tools</title><link>http://luispa.com/en/posts/2025-07-18-cli-multiplataforma/</link><pubDate>Sat, 19 Jul 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-07-18-cli-multiplataforma/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-cli-multi.svg" alt="Cross-platform logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I share a selection of &lt;strong>cross-platform&lt;/strong> command-line tools that you can use interchangeably on &lt;strong>PowerShell, CMD, WSL2, macOS and Linux&lt;/strong>. These are modern, fast and lightweight utilities that replace or greatly improve classic tools like &lt;code>ls&lt;/code>, &lt;code>cd&lt;/code>, &lt;code>find&lt;/code> or even command history.&lt;/p>
&lt;p>They not only speed up everyday tasks, but also offer a more consistent user experience across systems. They don&amp;rsquo;t depend on specific shells like Bash or Zsh, and work the same whether you use PowerShell, Terminal, Alacritty, VSCode or any modern environment. As I discover new CLI utilities that fit this cross-platform, no-heavy-dependencies approach, I&amp;rsquo;ll keep adding them.&lt;/p></description></item><item><title>Hugo: The Static Site Generator</title><link>http://luispa.com/en/posts/2025-07-13-hugo/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-07-13-hugo/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-hugo.svg" alt="Hugo Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://gohugo.io/">Hugo&lt;/a> is a static site generator written in Go. It allows building fast, secure websites without the need for dynamic servers. It&amp;rsquo;s especially designed for developers, technical writers and anyone who prefers writing content in Markdown and publishing it quickly with a professional design. Perfect for maintaining my technical notes and personal documentation.&lt;/p>
&lt;p>It&amp;rsquo;s known for its compilation speed and for not requiring external dependencies like databases or complex template engines. Ideal for blogs, documentation, portfolios and corporate sites.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Home mDNS</title><link>http://luispa.com/en/posts/2025-03-09-mdns/</link><pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-03-09-mdns/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-mdns.svg" alt="mDNS Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Multicast DNS (mDNS) is a networking protocol designed to resolve hostnames to IP addresses within small networks, without the need for a local DNS server. It requires no configuration (zero-configuration) and uses the same programming interfaces, packet formats and operational semantics as unicast Domain Name System (DNS).&lt;/p>
&lt;p>It was designed to work as either a standalone protocol or alongside standard DNS servers. mDNS can work together with DNS Service Discovery (DNS-SD), a complementary zero-configuration networking technique specified separately in RFC 6763.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Router with PiHole 6</title><link>http://luispa.com/en/posts/2025-03-08-router-pihole/</link><pubDate>Sat, 08 Mar 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-03-08-router-pihole/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-piholednsmasq.svg" alt="Pihole Router Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>A couple of months ago I moved the DHCP and DNS services to my home Linux router and left the Pi-Hole 5 service on a separate virtual machine. Despite everything working perfectly, I hit a snag: troubleshooting from PiHole is complicated because all DNS queries are resolved by the router and PiHole sees nothing. So I decided to redesign the setup.&lt;/p>
&lt;p>In this post I describe how I install Pi-Hole 6 on my Linux router so it provides DNS, DHCP (with dnsmasq) and ad sinkholing. This involves undoing the native dnsmasq installation.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Self-Hosted Bitwarden</title><link>http://luispa.com/en/posts/2025-03-02-bitwarden/</link><pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2025-03-02-bitwarden/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-bitvaultwarden.svg" alt="Bit and Vault warden Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe the process of installing a &amp;ldquo;Bitwarden&amp;rdquo; server. I&amp;rsquo;ve been using their Cloud service for several years, but I&amp;rsquo;ve decided to go with an on-premise home installation.&lt;/p>
&lt;p>While researching I discover with surprise that I have two options, the first is to use the official &lt;strong>Bitwarden self-hosted&lt;/strong> (which consumes quite a few resources and seems complex) or go with a lightweight &lt;strong>Vaultwarden&lt;/strong>, a clone of the former, which apparently installs quickly and is simple.&lt;/p>
&lt;br clear="left"/></description></item><item><title>DHCP and DNS Server</title><link>http://luispa.com/en/posts/2024-12-26-dnsmasq/</link><pubDate>Thu, 26 Dec 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-12-26-dnsmasq/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-dnsmasq.svg" alt="dnsmasq logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how I&amp;rsquo;ve evolved my home DHCP and DNS server. Until now I had a &lt;a href="http://luispa.com/en/posts/2021-06-20-pihole-casero/">PiHole&lt;/a> dedicated on the network to DHCP, DNS and ad sinkhole. I&amp;rsquo;ve decided to migrate to a different configuration, &lt;strong>move both DNS and DHCP services to the home router&lt;/strong> (Linux).&lt;/p>
&lt;p>I realized that when PiHole went down, the rest of the home services would spiral out of control, despite having the router and internet working, so I&amp;rsquo;m leaving PiHole exclusively as the ad sinkhole.&lt;/p>
&lt;br clear="left"/></description></item><item><title>HA and TPLink</title><link>http://luispa.com/en/posts/2024-12-21-ha-tplink/</link><pubDate>Sat, 21 Dec 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-12-21-ha-tplink/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-hass-switch.svg" alt="HA Switch Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I explain how to control a PoE port on a TP-Link switch (&lt;code>TL-SG108PE&lt;/code>) from Home Assistant. Since these small switches don&amp;rsquo;t support &lt;code>SNMP&lt;/code>, I&amp;rsquo;ll use &lt;code>curl&lt;/code> to authenticate, turn on, turn off or query the status of a specific port. The use case is being able to turn on or off a ReoLink PoE camera connected to one of the ports from Home Assistant.&lt;/p>
&lt;br clear="left"/></description></item><item><title>CRLF vs LF</title><link>http://luispa.com/en/posts/2024-09-28-crlf-vs-lf/</link><pubDate>Sat, 28 Sep 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-09-28-crlf-vs-lf/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-crlf.svg" alt="CRLF Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>When working in software development, one of the most subtle yet crucial aspects you need to be aware of is the difference between line endings in text files between Windows (CRLF &lt;code>\r\n&lt;/code>) and Linux/MacOS (LF &lt;code>\n&lt;/code>).&lt;/p>
&lt;p>This small detail can cause big problems if not handled correctly, especially when working in mixed environments &amp;ndash; &lt;strong>version control conflicts&lt;/strong>, &lt;strong>script incompatibilities&lt;/strong>, &lt;strong>compilation or execution issues&lt;/strong>. I wrote this post to have a handy reference for dealing with this topic, including a few tricks.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Git Multi-Account</title><link>http://luispa.com/en/posts/2024-09-21-git-multicuenta/</link><pubDate>Sat, 21 Sep 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-09-21-git-multicuenta/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-git-multi.svg" alt="GIT multi-account Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>This post will walk you through the process of setting up and using multiple accounts with one or more Git providers (GitHub, GitLab, Gitea). I describe the two options I recommend: &lt;strong>HTTPS + Git Credential Manager&lt;/strong> and &lt;strong>SSH multi-account&lt;/strong>.&lt;/p>
&lt;p>The first, HTTPS + Git Credential Manager, is the one I use most, because it&amp;rsquo;s compatible with CLI and/or GUI tools like Visual Studio, VSCode, Git Desktop, Gitkraken, etc. The second option, SSH multi-account, I delegate to &amp;ldquo;headless&amp;rdquo; machines, servers I connect to remotely via CLI or VSCode remote that need to clone repositories and work on them.&lt;/p>
&lt;br clear="left"/></description></item><item><title>VMWare on Windows</title><link>http://luispa.com/en/posts/2024-08-26-win-vmware/</link><pubDate>Mon, 26 Aug 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-08-26-win-vmware/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-vmware-vm.svg" alt="vmware win logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Virtualization allows running multiple operating systems on the same machine without making changes to the main disk. In this post I show how I install &lt;strong>VMWare Workstation Pro&lt;/strong> as a host on a Windows 11 Pro and how I create a Windows 11 Pro Guest without TPM 2.0, for the purpose of having an isolated development environment.&lt;/p>
&lt;br clear="left"/>
&lt;style>
table {
font-size: 0.8em;
}
&lt;/style></description></item><item><title>Windows for Development</title><link>http://luispa.com/en/posts/2024-08-25-win-desarrollo/</link><pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-08-25-win-desarrollo/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-win-desarrollo.svg" alt="Windows for development logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe the steps to set up a Windows 11 machine as a development workstation for a cross-platform environment — Linux, macOS, and Windows. This is not oriented towards &lt;em>Microsoft/Windows-only&lt;/em> software development, but rather for those who like to develop on and for multiple platforms and environments.&lt;/p>
&lt;p>I start from a clean Windows installation (in English), with nothing installed. I took advantage of needing to set up a &lt;a href="http://luispa.com/en/posts/2024-08-23-dual-linux-win/">dual boot&lt;/a> and configured the operating system in a &lt;a href="http://luispa.com/en/posts/2024-08-24-win-decente-obsoleto/">lightweight&lt;/a> manner. The post starts with the CLI and WSL2, and in the second part I cover the tools and programming languages.&lt;/p>
&lt;br clear="left"/>
&lt;style>
table {
font-size: 0.8em;
}
&lt;/style></description></item><item><title>A Decent Windows (Obsolete)</title><link>http://luispa.com/en/posts/2024-08-24-win-decente-obsoleto/</link><pubDate>Sat, 24 Aug 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-08-24-win-decente-obsoleto/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-windows.svg" alt="windows logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I explain how I configure a Windows 11 that I&amp;rsquo;m going to use for software development, testing or demos. I don&amp;rsquo;t need frills since it won&amp;rsquo;t have sensitive data, I want its essence, bare-bones, with few applications, some browsing and that&amp;rsquo;s it. In the end it became a technical exercise &amp;ndash; removing everything I can, ads, Edge, extras, installing minimal drivers, a local account, having it boot and be available as soon as possible.&lt;/p>
&lt;p>Note: a year later I decided to create a new &lt;a href="http://luispa.com/en/posts/2025-08-03-win-decente/">decent Windows 11&lt;/a> (2025).&lt;/p>
&lt;br clear="left"/>
&lt;style>
table {
font-size: 0.8em;
}
&lt;/style></description></item><item><title>Dualboot Linux Windows</title><link>http://luispa.com/en/posts/2024-08-23-dual-linux-win/</link><pubDate>Fri, 23 Aug 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-08-23-dual-linux-win/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-dual-boot.svg" alt="dualboot logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Dualboot means having two operating systems on the same computer and choosing which one to boot during the boot phase. My goal is to prepare my PC for dualboot and install Windows 11 Pro. Normally you install Windows first and then Linux, but in my case I already have Linux (Ubuntu) working perfectly and using the entire 4TB disk.&lt;/p>
&lt;p>I&amp;rsquo;m going to &amp;ldquo;add&amp;rdquo; Windows to enable dualboot. I describe the entire process, how I did it, how I resized the hard drive, added Windows and customized the boot menu.&lt;/p>
&lt;br clear="left"/>
&lt;style>
table {
font-size: 0.8em;
}
&lt;/style></description></item><item><title>Linux for Development</title><link>http://luispa.com/en/posts/2024-07-25-linux-desarrollo/</link><pubDate>Thu, 25 Jul 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-07-25-linux-desarrollo/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-linux-desarrollo.svg" alt="linux development logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe my configuration log for setting up a Linux (Ubuntu) machine as a development workstation. I install several graphical and command-line applications that are essential for my workflow.&lt;/p>
&lt;p>Starting from a fresh Ubuntu installation, the installation order can be varied, but I recommend (if your Ubuntu is freshly installed) that you follow the same order to see the same results.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Home PBX</title><link>http://luispa.com/en/posts/2024-07-13-asterisk/</link><pubDate>Sat, 13 Jul 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-07-13-asterisk/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-asterisk.svg" alt="asterisk logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://www.asterisk.org/">&lt;code>Asterisk&lt;/code>&lt;/a> is a free software program (under GPL license) that provides PBX (Private Branch Exchange) functionality. You can connect phones to make calls between them within your home (or office) and even access external communications, to the PSTN (like Movistar) or by connecting to a VoIP provider or ISDN links (basic or primary).&lt;/p>
&lt;br clear="left"/></description></item><item><title>Software KVM</title><link>http://luispa.com/en/posts/2024-06-13-kvm/</link><pubDate>Thu, 13 Jun 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-06-13-kvm/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-barrier.svg" alt="barrier logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In environments where you need to operate multiple computers simultaneously, efficiency is key. There are several products that mimic the functionality of a KVM switch (Keyboard, Video, Mouse), which historically allowed you to use a single keyboard and mouse to control multiple computers by physically turning a dial. In this post I describe how I install and use Barrier, a software KVM solution, without the need for additional hardware.&lt;/p>
&lt;p>My use case involves controlling three computers with a single keyboard and mouse. Two of them are desktops &amp;ndash; a Mac and a Windows PC. The third is a Windows/Linux laptop. The difficulty lies with the Mac, where I encountered a curious and nearly insurmountable challenge.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Terminals with tmux</title><link>http://luispa.com/en/posts/2024-04-25-tmux/</link><pubDate>Thu, 25 Apr 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-04-25-tmux/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-tmux.svg" alt="tmux logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://github.com/tmux/tmux/wiki">&lt;code>tmux&lt;/code>&lt;/a> is a terminal multiplexer that allows you to have multiple sessions (shells) in a single window. From your Mac, Linux, or even Windows (with WSL) terminal, in a single window you can have multiple active sessions, switch between them, view them simultaneously, enter one and disconnect (they keep running in the background), and reconnect to it in the future.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Goodbye Bash, Hello Zsh!</title><link>http://luispa.com/en/posts/2024-04-23-zsh/</link><pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-04-23-zsh/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-zsh.svg" alt="zsh logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>I&amp;rsquo;ve decided to migrate my CLI from the reliable and well-known &lt;em>&lt;code>bash&lt;/code>&lt;/em> to the powerful and versatile &lt;em>&lt;code>zsh&lt;/code>&lt;/em>. It&amp;rsquo;s an extended evolution of the Bourne Shell (sh) &amp;ndash; it not only inherits many of Bash&amp;rsquo;s familiar features but also introduces a series of new functionalities, plugin support, and custom themes. Apple adopted Zsh as the default shell some time ago, and I still needed to make the switch on my Linux systems, including WSL2 on Windows.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Mac Users from CLI</title><link>http://luispa.com/en/posts/2024-02-16-mac-users/</link><pubDate>Fri, 16 Feb 2024 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2024-02-16-mac-users/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-logout.svg" alt="user logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>To find all available users on a macOS system from the command line, you can use a Bash script. The macOS operating system, like other Unix-like systems, stores user information in various system files, primarily in &lt;code>/etc/passwd&lt;/code>. macOS uses Open Directory for user management, so you can use commands like &lt;code>dscl&lt;/code> to query this information.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Rclone and Mac</title><link>http://luispa.com/en/posts/2023-11-13-rclone/</link><pubDate>Mon, 13 Nov 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-11-13-rclone/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-rclone.svg" alt="rclone logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I explain how I manage my data on a Mac. My goal is to work at full speed from anywhere with the most frequently used data, have extra storage for less accessed data, and of course have multiple backups.&lt;/p>
&lt;p>The source data lives on the Mac&amp;rsquo;s internal SSD and a couple of external drives. The replicas and backups are on iCloud, a remote Linux server, and Google Drive. Multiple locations, different technologies, speeds, and needs. The &lt;code>rclone&lt;/code> tool is perfect for helping me maintain multiple synchronized backups.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Linux on MacBook Air 2015</title><link>http://luispa.com/en/posts/2023-08-06-linux-macbook/</link><pubDate>Sun, 06 Aug 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-08-06-linux-macbook/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-linux-macbook.svg" alt="linux macbook logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how to repurpose an old MacBook Air (2015) by installing Linux on it and extending its useful life. Over time, these Macs become nearly useless machines, painfully slow and with insufficient memory.&lt;/p>
&lt;p>Why not take advantage of them with Linux? A 2015 MacBook Air with 8GB of RAM and a 128GB drive can become a very useful machine.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Daily Reboot with Systemd</title><link>http://luispa.com/en/posts/2023-07-23-systemd-reboot/</link><pubDate>Sun, 23 Jul 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-07-23-systemd-reboot/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-systemd-reboot.svg" alt="systemd reboot logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>To perform a full reboot you can use the &lt;code>systemctl reboot&lt;/code> command, but how can you schedule it at a specific time? In this post I explain how to do it using &lt;a href="https://systemd.io/">systemd&lt;/a>, the boot manager and administration system for Linux distributions.&lt;/p>
&lt;p>Among the &lt;em>&lt;strong>systemd timer services&lt;/strong>&lt;/em> there&amp;rsquo;s a little-known feature that allows you to schedule an automatic reboot whenever you want.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Customizing VSCode</title><link>http://luispa.com/en/posts/2023-06-20-vscode/</link><pubDate>Tue, 20 Jun 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-06-20-vscode/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-vscode.svg" alt="vscode logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I cover how to customize VSCode. I work with GitHub in a cross-platform, multi-account environment and want to sync my settings, use the same extensions, and leverage licenses. I explain the multi-account topic, synchronization of my global and per-project preferences (settings), and extensions.&lt;/p>
&lt;p>I normally use Windows, Linux, and macOS, and I&amp;rsquo;ve chosen VSCode as my editor/IDE. The goal is to have a unified work experience &amp;ndash; launch VSCode on any operating system, clone a personal or professional project, keeping the same extensions and settings, and even using the options to connect to a host, tunnel, WSL, etc.&lt;/p>
&lt;br clear="left"/></description></item><item><title>MAC with Vagrant</title><link>http://luispa.com/en/posts/2023-04-23-mac-vagrant/</link><pubDate>Sun, 23 Apr 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-04-23-mac-vagrant/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-mac-vagrant.svg" alt="vagrant kvm logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://www.vagrantup.com/">Vagrant&lt;/a> lets you create and configure virtual development environments that are lightweight and reproducible. It does so by creating virtual machines and requires a &lt;strong>Hypervisor&lt;/strong>. It doesn&amp;rsquo;t care which hypervisor you use &amp;ndash; it supports VirtualBox, KVM, Docker, VMWare, and &lt;a href="https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins#providers">30+ others&lt;/a>. It&amp;rsquo;s a fantastic tool for spinning up &lt;strong>Servers&lt;/strong> for our software development projects.&lt;/p>
&lt;p>This guide only works, for now, with &lt;strong>INTEL&lt;/strong> chips. I haven&amp;rsquo;t been able to make it work on a Mac with ARM (Apple Silicon) as the host yet.&lt;/p>
&lt;br clear="left"/></description></item><item><title>MAC for Development</title><link>http://luispa.com/en/posts/2023-04-15-mac-desarrollo/</link><pubDate>Sat, 15 Apr 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-04-15-mac-desarrollo/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-mac-desarrollo.svg" alt="mac development logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe my configuration log for setting up a Mac (INTEL or ARM) as a development machine. I install several graphical and command-line applications that are important for using a Mac as a development workstation.&lt;/p>
&lt;p>The installation order can be varied, but this is what I recommend starting from a fresh macOS installation.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Socketed SSH</title><link>http://luispa.com/en/posts/2023-04-14-ssh-socket/</link><pubDate>Fri, 14 Apr 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-04-14-ssh-socket/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-socketed-ssh.svg" alt="socketed ssh logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://systemd.io">Systemd&lt;/a> is a system used in Linux to manage boot and system processes. Its &lt;strong>&amp;ldquo;units&amp;rdquo;&lt;/strong> are configuration files that describe the processes and services that &lt;code>systemd&lt;/code> manages.&lt;/p>
&lt;p>One of these units is &lt;code>systemd.socket&lt;/code>, which starts the corresponding daemon when a connection is established through a socket with the machine. A socket is a form of communication between processes over a network or within the system. By creating a unit of this type, we ask it to listen on a specific socket and start a specific service when a connection is received.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Home Automation and Networking</title><link>http://luispa.com/en/posts/2023-04-08-networking-avanzado/</link><pubDate>Sat, 08 Apr 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-04-08-networking-avanzado/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-homenet.svg" alt="linux router logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>I&amp;rsquo;m sharing my &lt;strong>home networking&lt;/strong> setup with the option to &lt;em>knock on the door&lt;/em> for on-demand access from the Internet. Today&amp;rsquo;s home networks end up supporting multiple services, and with the rise of home automation things get complicated, so I&amp;rsquo;ve decided to document it to keep track of everything in the future.&lt;/p>
&lt;p>The number of devices grows and maintaining the network of a smart and automated home becomes a priority. I dedicate this post to those &lt;em>Geeks&lt;/em> or &lt;em>Techies&lt;/em> who, like me, have been deep into the &lt;em>complexity of networking in a home automation network&lt;/em> for a long time.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Proxmox: VM from Template</title><link>http://luispa.com/en/posts/2023-04-07-proxmox-plantilla/</link><pubDate>Fri, 07 Apr 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-04-07-proxmox-plantilla/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-proxmox-plantilla.svg" alt="Linux router logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://www.proxmox.com/en/proxmox-ve">Proxmox VE&lt;/a> is a powerful and easy-to-use open-source virtualization platform that enables the deployment and management of &lt;strong>virtual machines&lt;/strong> (VMs with &lt;a href="https://www.linux-kvm.org/page/Main_Page">KVM&lt;/a>/&lt;a href="https://www.qemu.org">QEMU&lt;/a>) and &lt;strong>containers&lt;/strong> (CTs based on &lt;a href="https://linuxcontainers.org/lxc/introduction/">LXC&lt;/a>). Proxmox offers &lt;strong>Templates&lt;/strong> to minimize the creation time of new instances of these virtual machines or containers.&lt;/p>
&lt;p>In this post I focus on how to create my own &lt;strong>Virtual Machine Templates&lt;/strong> along with a &lt;strong>cloud-based image&lt;/strong> and &lt;strong>cloud-init&lt;/strong>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Raspberry Pi OS</title><link>http://luispa.com/en/posts/2023-03-02-raspberry-pi-os/</link><pubDate>Thu, 02 Mar 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-03-02-raspberry-pi-os/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-raspberry.svg" alt="Linux router logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe the installation process of a &lt;strong>Raspberry &lt;code>Pi4B Rev1.5&lt;/code>&lt;/strong> (also tested with the &lt;code>Pi3B+&lt;/code>) with the &lt;strong>Raspberry Pi OS (64-bit)&lt;/strong> operating system (based on Debian). I normally use these Pis as single-purpose mini servers or for testing and lab work.&lt;/p>
&lt;br clear="left"/></description></item><item><title>NUC, KVM, and Open vSwitch</title><link>http://luispa.com/en/posts/2023-02-11-ovsnuc/</link><pubDate>Sat, 11 Feb 2023 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2023-02-11-ovsnuc/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ovs-kvm-nuc.svg" alt="OVS Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Configuration of a NUC with Ubuntu + Open vSwitch + VLANs + KVM + VMs using netplan and Open vSwitch. The networking is based on OVS and Netplan for both the Host and the virtual machines.&lt;/p>
&lt;p>Last year I documented &lt;a href="http://luispa.com/en/posts/2022-02-20-openvswitch/">here&lt;/a> how to configure Open vSwitch with KVM. In this post I&amp;rsquo;ll get straight to the point, showing the desired final state and how to configure it.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Eclipse + Java on a Git Repository</title><link>http://luispa.com/en/posts/2022-10-27-quidomi/</link><pubDate>Sun, 27 Nov 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-10-27-quidomi/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-eclipse-gitea.svg" alt="QuiDomi logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Every now and then I get the urge to practice my rusty Java skills. I&amp;rsquo;m going to write a small program to monitor devices on my home network using Java and SNMP. I like to keep my development projects on my private git server (based on &lt;code>gitea&lt;/code>). In this post I describe the process of creating a git repository, a Java Project with Eclipse, and how to connect them together. If you use GitHub, the process is identical, although the UI options may look slightly different compared to Gitea.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Home Assistant on a NUC</title><link>http://luispa.com/en/posts/2022-10-12-hass-nuc/</link><pubDate>Wed, 12 Oct 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-10-12-hass-nuc/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-hass-nuc.svg" alt="Solax Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Installation of Home Assistant OS (HAOS) on an Intel NUC5i5RYK — a very powerful machine for this task, but I had it available and wanted to make use of it. I started by setting it up on a Raspberry Pi4B, moved to a virtual machine (with considerably better performance) on KVM, and in this post I describe how I did the installation on a NUC.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Connecting HASS with Node-RED</title><link>http://luispa.com/en/posts/2022-10-02-nodered-hass/</link><pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-10-02-nodered-hass/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-nodered-hass.svg" alt="Node-RED logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>I explain how I connected Node-RED with my Home Assistant (HASS), considering that they run on separate servers. They are deployed on different virtual machines, to allow independent maintenance and improve their performance.&lt;/p>
&lt;p>For your reference, I created another post &lt;a href="http://luispa.com/en/posts/2022-10-01-nodered-docker/">here&lt;/a> where I describe the Node-RED installation using Alpine and Docker underneath, running as a virtual machine on my KVM server.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Node-RED on Docker</title><link>http://luispa.com/en/posts/2022-10-01-nodered-docker/</link><pubDate>Sat, 01 Oct 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-10-01-nodered-docker/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-nodered.svg" alt="Node-RED logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Node-RED is a programming tool that allows you to connect hardware devices, APIs, and cloud services through creative workflows. Everything is done from the browser, and it supports dozens of built-in and third-party nodes.&lt;/p>
&lt;p>Here I&amp;rsquo;ll explain the installation process, on a virtual machine with Alpine and Docker underneath. If you&amp;rsquo;re interested, I have another post describing how I &lt;a href="http://luispa.com/en/posts/2022-10-02-nodered-hass/">integrate it with my &lt;em>Home Assistant&lt;/em>&lt;/a>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Gitea and Traefik on Docker</title><link>http://luispa.com/en/posts/2022-04-03-gitea-docker/</link><pubDate>Sun, 03 Apr 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-04-03-gitea-docker/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-gitea-docker.svg" alt="Gitea traefik docker logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe the installation of &lt;a href="http://gitea.io">Gitea&lt;/a> (GIT server) and &lt;a href="https://doc.traefik.io/traefik/">Traefik&lt;/a> (LetsEncrypt SSL certificate termination), along with &lt;a href="https://redis.io">Redis&lt;/a> (cache) and &lt;a href="https://www.mysql.com">MySQL&lt;/a> (DB). I install all applications as Docker containers on an Alpine Linux running as a virtual machine on my KVM server. In the previous post I explained what Gitea is and how to &lt;a href="http://luispa.com/en/posts/2022-03-26-gitea-vm/">set it up directly on a virtual machine&lt;/a> (without Docker).&lt;/p>
&lt;br clear="left"/></description></item><item><title>Gitea on a VM</title><link>http://luispa.com/en/posts/2022-03-26-gitea-vm/</link><pubDate>Sat, 26 Mar 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-03-26-gitea-vm/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-gitea-vm.svg" alt="GIT Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://git-scm.com">GIT&lt;/a> is a distributed version control system, and we all know the famous centralization services &lt;a href="https://github.com">GitHub&lt;/a> and &lt;a href="https://about.gitlab.com">GitLab&lt;/a>. I recently came across a promising alternative called &lt;strong>&lt;a href="http://gitea.io">Gitea - Git with a cup of tea&lt;/a>&lt;/strong> and decided to install it on a virtual machine.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Alpine for Running Containers</title><link>http://luispa.com/en/posts/2022-03-20-alpine-docker/</link><pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-03-20-alpine-docker/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-docker-a.svg" alt="Docker logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how to install Alpine Linux in a virtual machine on my QEMU/KVM server and how to install Docker on it. I needed, for proof-of-concept and home services, the ability to run containers on a Docker host that takes up &amp;ldquo;very little&amp;rdquo; space. Can you install a Docker Host on top of a Virtual Machine? The answer is a resounding yes — in fact, it&amp;rsquo;s an excellent place to do so, especially in lab environments, home setups, and small deployments.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Open vSwitch and KVM</title><link>http://luispa.com/en/posts/2022-02-20-openvswitch/</link><pubDate>Sun, 20 Feb 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-02-20-openvswitch/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ovs-kvm.svg" alt="OVS Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>It was about time I played with Open vSwitch (OVS). I&amp;rsquo;m going to take advantage of setting up a new server with Ubuntu Server, KVM, Virtual Machines, and VLANs to build everything with Open vSwitch instead of the traditional Linux Bridge.&lt;/p>
&lt;p>OVS is a virtual bridge from which I&amp;rsquo;ll manage all network connections for both the server itself and its virtual machines. Some VMs will receive a Trunk interface while the majority will connect in Access mode to a specific VLAN.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Remote Virt-Manager</title><link>http://luispa.com/en/posts/2022-02-19-virt-manager/</link><pubDate>Sat, 19 Feb 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-02-19-virt-manager/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-virtmanager.svg" alt="Virt Manager Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>The goal is to run &lt;strong>&lt;a href="https://virt-manager.org">virt-manager&lt;/a>&lt;/strong> from my Mac to manage VMs on a couple of remote KVM/QEMU host servers without needing to install an X11 environment on them. I&amp;rsquo;ve documented two options: the first uses a local &lt;strong>virtual machine&lt;/strong> (VirtualBox/Parallels/&amp;hellip;) with Ubuntu and a minimal GUI environment (just &lt;code>Xorg/X11&lt;/code> and &lt;code>virt-manager&lt;/code>), the second uses &lt;strong>HomeBrew&lt;/strong>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Home Assistant SolaX</title><link>http://luispa.com/en/posts/2022-02-13-hass-solax/</link><pubDate>Sun, 13 Feb 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-02-13-hass-solax/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-hass-solax.svg" alt="Solax Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>I describe how I integrated my photovoltaic installation into Home Assistant, featuring Axitec panels, a SolaX Inverter, and a pair of Triple Power batteries. After trying several options, I settled on the &lt;strong>MODBUS/TCP integration&lt;/strong> which works locally via LAN and exposes more data than the other options.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Grafana, InfluxDB and Telegraf Server</title><link>http://luispa.com/en/posts/2022-02-06-grafana-influxdb/</link><pubDate>Sun, 06 Feb 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-02-06-grafana-influxdb/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-grafana-influxdb.svg" alt="Grafana and InfluxDB Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>I set up these three services on a dedicated server at home to monitor my home automation. InfluxDB is a database super-optimized for working with time series. Grafana lets you create dashboards and graphs from multiple sources, and Telegraf is a lightweight agent that collects, processes, and sends data to our database.&lt;/p>
&lt;p>I&amp;rsquo;ve decided to install all three on an Ubuntu 20.04 LTS server, on a virtual machine in KVM, so they&amp;rsquo;re consumed by the rest of the home automation elements: the Home Assistant server and other devices that can write to InfluxDB.&lt;/p>
&lt;br clear="left"/></description></item><item><title>HASS migrate Grafana and InfluxDB</title><link>http://luispa.com/en/posts/2022-02-06-hass-migrar-datos/</link><pubDate>Sun, 06 Feb 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-02-06-hass-migrar-datos/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-hass-out-grafana-influxdb.svg" alt="Migration Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>I&amp;rsquo;ve &lt;strong>migrated the InfluxDB/Grafana services from my Home Assistant to an external server&lt;/strong>. Moving the service and setting it up on another server isn&amp;rsquo;t too difficult. What did take me a while was figuring out how to export and import data between the InfluxDB instances and how to adapt the old Grafana Dashboard to use &lt;code>Flux&lt;/code>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>IT Operations Portal</title><link>http://luispa.com/en/posts/2022-02-05-itop/</link><pubDate>Sat, 05 Feb 2022 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2022-02-05-itop/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-itop.svg" alt="iTop Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>To have control and management over IT assets, equipment, and labs, I&amp;rsquo;ve been trying &lt;a href="https://www.combodo.com/itop-193">iTop&lt;/a>. iTop stands for IT Operations Portal. It&amp;rsquo;s a complete web-based ITIL service management tool that includes a fully customizable CMDB, a helpdesk system, and a document management tool. It offers bulk import tools and web services to integrate with your IT. I set up a small lab to test it.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Jupyter Lab with Chrome on Mac</title><link>http://luispa.com/en/posts/2021-10-19-jupyter-browser/</link><pubDate>Tue, 19 Oct 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-10-19-jupyter-browser/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-jupyterchrome.svg" alt="Jupyter Chrome Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>I describe how to change the default browser for Jupyter Lab on a Mac. If we don&amp;rsquo;t do anything and launch jupyter lab from the command line, the system&amp;rsquo;s default browser (Safari) will be invoked. If you want to change it to Chrome, follow the steps below.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Git Cheat Sheet</title><link>http://luispa.com/en/posts/2021-10-10-git-cheatsheet/</link><pubDate>Sun, 10 Oct 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-10-10-git-cheatsheet/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-git-cheatsheet.svg" alt="GIT Cheatsheet Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>This post contains &lt;strong>my GIT cheat sheet&lt;/strong>, various reminders I use as a programmer — common commands or situations. It comes in handy for example when I accidentally delete a file and want to recover it, check a previous version of code, or ignore a modification in a specific file.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Home Pi-hole</title><link>http://luispa.com/en/posts/2021-06-20-pihole-casero/</link><pubDate>Sun, 20 Jun 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-06-20-pihole-casero/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-pihole.svg" alt="pihole logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Pi-hole is a DNS (and DHCP) server that protects your devices from unwanted content, without needing to install any software on the clients in your network. &lt;strong>Its use case is to act as a sinkhole for the advertising that floods today&amp;rsquo;s networks&lt;/strong>. Yes, a small Linux PC with Pi-hole on your home network to prevent tons of ads from reaching you while you browse.&lt;/p>
&lt;br clear="left"/></description></item><item><title>User Systemd Services</title><link>http://luispa.com/en/posts/2021-05-30-systemd-usuario/</link><pubDate>Sun, 30 May 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-05-30-systemd-usuario/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-systemd.svg" alt="systemd logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>The &lt;a href="https://systemd.io/">systemd&lt;/a> manager allows configuring services from a normal system user. These &lt;em>&lt;strong>systemd user services&lt;/strong>&lt;/em> are a little-known but very useful feature. It consists of being able to create and use &lt;code>.service&lt;/code> files from a user&amp;rsquo;s local directory that run with their privileges.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Vagrant with Libvirt KVM</title><link>http://luispa.com/en/posts/2021-05-15-vagrant-kvm/</link><pubDate>Sat, 15 May 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-05-15-vagrant-kvm/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-vagrantkvm.svg" alt="vagrant kvm logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://www.vagrantup.com/">Vagrant&lt;/a> creates and runs virtual machines, relying on virtualization providers such as Virtualbox, KVM, Docker, VMWare, and &lt;a href="https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins#providers">30+ others&lt;/a>. It will always default to launching the VM with Virtualbox unless we explicitly specify a different provider. In this guide I explain how I set up &lt;strong>Vagrant with the Libvirt KVM provider on Linux&lt;/strong>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>JupyterLabs to PDF</title><link>http://luispa.com/en/posts/2021-05-11-jupyterlabs-a-pdf/</link><pubDate>Tue, 11 May 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-05-11-jupyterlabs-a-pdf/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-jupyterprint.svg" alt="jupyter pdf logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how I managed, from a MacOS, to correctly convert Jupyter Lab exercises to PDF in different environments. Converting Jupyter Lab notebooks to PDF is not easy due to the multiple variants (images, links) they can contain. I&amp;rsquo;ve tried intermediate exports, &lt;code>pandoc&lt;/code>, apps, without much success.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Preview Notebooks on MacOS</title><link>http://luispa.com/en/posts/2021-04-24-ver-notebooks/</link><pubDate>Sat, 08 May 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-04-24-ver-notebooks/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-jupyterview.svg" alt="jupyter view logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>MacOS doesn&amp;rsquo;t include an option in Finder to preview Jupyter Lab notebooks (.ipynb). There are several options but one of the quickest and simplest is to install &lt;code>ipynb-quicklook&lt;/code>&lt;/p>
&lt;br clear="left"/></description></item><item><title>Python and JupyterLab on MacOS</title><link>http://luispa.com/en/posts/2021-04-30-python-jupyter/</link><pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-04-30-python-jupyter/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-python.svg" alt="python-jupyter logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://www.python.org">Python&lt;/a> is a multi-paradigm interpreted programming language. &lt;a href="https://pypi.org/project/pip/">&lt;code>pip&lt;/code>&lt;/a> manages packages from PyPI (the &lt;a href="https://pypi.org">Python Package Index&lt;/a>). &lt;a href="https://pipenv.pypa.io/en/latest/">PipEnv&lt;/a> lets you create a virtual environment to run your application in isolation with the necessary libraries. &lt;a href="https://jupyter.org">Jupyter Lab&lt;/a> is a web application that serves as a bridge between code and explanatory text.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Preview Markdown on MacOS</title><link>http://luispa.com/en/posts/2021-04-24-ver-markdown/</link><pubDate>Sat, 24 Apr 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-04-24-ver-markdown/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-mdview.svg" alt="mdview logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>MacOS doesn&amp;rsquo;t include an option in &lt;strong>Finder&lt;/strong> to preview Markdown files (.md). There are several solutions available, and one of the quickest and simplest is to install &lt;code>qlmarkdown&lt;/code>&lt;/p>
&lt;br clear="left"/></description></item><item><title>My new blog!!</title><link>http://luispa.com/en/posts/2021-04-19-nuevo-blog/</link><pubDate>Mon, 19 Apr 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-04-19-nuevo-blog/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-jekyll.svg" alt="Jekyll Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how I set up this static blog &amp;ldquo;built&amp;rdquo; with &lt;a href="http://jekyllrb.com">jekyll&lt;/a> and hosted on &lt;a href="https://pages.github.com">GitHub Pages&lt;/a>. The source files are in the repository &lt;a href="https://github.com/LuisPalacios/LuisPalacios.github.io">LuisPalacios.github.io&lt;/a>. The site is finally configured on my domain: &lt;a href="https://www.luispa.com">https://www.luispa.com&lt;/a>&lt;/p>
&lt;br clear="left"/></description></item><item><title>GIT in Detail</title><link>http://luispa.com/en/posts/2021-04-17-git-en-detalle/</link><pubDate>Sat, 17 Apr 2021 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2021-04-17-git-en-detalle/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-git.svg" alt="Logo GIT" width="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="https://git-scm.com">GIT&lt;/a> is a distributed, free and open-source version control system, designed to handle everything from small to very large projects with speed and efficiency. It does not depend on a central repository; multiple users can install GIT and communicate with each other without going through a central server. The thing is that would be unmanageable, so &amp;ldquo;central (remote) servers or repositories&amp;rdquo; are very useful and necessary, &lt;strong>the most famous being &lt;a href="https://github.com">GitHub&lt;/a>, &lt;a href="https://about.gitlab.com">GitLab&lt;/a> and &lt;a href="https://gitea.io/en-us/">Gitea&lt;/a>&lt;/strong>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>SSH and X11 as root</title><link>http://luispa.com/en/posts/2017-02-11-x11-desde-root/</link><pubDate>Sat, 11 Feb 2017 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2017-02-11-x11-desde-root/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ssh-xorg.svg" alt="ssh xorg logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>The goal is to &lt;strong>make X11 (X-Window) applications work &amp;ldquo;also&amp;rdquo; from root&lt;/strong>. Making them work from a regular user is straightforward, but &lt;strong>then switching to root with &lt;code>su/sudo&lt;/code> and having X11 work is not allowed in Linux&lt;/strong>. The X11 connection &lt;em>only&lt;/em> belongs to the user you logged in with via SSH.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Move KVM guest</title><link>http://luispa.com/en/posts/2016-07-07-mover-guest-kvm/</link><pubDate>Thu, 07 Jul 2016 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2016-07-07-mover-guest-kvm/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-move.svg" alt="Move logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>I recently had to move a virtual machine from one of my servers to another on the same network. As always I relied on Google, although it&amp;rsquo;s a straightforward operation I do almost everything from the shell, so here&amp;rsquo;s the process for future reference&amp;hellip;&lt;/p>
&lt;br clear="left"/></description></item><item><title>Remote WireShark</title><link>http://luispa.com/en/posts/2016-06-05-wireshark-remoto/</link><pubDate>Sun, 05 Jun 2016 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2016-06-05-wireshark-remoto/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-wireshark.svg" alt="Wireshark logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I explain how I launch a network traffic capture (&lt;code>tcpdump&lt;/code>) on a remote Linux machine (&lt;a href="http://luispa.com/en/posts/2015-05-17-gentoo-pi2/">Pi2 with Gentoo&lt;/a>) and have it forwarded to &lt;strong>Wireshark&lt;/strong> running on my computer (Mac). We&amp;rsquo;ll get tcpdump&amp;rsquo;s output to become Wireshark&amp;rsquo;s input. It seems like magic but you&amp;rsquo;ll see it&amp;rsquo;s extremely simple. You&amp;rsquo;ll need to know &lt;code>ssh&lt;/code> and &lt;code>sudo&lt;/code>, a couple of prerequisites for making this so easy.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Intel Quick Sync Video</title><link>http://luispa.com/en/posts/2016-04-09-quicksync/</link><pubDate>Sat, 09 Apr 2016 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2016-04-09-quicksync/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-intel-quicksync.svg" alt="logo Quicksync" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post explico cómo intento que Tvheadend use las capacidades de transcodificación (encode y decode) por Hardware ofrecidas por Intel Quick Sync Video (por ejemplo en sus NUC’s). El objetivo es que los streams de video utilicen mucho menos ancho de banda. Pensaba que NO me iba a hacer falta debido a mi caso de uso (Tvheadend para ver canales iptv en un entorno sin problemas de ancho de banda, router Linux + Fibra y clientes raspberry con Kodi por cable Ethernet)&amp;hellip;&lt;/p>
&lt;br clear="left"/></description></item><item><title>Hotkey for MacOS Apps</title><link>http://luispa.com/en/posts/2016-03-21-hotkey-macos/</link><pubDate>Mon, 21 Mar 2016 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2016-03-21-hotkey-macos/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-hotkey.svg" alt="hotkey logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>I need to be able to open a program by pressing a HotKey, regardless of which application has focus. Applications typically don&amp;rsquo;t come with this option but there are cases where it could be useful.&lt;/p>
&lt;br clear="left"/></description></item><item><title>SMB2 on Linux</title><link>http://luispa.com/en/posts/2016-03-06-smb-linux/</link><pubDate>Sun, 06 Mar 2016 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2016-03-06-smb-linux/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-samba.svg" alt="samba logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how to provide a file sharing service over the network with SMB2 (Samba). It&amp;rsquo;s a very simple example, with a Linux machine as the server and a Mac OSX as the client. I have another &lt;a href="http://luispa.com/en/posts/2014-05-02-smb-en-qnap/">post&lt;/a> about SMB and QNAP that is very similar.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Tvheadend and TV (2016)</title><link>http://luispa.com/en/posts/2016-02-28-tvh-movistar-2016/</link><pubDate>Sun, 28 Feb 2016 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2016-02-28-tvh-movistar-2016/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-tvh2016.svg" alt="logo Tvheadend" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>I published this post on Wordpress in February 2016 so, although outdated, you have a reference on how to install Tvheadend on a Linux server to watch IPTV channels via my Movistar Fusion TV contract. I used Tvheadend 4.1-1566 and a new EPG download method.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Expand a qcow2 disk</title><link>http://luispa.com/en/posts/2015-12-08-ampliar-qcow2/</link><pubDate>Tue, 08 Dec 2015 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2015-12-08-ampliar-qcow2/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-qcow2.svg" alt="qcow2 logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how to expand the hard drive of a qcow2 virtual machine (VM) on KVM. In the example I will expand the 10GB hard drive of my &lt;strong>cortafuegix&lt;/strong> VM to 15GB.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Gentoo on Raspberry Pi2</title><link>http://luispa.com/en/posts/2015-05-17-gentoo-pi2/</link><pubDate>Sun, 17 May 2015 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2015-05-17-gentoo-pi2/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-pi-gentoo.svg" alt="Pi Gentoo Logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how to install Gentoo Linux on a Raspberry Pi 2. I needed to compile Tvheadend for ARMv7 and set it up on a MOIPro, so I opted to use Gentoo as a development machine for ARM. Regardless of the use case, if you follow these steps you&amp;rsquo;ll have a Gentoo Linux on an RPi2.&lt;/p>
&lt;br clear="left"/></description></item><item><title>WebGrab+Plus with Tvheadend</title><link>http://luispa.com/en/posts/2015-02-03-webgrabplus/</link><pubDate>Tue, 03 Feb 2015 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2015-02-03-webgrabplus/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-tvhWebGrab+.svg" alt="WebGrab+ logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;a href="http://www.webgrabplus.com/">WebGrab+Plus&lt;/a> is a multi-site EPG guide collector capable of working incrementally. It downloads the programming schedule and generates an XMLTV format file that you can use to feed your media center or Tvheadend. I first tried installing it on MacOSX and now (this article) it&amp;rsquo;s time to install it on my Linux server and of course integrate it with &lt;a href="https://tvheadend.org/">Tvheadend&lt;/a>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Media Center Pi+KODI/XBMC</title><link>http://luispa.com/en/posts/2015-01-31-media-center/</link><pubDate>Sat, 31 Jan 2015 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2015-01-31-media-center/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-kodi-pi.png" alt="logo Pi Kodi" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Por el 2015 andaba yo buscando un Media Center casero de siguiente generación conectado a mi TV, un “pata negra” que no sea demasiado caro, que pueda conectarse por cable ethernet a un “mundo” de múltiples fuentes que incluya música, fotos, videos familiares o películas o series (tanto SD o HD) y que sea capaz de reproducir TV en tiempo real (SD o HD), que soporte bitrates altos (~40Mbps) independiente de cual sea la fuente (antena, satélite, internet).&lt;/p>
&lt;br clear="left"/></description></item><item><title>Tvheadend and TV (2015)</title><link>http://luispa.com/en/posts/2015-01-31-tvh-movistar-2015/</link><pubDate>Sat, 31 Jan 2015 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2015-01-31-tvh-movistar-2015/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-tvh2015.svg" alt="logo Tvheadend" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>I published this post on Wordpress in January 2015 so, although outdated, you have a reference on how to install Tvheadend with XBMC/KODI as a client to watch Movistar TV channels.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Home Media Center</title><link>http://luispa.com/en/posts/2015-01-26-media-center-casero/</link><pubDate>Mon, 26 Jan 2015 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2015-01-26-media-center-casero/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-kodi-0.svg" alt="Kodi logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Having a DVD player is so 90&amp;rsquo;s. Nowadays it&amp;rsquo;s possible to combine everything into a single home Media Center with one remote to watch streaming internet channels, DTT or Satellite channels, Movistar TV, movies from your DVDs or series, home videos, listen to your music, or browse your photo collection.&lt;/p>
&lt;br clear="left"/></description></item><item><title>My First Steps with Docker</title><link>http://luispa.com/en/posts/2014-11-01-inicio-docker/</link><pubDate>Sat, 01 Nov 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-11-01-inicio-docker/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-microservices1.svg" alt="microservices logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>From what I understood, it&amp;rsquo;s a tool that allows you to package &amp;ldquo;Linux applications and all their dependencies&amp;rdquo; into a self-contained virtual container (something like sandboxes). That doesn&amp;rsquo;t tell us much, but what if I tell you that you can run your Linux applications (thanks to the Docker daemon) always in the same way on any platform? (for example Windows or macOS by using a super lightweight virtual machine, VirtualBox-style). Now that&amp;rsquo;s cool.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Ethernet Bridge</title><link>http://luispa.com/en/posts/2014-10-19-bridge-ethernet/</link><pubDate>Sun, 19 Oct 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-10-19-bridge-ethernet/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-bridge-eth.svg" alt="Linux router logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Proof of concept to extend my home network to a remote site through the internet, from where I could consume Movistar&amp;rsquo;s IPTV services. I used a pair of Raspberry Pi 2s, connected to each other by a pair of IPSec tunnels.&lt;/p>
&lt;p>This post is related to &lt;a href="http://luispa.com/en/posts/2014-10-05-router-linux/">Linux Router for Movistar&lt;/a> and &lt;a href="http://luispa.com/en/posts/2014-10-18-movistar-bajo-demanda/">video on demand&lt;/a> with Fullcone NAT on Linux.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Video on Demand for Movistar</title><link>http://luispa.com/en/posts/2014-10-18-movistar-bajo-demanda/</link><pubDate>Sat, 18 Oct 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-10-18-movistar-bajo-demanda/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-linux-rtsp.svg" alt="Linux router logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>The IPTV video streams used by Movistar come in two types: regular channels (Multicast/UDP) and video on demand (Unicast/UDP). In this post I describe what needs to be done on the &lt;a href="http://luispa.com/en/posts/2014-10-05-router-linux/">Linux router for Movistar&lt;/a> to make &amp;ldquo;Video on Demand&amp;rdquo; work. They use the &lt;code>RTSP&lt;/code> protocol which requires our router to support &lt;strong>Full Cone NAT&lt;/strong>.&lt;/p>
&lt;p>The set-top boxes request videos via RTSP from their control server, but the video is sent from a different server with an unknown IP, so if we do nothing the video traffic will be dropped. Let&amp;rsquo;s see how to solve this.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Linux Router for Movistar</title><link>http://luispa.com/en/posts/2014-10-05-router-linux/</link><pubDate>Sun, 05 Oct 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-10-05-router-linux/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-linux-router.svg" alt="Linux router logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>This post describes what&amp;rsquo;s behind (at a technical level) the IP service offered by Movistar Fusion FTTH (Fiber) and how to replace the router they install with a GNU/Linux-based machine that will act as a Router (along with an Ethernet Switch) to provide the same Data, Television (IPTV), and Voice (VoIP) services.&lt;/p>
&lt;p>After reading this post, I recommend continuing with &lt;a href="http://luispa.com/en/posts/2014-10-18-movistar-bajo-demanda/">video on demand for Movistar&lt;/a> and the lab to extend your local network to a remote site with an &lt;a href="http://luispa.com/en/posts/2014-10-19-bridge-ethernet/">Ethernet Bridge&lt;/a>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>OpenVPN Server</title><link>http://luispa.com/en/posts/2014-09-14-vpn-server-en-linux/</link><pubDate>Sun, 14 Sep 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-09-14-vpn-server-en-linux/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-openvpn.svg" alt="OpenVPN logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>In this technical post I&amp;rsquo;ll describe how to set up a home VPN Server based on &lt;a href="https://openvpn.net/">OpenVPN&lt;/a>, which remains the best solution today despite being more complex to implement. The goal is to have access to the internal services of my home network from the internet.&lt;/p>
&lt;br clear="left"/></description></item><item><title>IPtables with nflog</title><link>http://luispa.com/en/posts/2014-08-31-log-iptables/</link><pubDate>Sun, 31 Aug 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-08-31-log-iptables/</guid><description>&lt;img src="http://luispa.com/img/posts/2014-08-31-log-iptables-01.jpg" alt="log logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Geek quote: &amp;ldquo;Logging what happens is wise&amp;hellip;&amp;rdquo; In the past I used &lt;code>ULOG&lt;/code> to analyze which packets were being dropped by &lt;code>iptables&lt;/code>, but since it&amp;rsquo;s been marked as deprecated I&amp;rsquo;ve switched to &lt;code>NFLOG&lt;/code>.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Wake the Mac for Backup</title><link>http://luispa.com/en/posts/2014-06-23-despierta-para-backup/</link><pubDate>Mon, 23 Jun 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-06-23-despierta-para-backup/</guid><description>&lt;img src="http://luispa.com/img/posts/2014-06-23-despierta-para-backup-06.jpg" alt="backup logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;strong>Making backups should be mandatory&lt;/strong>. Unfortunately, most of us have learned over the years that this statement is dead serious. The problem is that doing it is a real hassle, so any program or method that automates it is welcome.&lt;/p>
&lt;br clear="left"/></description></item><item><title>SMB2 on my QNAP</title><link>http://luispa.com/en/posts/2014-05-02-smb-en-qnap/</link><pubDate>Fri, 02 May 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-05-02-smb-en-qnap/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-qnap.jpg" alt="QNAP logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>&lt;strong>What are &amp;ldquo;SMB&amp;rdquo;, &amp;ldquo;CIFS&amp;rdquo;, &amp;ldquo;Samba&amp;rdquo; and the version confusion?&lt;/strong> SMB (Server Message Block) is an application-level network protocol that enables sharing of files, printers, and other resources between devices on a network. Originally developed by IBM in the 1980s, it was later adopted and extensively improved by Microsoft, becoming the foundation of file sharing in Windows networks.&lt;/p>
&lt;p>The SMB protocol has evolved through multiple versions over the years. SMB1 (also known as SMBv1 or NetBIOS) was the initial implementation but had security and performance limitations. Microsoft introduced significant improvements with SMB2 in Windows Vista and Windows Server 2008, and later SMB3 with Windows 8 and Windows Server 2012, with each version adding better performance, improved security, and new features like data encryption and compression.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Plex Media Server</title><link>http://luispa.com/en/posts/2014-04-23-plex-media-server/</link><pubDate>Wed, 23 Apr 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-04-23-plex-media-server/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-pms.png" alt="Plex logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Plex Media Server lets you transform your computer into a multimedia center. It uses the digital content and sources you have available, such as media files or other multimedia sources. It organizes content into different sections to serve them to clients.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Clean Up PPT</title><link>http://luispa.com/en/posts/2014-02-20-limpiar-slides/</link><pubDate>Thu, 20 Feb 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-02-20-limpiar-slides/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-vb.svg" alt="Visual Basic logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I explain how to create a &lt;strong>VBA Macro&lt;/strong> to remove unused slide masters (patterns) from a PowerPoint file, dedicated to my friend Alfonso. :-)&lt;/p>
&lt;p>&lt;strong>Why do so many masters accumulate in PowerPoint?&lt;/strong> When we work with presentations from different sources — such as corporate templates, third-party presentations, or when we copy slides from multiple files — PowerPoint automatically imports and keeps all associated design patterns (slide masters), even if we&amp;rsquo;re not actively using them in our presentation.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Monitoring with PeakHour</title><link>http://luispa.com/en/posts/2014-01-24-monitor-peakhour/</link><pubDate>Fri, 24 Jan 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-01-24-monitor-peakhour/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-peakhour.png" alt="PeakHour logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>Not long ago I came across PeakHour, a tool that lives in the macOS menu bar with a very pleasant look &amp;amp; feel, capable of visualizing your home network traffic in real time. To achieve this it uses the SNMP protocol — you register all devices that support the protocol and it polls them sequentially, displaying the traffic passing through them.&lt;/p>
&lt;br clear="left"/></description></item><item><title>PlexConnect on Linux</title><link>http://luispa.com/en/posts/2014-01-07-plexconnect-en-linux/</link><pubDate>Tue, 07 Jan 2014 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2014-01-07-plexconnect-en-linux/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-plex.svg" alt="Plex" width="150px" style="float:left; padding-right:25px" />
&lt;p>Notes on configuring PlexConnect on Linux to use Plex with an Apple TV3. I only had to modify the DHCP Server, add 3 redirections with iptables, and configure/start the PlexConnect program.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Static IP with Systemd on Gentoo</title><link>http://luispa.com/en/posts/2013-12-23-ip-fija-systemd/</link><pubDate>Mon, 23 Dec 2013 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2013-12-23-ip-fija-systemd/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ip.svg" alt="Static IP" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this post I describe how to configure a static IP address on a Linux machine based on Gentoo. Normally this operating system comes pre-configured to load a dynamic IP address via the DHCP protocol.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Linux on 'Fusion for Mac'</title><link>http://luispa.com/en/posts/2013-12-20-linux-vm-fusion/</link><pubDate>Fri, 20 Dec 2013 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2013-12-20-linux-vm-fusion/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-fusion.png" alt="VM Fusion logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>In this article I describe how to install Gentoo Linux 3.10.17 (64-bit, with &lt;strong>systemd + Gnome 3&lt;/strong>) in a virtual machine (VM) running on VMWare Fusion 6 for Mac OSX version 10.9 (Mavericks). This should work the same way on a different host, such as Parallels or VMWare Workstation for Windows or Linux.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Putting a Disk to Sleep on MacOSX</title><link>http://luispa.com/en/posts/2013-12-10-dormir-disco-macos/</link><pubDate>Tue, 10 Dec 2013 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2013-12-10-dormir-disco-macos/</guid><description>&lt;img src="http://luispa.com/img/posts/2013-12-10-dormir-disco-macos-01.png" alt="Sleep logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>I need to increase the time MacOSX waits before putting an external Thunderbolt hard drive to sleep. The default is ten minutes. The command to view the current configuration is:&lt;/p>
&lt;br clear="left"/></description></item><item><title>MemTest86 on iMac</title><link>http://luispa.com/en/posts/2013-11-24-memtest86-en-imac/</link><pubDate>Sun, 24 Nov 2013 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2013-11-24-memtest86-en-imac/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-memtest.png" alt="Memtest logo" width="150px" style="float:left; padding-right:25px" />
&lt;p>For my new 27&amp;quot; iMac (late 2013) I purchased a 32GB memory upgrade. Apple supports installing third-party memory &amp;ndash; I bought the upgrade from Crucial.com and one of the things I wanted to do was thoroughly test the memory.&lt;/p>
&lt;br clear="left"/></description></item><item><title>ntopng on Gentoo</title><link>http://luispa.com/en/posts/2013-11-22-ntopng-en-gentoo/</link><pubDate>Fri, 22 Nov 2013 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2013-11-22-ntopng-en-gentoo/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ntopng.svg" alt="ntopng Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Not too long ago &amp;ldquo;ntopng&amp;rdquo; 1.1 was released and it&amp;rsquo;s time to give it a look. It&amp;rsquo;s not yet in Portage, so thanks to the Eigenlay overlay (via layman) I found what I needed to perform the installation.&lt;/p>
&lt;br clear="left"/></description></item><item><title>HFS+ on Linux</title><link>http://luispa.com/en/posts/2012-12-15-hfs-en-linux/</link><pubDate>Sat, 15 Dec 2012 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2012-12-15-hfs-en-linux/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-hfsplus.svg" alt="HFS+" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>HFS+ (Hierarchical File System Plus), also known as MacOS Plus, is the format used by default on the partition where Apple&amp;rsquo;s MacOS operating system is installed. It was released as an improvement over the original HFS in 1998 and introduced in macOS from version 8.1 onwards.&lt;/p>
&lt;br clear="left"/></description></item><item><title>AFP on Gentoo Linux</title><link>http://luispa.com/en/posts/2012-11-15-afp-en-linux/</link><pubDate>Thu, 15 Nov 2012 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2012-11-15-afp-en-linux/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-afp.svg" alt="Apple AFP" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>To share disks from my Gentoo Linux server with Mac OS X machines on the home network, the protocol I used during 2012 was the Apple Filing Protocol (AFP). Later on, Apple started recommending SMB.&lt;/p>
&lt;br clear="left"/></description></item><item><title>FireWire on Linux on Mac</title><link>http://luispa.com/en/posts/2012-11-15-firewire-en-gentoo/</link><pubDate>Thu, 15 Nov 2012 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2012-11-15-firewire-en-gentoo/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-firewire.svg" alt="firewire" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>IEEE 1394 (FireWire) is a type of connection for various platforms, designed for high-speed serial data input and output. It is commonly used for connecting digital devices such as digital cameras and camcorders. Apple implemented it for connecting hard drives.&lt;/p>
&lt;br clear="left"/></description></item><item><title>NTP Time Service</title><link>http://luispa.com/en/posts/2009-05-01-servicio-horario-ntp/</link><pubDate>Fri, 01 May 2009 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2009-05-01-servicio-horario-ntp/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ntp.svg" alt="ntp" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>NTP is an Internet protocol for synchronizing computer system clocks by exchanging data packets over networks with variable latency. NTP uses the UDP protocol as its transport layer (port &lt;code>123&lt;/code>). It is designed to withstand the effects of variable latency.&lt;/p>
&lt;p>In this post I explain how to configure NTP on a GNU/Linux machine (Gentoo distribution) to set and maintain the correct time, while also serving as a time server on your home network.&lt;/p>
&lt;br clear="left"/></description></item><item><title>SSH on Linux</title><link>http://luispa.com/en/posts/2009-02-01-ssh/</link><pubDate>Sun, 01 Feb 2009 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2009-02-01-ssh/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-ssh.svg" alt="ssh logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>The SSH service is the first thing you should configure on a Linux system. With OpenSSH you get a set of tools &amp;ndash; including ssh, sshd, scp, etc. &amp;ndash; that allow you to enable secure remote shell access to your machine. If you come from the &amp;ldquo;telnet&amp;rdquo; era, you should forget about it; its replacement today is SSH.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Rsync on MacOS</title><link>http://luispa.com/en/posts/2006-11-13-rsync-en-macosx/</link><pubDate>Mon, 13 Nov 2006 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2006-11-13-rsync-en-macosx/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-rsync.svg" alt="rsync logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>The rsync program comes bundled with Mac OSX, but if you need a more recent version with additional features &amp;ndash; such as metadata preservation, extended character support, or cross-platform character handling &amp;ndash; you&amp;rsquo;ll need to install one of the latest versions.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Hello World</title><link>http://luispa.com/en/posts/2002-11-11-hola-mundo/</link><pubDate>Mon, 11 Nov 2002 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2002-11-11-hola-mundo/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-nibbleblog.svg" alt="nimble image" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>Back in 2002 I decided to start sharing technical documentation and this is the first post I ever wrote. It explains how to work with a piece of software called Nibbleblog. Shortly after I moved to Wordpress and nowadays (2021) I have switched to &amp;ldquo;Jekyll + GitHub Pages&amp;rdquo;. I&amp;rsquo;m keeping this first &lt;code>post&lt;/code> as a reference.&lt;/p>
&lt;br clear="left"/></description></item><item><title>Pending Migration</title><link>http://luispa.com/en/posts/2000-01-01-pendientes/</link><pubDate>Sat, 01 Jan 2000 00:00:00 +0000</pubDate><guid>http://luispa.com/en/posts/2000-01-01-pendientes/</guid><description>&lt;img src="http://luispa.com/img/posts/logo-migrate.svg" alt="Migration Logo" width="150px" height="150px" style="float:left; padding-right:25px" />
&lt;p>This post only serves as a reference to track the posts I still need to migrate. My blog started with Nibbleblog but later evolved to Wordpress, and nowadays (2021) I have switched to &amp;ldquo;Jekyll + GitHub Pages&amp;rdquo;. In this post I keep references to the Wordpress files that I need to redirect to the new posts once I have migrated them.&lt;/p>
&lt;br clear="left"/></description></item></channel></rss>