[{"title":"Gitbox, multiple Git accounts without conflicts","summary":" If you use AI agents or do vibe coding, you know how quickly repositories pile up across different accounts and providers. Personal GitHub, work GitHub, or even a self-hosted server like Forgejo\u0026hellip; and suddenly you have dozens of repos cloned with the wrong identity, crossed credentials, and a monumental mess.\nThis happened to someone very close to me — a non-technical person who is creating many \u0026ldquo;projects\u0026rdquo; with agentic AI and, like anyone starting with Git for versioning and backups, was going crazy.\nI created Gitbox to help \u0026ldquo;non-developers\u0026rdquo; manage multiple accounts and clones more easily, without them stepping on each other. If you\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2026-04-03-gitbox/","tags":["git","devtools","productivity"],"categories":["tools"],"cover":{"image":"/img/posts/logo-gitbox.svg"}},{"title":"Limiting Hugging Face Bandwidth","summary":" Downloading LLM models locally is something you do occasionally, but when you pull a massive 122B parameter model like Sehyo/Qwen3.5-122B-A10B-NVFP4, the download hogs the entire connection and leaves the rest of the household without internet. The Hugging Face CLI (huggingface-cli or hf) doesn\u0026rsquo;t have a --limit-rate 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.\n","permalink":"http://luispa.com/en/posts/2026-02-22-limitar-hf/","tags":["hugging-face","docker","linux","bandwidth","tc","llm","wondershaper"],"categories":["software"],"cover":{"image":"/img/posts/logo-shaping.svg"}},{"title":"File Hierarchy with Apple Creator Studio","summary":" Apple Creator Studio is Apple\u0026rsquo;s new 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.\nThe challenge isn\u0026rsquo;t using Final Cut Pro \u0026ndash; which is quite intuitive \u0026ndash; but managing the file hierarchy across disks without ending up with orphaned libraries, overflowing caches, or losing raw footage. After several family projects, I\u0026rsquo;ve consolidated a protocol that works for me.\n","permalink":"http://luispa.com/en/posts/2026-02-08-apple-creator-studio/","tags":["final-cut-pro","motion","video","editing","macos","workflow"],"categories":["productivity"],"cover":{"image":"/img/posts/logo-fcp.svg"}},{"title":"Sancho Learns Skills","summary":" I\u0026rsquo;ve been seeing people giving nicknames to their AI assistant. I\u0026rsquo;ve taken to calling mine \u0026ldquo;Sancho\u0026rdquo; (Panza), a nod to that lovable character \u0026ndash; a practical, down-to-earth, loyal and skeptical fellow who avoids his own \u0026ldquo;hallucinations.\u0026rdquo; Let\u0026rsquo;s see if I can find time here and there to write notes about Agentic AI.\nOne of Sancho\u0026rsquo;s key decisions is to rely on concrete abilities \u0026ndash; Agent Skills, an architecture designed for AI models to learn and execute specific procedures in a persistent manner.\n","permalink":"http://luispa.com/en/posts/2026-01-25-sancho-aprende-skills/","tags":["ai","claude","learning","agents","skills","guidelines"],"categories":["ai"],"cover":{"image":"/img/posts/logo-sancho-sk.svg"}},{"title":"Personal Knowledge Management","summary":" Personal Knowledge Management (PKM) is a challenge. I\u0026rsquo;ve been taking notes for years, accumulating ideas, notes, meeting notes. I\u0026rsquo;ve tried everything: paper, loose files, Evernote, Notes.app, Craft, Standard Notes and Notion. They all promised to be \u0026ldquo;the definitive one.\u0026rdquo; None of them were.\nThe problem isn\u0026rsquo;t the application, it\u0026rsquo;s the model. When your notes live in a proprietary format, on someone else\u0026rsquo;s servers, you\u0026rsquo;re renting your knowledge. And one day the company shuts down, raises prices, or you simply decide to switch\u0026hellip; and you discover that migrating is hell.\n","permalink":"http://luispa.com/en/posts/2026-01-24-obsidian-en-casa/","tags":["documentation","kiss","pkm","markdown","obsidian","nextcloud","wireguard","webdav","homelab"],"categories":["productivity"],"cover":{"image":"/img/posts/logo-pkm.svg"}},{"title":"The Swiss Army Knife for PDFs","summary":" I just discovered pdfly (pronounced PDF-ly), the Swiss army knife for working with PDFs from the command line (CLI). It\u0026rsquo;s an application written purely in Python, designed to extract (meta)data and manipulate PDF files.\nIt\u0026rsquo;s based on the fpdf2 and pypdf libraries, is a free and open-source project with no commercial affiliation, and is licensed under BSD-3-Clause.\n","permalink":"http://luispa.com/en/posts/2025-11-30-navaja-pdfly/","tags":["documentation","pdf","signature","certificate","merge","compression","manipulation"],"categories":["tools"],"cover":{"image":"/img/posts/logo-pdfly.svg"}},{"title":"Kubernetes 101","summary":" Kubernetes (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\u0026rsquo;ll either say it\u0026rsquo;s hell or a piece of cake. The truth? If you\u0026rsquo;ve struggled with infrastructure (servers, networks), logged many hours with Linux, Docker and containers, it might not be that hellish and it\u0026rsquo;ll depend on how many hours you put in.\nLike 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\u0026rsquo;re a bit of a geek, you even have fun. Here\u0026rsquo;s my experience, with tricks, mistakes and everything I wish I\u0026rsquo;d known before starting.\n","permalink":"http://luispa.com/en/posts/2025-10-26-k8s-101/","tags":["linux","containers","docker","k8s","kubernetes","K3s","k9s","kubectl-a","kvm","qemu","cloud-init","virtualization"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-k8s.svg"}},{"title":"ProxmoxVE Helper Scripts","summary":" Proxmox VE is a powerful and easy-to-use open-source virtualization platform that enables the deployment and management of virtual machines (VMs with KVM/QEMU) and containers (CTs based on LXC).\nIf you have little experience it might be a bit daunting, which is why I recommend this wonderful project: Proxmox VE Helper-Scripts, where you\u0026rsquo;ll find hundreds of scripts to make your life easier installing CTs or VMs on top of your Proxmox.\n","permalink":"http://luispa.com/en/posts/2025-08-14-proxmox-ve/","tags":["linux","pve","proxmox","kvm","qemu","cloud-init","alpine","debian","ubuntu","template","virtualization","container","ct"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-proxmox-ve.svg"}},{"title":"Windows 11 on Proxmox","summary":" Complete guide with all the detailed steps to install, configure and access a Windows 11 Pro Virtual Machine (VM) running on top of Proxmox VE.\nThis virtualization platform enables the deployment and management of virtual machines running Windows Server/10/11 using KVM/QEMU. With advanced integration through the QEMU Guest Agent, VirtIO drivers, and even UEFI Secure Boot with TPM emulation for Windows 11.\n","permalink":"http://luispa.com/en/posts/2025-08-04-proxmox-win/","tags":["windows","win11","qemu","virtualization","proxmox","vm"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-proxmox-vm-win.svg"}},{"title":"A Decent Windows","summary":" This post is about deflating, removing what I personally believe is unnecessary in Windows 11. In English they call it debloat or bloatware removal. In this post I explain how to do it on a fresh Windows install, but it also works on an existing one.\nThe point is to remove apps, services and pre-installed junk that aren\u0026rsquo;t essential, consume resources and worst of all, affect performance and UX.\n","permalink":"http://luispa.com/en/posts/2025-08-03-win-decente/","tags":["linux","wsl","windows","win11","ubuntu","development","dualboot","clean","lean","tiny","mini"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-win-decente.svg"}},{"title":"Proxmox and UPS: Graceful Shutdown","summary":" Having a battery backup system (UPS) is essential for home servers hosting multiple services. But it\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2025-07-25-nut/","tags":["proxmox","ups","battery-backup","linux","nut"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-ups-nut.svg"}},{"title":"Cross-platform CLI Tools","summary":" In this post I share a selection of cross-platform command-line tools that you can use interchangeably on PowerShell, CMD, WSL2, macOS and Linux. These are modern, fast and lightweight utilities that replace or greatly improve classic tools like ls, cd, find or even command history.\nThey not only speed up everyday tasks, but also offer a more consistent user experience across systems. They don\u0026rsquo;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\u0026rsquo;ll keep adding them.\n","permalink":"http://luispa.com/en/posts/2025-07-18-cli-multiplataforma/","tags":["cli","cross-platform","linux","macos","windows","powershell","zsh","bash"],"categories":["terminal","tools","productivity"],"cover":{"image":"/img/posts/logo-cli-multi.svg"}},{"title":"Hugo: The Static Site Generator","summary":" Hugo is a static site generator written in Go. It allows building fast, secure websites without the need for dynamic servers. It\u0026rsquo;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.\nIt\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2025-07-13-hugo/","tags":["hugo","markdown","static sites","devops","go","generators"],"categories":["web development","tools"],"cover":{"image":"/img/posts/logo-hugo.svg"}},{"title":"Home mDNS","summary":" 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).\nIt 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.\n","permalink":"http://luispa.com/en/posts/2025-03-09-mdns/","tags":["home automation","networking","advanced","linux","pve","proxmox","ubuntu","avahi","dhcp","dns","home","assistant","hass","grafana"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-mdns.svg"}},{"title":"Router with PiHole 6","summary":" 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.\nIn 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.\n","permalink":"http://luispa.com/en/posts/2025-03-08-router-pihole/","tags":["home automation","networking","advanced","linux","pve","proxmox","ubuntu","dhcp","dns","dnsmasq","pihole","adlist"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-piholednsmasq.svg"}},{"title":"Self-Hosted Bitwarden","summary":" In this post I describe the process of installing a \u0026ldquo;Bitwarden\u0026rdquo; server. I\u0026rsquo;ve been using their Cloud service for several years, but I\u0026rsquo;ve decided to go with an on-premise home installation.\nWhile researching I discover with surprise that I have two options, the first is to use the official Bitwarden self-hosted (which consumes quite a few resources and seems complex) or go with a lightweight Vaultwarden, a clone of the former, which apparently installs quickly and is simple.\n","permalink":"http://luispa.com/en/posts/2025-03-02-bitwarden/","tags":["security","password","manager","credentials","authenticator","linux","pve","proxmox","lxc"],"categories":["administration"],"cover":{"image":"/img/posts/logo-bitvaultwarden.svg"}},{"title":"DHCP and DNS Server","summary":" In this post I describe how I\u0026rsquo;ve evolved my home DHCP and DNS server. Until now I had a PiHole dedicated on the network to DHCP, DNS and ad sinkhole. I\u0026rsquo;ve decided to migrate to a different configuration, move both DNS and DHCP services to the home router (Linux).\nI 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\u0026rsquo;m leaving PiHole exclusively as the ad sinkhole.\n","permalink":"http://luispa.com/en/posts/2024-12-26-dnsmasq/","tags":["home automation","networking","advanced","linux","pve","proxmox","ubuntu","dhcp","dns","dnsmasq"],"categories":["administration"],"cover":{"image":"/img/posts/logo-dnsmasq.svg"}},{"title":"HA and TPLink","summary":" In this post I explain how to control a PoE port on a TP-Link switch (TL-SG108PE) from Home Assistant. Since these small switches don\u0026rsquo;t support SNMP, I\u0026rsquo;ll use curl 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.\n","permalink":"http://luispa.com/en/posts/2024-12-21-ha-tplink/","tags":["ha","hass","home","assistant","iot","switch","poe"],"categories":["home automation"],"cover":{"image":"/img/posts/logo-hass-switch.svg"}},{"title":"CRLF vs LF","summary":" 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 \\r\\n) and Linux/MacOS (LF \\n).\nThis small detail can cause big problems if not handled correctly, especially when working in mixed environments \u0026ndash; version control conflicts, script incompatibilities, compilation or execution issues. I wrote this post to have a handy reference for dealing with this topic, including a few tricks.\n","permalink":"http://luispa.com/en/posts/2024-09-28-crlf-vs-lf/","tags":["git","ssh","crlf","lf","linux","windows","macos","software"],"categories":["development"],"cover":{"image":"/img/posts/logo-crlf.svg"}},{"title":"Git Multi-Account","summary":" 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: HTTPS + Git Credential Manager and SSH multi-account.\nThe first, HTTPS + Git Credential Manager, is the one I use most, because it\u0026rsquo;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 \u0026ldquo;headless\u0026rdquo; machines, servers I connect to remotely via CLI or VSCode remote that need to clone repositories and work on them.\n","permalink":"http://luispa.com/en/posts/2024-09-21-git-multicuenta/","tags":["git","ssh","gcm","credentials","credential","manager","multi-account","github","software"],"categories":["development"],"cover":{"image":"/img/posts/logo-git-multi.svg"}},{"title":"VMWare on Windows","summary":" 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 VMWare Workstation Pro 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.\n","permalink":"http://luispa.com/en/posts/2024-08-26-win-vmware/","tags":["vmware","windows","win11","linux","development"],"categories":["administration"],"cover":{"image":"/img/posts/logo-vmware-vm.svg"}},{"title":"Windows for Development","summary":" 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 Microsoft/Windows-only software development, but rather for those who like to develop on and for multiple platforms and environments.\nI start from a clean Windows installation (in English), with nothing installed. I took advantage of needing to set up a dual boot and configured the operating system in a lightweight manner. The post starts with the CLI and WSL2, and in the second part I cover the tools and programming languages.\n","permalink":"http://luispa.com/en/posts/2024-08-25-win-desarrollo/","tags":["windows","wsl","wsl2","linux","ubuntu","development","visual","studio","python","git","cli","vscode","compiler"],"categories":["development"],"cover":{"image":"/img/posts/logo-win-desarrollo.svg"}},{"title":"A Decent Windows (Obsolete)","summary":" In this post I explain how I configure a Windows 11 that I\u0026rsquo;m going to use for software development, testing or demos. I don\u0026rsquo;t need frills since it won\u0026rsquo;t have sensitive data, I want its essence, bare-bones, with few applications, some browsing and that\u0026rsquo;s it. In the end it became a technical exercise \u0026ndash; removing everything I can, ads, Edge, extras, installing minimal drivers, a local account, having it boot and be available as soon as possible.\nNote: a year later I decided to create a new decent Windows 11 (2025).\n","permalink":"http://luispa.com/en/posts/2024-08-24-win-decente-obsoleto/","tags":["linux","wsl","windows","win11","ubuntu","development","dualboot","clean","lean","tiny","mini"],"categories":["administration"],"cover":{"image":"/img/posts/logo-windows.svg"}},{"title":"Dualboot Linux Windows","summary":" 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.\nI\u0026rsquo;m going to \u0026ldquo;add\u0026rdquo; 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.\n","permalink":"http://luispa.com/en/posts/2024-08-23-dual-linux-win/","tags":["linux","windows","win11","ubuntu","development","dualboot"],"categories":["administration"],"cover":{"image":"/img/posts/logo-dual-boot.svg"}},{"title":"Linux for Development","summary":" 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.\nStarting 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.\n","permalink":"http://luispa.com/en/posts/2024-07-25-linux-desarrollo/","tags":["linux","ubuntu","development","python","git","gem","ruby","ror","iterm","ohmyzsh","zsh","vscode"],"categories":["development"],"cover":{"image":"/img/posts/logo-linux-desarrollo.svg"}},{"title":"Home PBX","summary":" Asterisk 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).\n","permalink":"http://luispa.com/en/posts/2024-07-13-asterisk/","tags":["linux","movistar","mac","iptables","router","software","asterisk"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-asterisk.svg"}},{"title":"Software KVM","summary":" 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.\nMy use case involves controlling three computers with a single keyboard and mouse. Two of them are desktops \u0026ndash; 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.\n","permalink":"http://luispa.com/en/posts/2024-06-13-kvm/","tags":["linux","windows","mac","kvm","software","keyboard","mouse"],"categories":["software"],"cover":{"image":"/img/posts/logo-barrier.svg"}},{"title":"Terminals with tmux","summary":" tmux 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.\n","permalink":"http://luispa.com/en/posts/2024-04-25-tmux/","tags":["mac","macbook","macos","tmux","development","software","homebrew"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-tmux.svg"}},{"title":"Goodbye Bash, Hello Zsh!","summary":" I\u0026rsquo;ve decided to migrate my CLI from the reliable and well-known bash to the powerful and versatile zsh. It\u0026rsquo;s an extended evolution of the Bourne Shell (sh) \u0026ndash; it not only inherits many of Bash\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2024-04-23-zsh/","tags":["zsh","macos","linux","tmux","development","terminal","homebrew"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-zsh.svg"}},{"title":"Mac Users from CLI","summary":" 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 /etc/passwd. macOS uses Open Directory for user management, so you can use commands like dscl to query this information.\n","permalink":"http://luispa.com/en/posts/2024-02-16-mac-users/","tags":["mac","macbook","macos","user","kill","logout","login"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-logout.svg"}},{"title":"Rclone and Mac","summary":" 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.\nThe source data lives on the Mac\u0026rsquo;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 rclone tool is perfect for helping me maintain multiple synchronized backups.\n","permalink":"http://luispa.com/en/posts/2023-11-13-rclone/","tags":["linux","mac","macbook","sync","thunderbolt","usb","rclone","clone","rsync"],"categories":["infrastructure"],"cover":{"image":"/img/posts/logo-rclone.svg"}},{"title":"Linux on MacBook Air 2015","summary":" 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.\nWhy 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.\n","permalink":"http://luispa.com/en/posts/2023-08-06-linux-macbook/","tags":["linux","mac","macbook","air","efi","dualboot"],"categories":["infrastructure"],"cover":{"image":"/img/posts/logo-linux-macbook.svg"}},{"title":"Daily Reboot with Systemd","summary":" To perform a full reboot you can use the systemctl reboot command, but how can you schedule it at a specific time? In this post I explain how to do it using systemd, the boot manager and administration system for Linux distributions.\nAmong the systemd timer services there\u0026rsquo;s a little-known feature that allows you to schedule an automatic reboot whenever you want.\n","permalink":"http://luispa.com/en/posts/2023-07-23-systemd-reboot/","tags":["linux","reboot","systemd","daily","scheduled","restart"],"categories":["infrastructure"],"cover":{"image":"/img/posts/logo-systemd-reboot.svg"}},{"title":"Customizing VSCode","summary":" 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.\nI normally use Windows, Linux, and macOS, and I\u0026rsquo;ve chosen VSCode as my editor/IDE. The goal is to have a unified work experience \u0026ndash; 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.\n","permalink":"http://luispa.com/en/posts/2023-06-20-vscode/","tags":["linux","windows","macos","ide","editor","vscode","visual","studio","development","software"],"categories":["development"],"cover":{"image":"/img/posts/logo-vscode.svg"}},{"title":"MAC with Vagrant","summary":" Vagrant lets you create and configure virtual development environments that are lightweight and reproducible. It does so by creating virtual machines and requires a Hypervisor. It doesn\u0026rsquo;t care which hypervisor you use \u0026ndash; it supports VirtualBox, KVM, Docker, VMWare, and 30+ others. It\u0026rsquo;s a fantastic tool for spinning up Servers for our software development projects.\nThis guide only works, for now, with INTEL chips. I haven\u0026rsquo;t been able to make it work on a Mac with ARM (Apple Silicon) as the host yet.\n","permalink":"http://luispa.com/en/posts/2023-04-23-mac-vagrant/","tags":["macos","homebrew","development","virtualbox","linux","virtualization"],"categories":["development"],"cover":{"image":"/img/posts/logo-mac-vagrant.svg"}},{"title":"MAC for Development","summary":" 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.\nThe installation order can be varied, but this is what I recommend starting from a fresh macOS installation.\n","permalink":"http://luispa.com/en/posts/2023-04-15-mac-desarrollo/","tags":["macos","homebrew","development","python","git","gem","ruby","iterm","ohmyposh","zsh","xcode","vscode"],"categories":["development"],"cover":{"image":"/img/posts/logo-mac-desarrollo.svg"}},{"title":"Socketed SSH","summary":" Systemd is a system used in Linux to manage boot and system processes. Its \u0026ldquo;units\u0026rdquo; are configuration files that describe the processes and services that systemd manages.\nOne of these units is systemd.socket, 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.\n","permalink":"http://luispa.com/en/posts/2023-04-14-ssh-socket/","tags":["ssh","sshd","systemd","socket","socketed","linux"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-socketed-ssh.svg"}},{"title":"Home Automation and Networking","summary":" I\u0026rsquo;m sharing my home networking setup with the option to knock on the door for on-demand access from the Internet. Today\u0026rsquo;s home networks end up supporting multiple services, and with the rise of home automation things get complicated, so I\u0026rsquo;ve decided to document it to keep track of everything in the future.\nThe number of devices grows and maintaining the network of a smart and automated home becomes a priority. I dedicate this post to those Geeks or Techies who, like me, have been deep into the complexity of networking in a home automation network for a long time.\n","permalink":"http://luispa.com/en/posts/2023-04-08-networking-avanzado/","tags":["home-automation","networking","advanced","linux","pve","proxmox","kvm","qemu","cloud-init","alpine","lxc","ubuntu","template","virtualization"],"categories":["sysadmin"],"cover":{"image":"/img/posts/logo-homenet.svg"}},{"title":"Proxmox: VM from Template","summary":" Proxmox VE is a powerful and easy-to-use open-source virtualization platform that enables the deployment and management of virtual machines (VMs with KVM/QEMU) and containers (CTs based on LXC). Proxmox offers Templates to minimize the creation time of new instances of these virtual machines or containers.\nIn this post I focus on how to create my own Virtual Machine Templates along with a cloud-based image and cloud-init.\n","permalink":"http://luispa.com/en/posts/2023-04-07-proxmox-plantilla/","tags":["linux","pve","proxmox","kvm","qemu","cloud-init","alpine","debian","ubuntu","template","virtualization"],"categories":["administration"],"cover":{"image":"/img/posts/logo-proxmox-plantilla.svg"}},{"title":"Raspberry Pi OS","summary":" In this post I describe the installation process of a Raspberry Pi4B Rev1.5 (also tested with the Pi3B+) with the Raspberry Pi OS (64-bit) operating system (based on Debian). I normally use these Pis as single-purpose mini servers or for testing and lab work.\n","permalink":"http://luispa.com/en/posts/2023-03-02-raspberry-pi-os/","tags":["raspberry","pi","64bits"],"categories":["linux"],"cover":{"image":"/img/posts/logo-raspberry.svg"}},{"title":"NUC, KVM, and Open vSwitch","summary":" 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.\nLast year I documented here how to configure Open vSwitch with KVM. In this post I\u0026rsquo;ll get straight to the point, showing the desired final state and how to configure it.\n","permalink":"http://luispa.com/en/posts/2023-02-11-ovsnuc/","tags":["linux","kvm","vlan","ovs","openvswitch","sdn","openflow","vm","qemu","virtualization","virt-manager","libvirt"],"categories":["administration"],"cover":{"image":"/img/posts/logo-ovs-kvm-nuc.svg"}},{"title":"Eclipse + Java on a Git Repository","summary":" Every now and then I get the urge to practice my rusty Java skills. I\u0026rsquo;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 gitea). 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.\n","permalink":"http://luispa.com/en/posts/2022-10-27-quidomi/","tags":["git","gitea","gitlab","github","java","eclipse"],"categories":["development"],"cover":{"image":"/img/posts/logo-eclipse-gitea.svg"}},{"title":"Home Assistant on a NUC","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2022-10-12-hass-nuc/","tags":["linux","homeassistant","nuc","intel","grafana","influxdb"],"categories":["home automation"],"cover":{"image":"/img/posts/logo-hass-nuc.svg"}},{"title":"Connecting HASS with Node-RED","summary":" 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.\nFor your reference, I created another post here where I describe the Node-RED installation using Alpine and Docker underneath, running as a virtual machine on my KVM server.\n","permalink":"http://luispa.com/en/posts/2022-10-02-nodered-hass/","tags":["linux","homeassistant","grafana","flows","nodered","iot","influxdb","solax","solaxcloud","docker"],"categories":["home automation"],"cover":{"image":"/img/posts/logo-nodered-hass.svg"}},{"title":"Node-RED on Docker","summary":" 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.\nHere I\u0026rsquo;ll explain the installation process, on a virtual machine with Alpine and Docker underneath. If you\u0026rsquo;re interested, I have another post describing how I integrate it with my Home Assistant.\n","permalink":"http://luispa.com/en/posts/2022-10-01-nodered-docker/","tags":["linux","homeassistant","grafana","flows","iot","influxdb","solax","solaxcloud","docker"],"categories":["home automation"],"cover":{"image":"/img/posts/logo-nodered.svg"}},{"title":"Gitea and Traefik on Docker","summary":" In this post I describe the installation of Gitea (GIT server) and Traefik (LetsEncrypt SSL certificate termination), along with Redis (cache) and MySQL (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 set it up directly on a virtual machine (without Docker).\n","permalink":"http://luispa.com/en/posts/2022-04-03-gitea-docker/","tags":["linux","git","server","gitea","gitlab","github","traefik","smtp"],"categories":["development"],"cover":{"image":"/img/posts/logo-gitea-docker.svg"}},{"title":"Gitea on a VM","summary":" GIT is a distributed version control system, and we all know the famous centralization services GitHub and GitLab. I recently came across a promising alternative called Gitea - Git with a cup of tea and decided to install it on a virtual machine.\n","permalink":"http://luispa.com/en/posts/2022-03-26-gitea-vm/","tags":["linux","git","server","gitea","gitlab","github","nginx","smtp"],"categories":["development"],"cover":{"image":"/img/posts/logo-gitea-vm.svg"}},{"title":"Alpine for Running Containers","summary":" 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 \u0026ldquo;very little\u0026rdquo; space. Can you install a Docker Host on top of a Virtual Machine? The answer is a resounding yes — in fact, it\u0026rsquo;s an excellent place to do so, especially in lab environments, home setups, and small deployments.\n","permalink":"http://luispa.com/en/posts/2022-03-20-alpine-docker/","tags":["linux","server","alpine","docker"],"categories":["linux"],"cover":{"image":"/img/posts/logo-docker-a.svg"}},{"title":"Open vSwitch and KVM","summary":" It was about time I played with Open vSwitch (OVS). I\u0026rsquo;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.\nOVS is a virtual bridge from which I\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2022-02-20-openvswitch/","tags":["linux","kvm","vlan","ovs","openvswitch","sdn","openflow","vm","qemu","virtualization","virt-manager","libvirt"],"categories":["administration"],"cover":{"image":"/img/posts/logo-ovs-kvm.svg"}},{"title":"Remote Virt-Manager","summary":" The goal is to run virt-manager 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\u0026rsquo;ve documented two options: the first uses a local virtual machine (VirtualBox/Parallels/\u0026hellip;) with Ubuntu and a minimal GUI environment (just Xorg/X11 and virt-manager), the second uses HomeBrew.\n","permalink":"http://luispa.com/en/posts/2022-02-19-virt-manager/","tags":["linux","kvm","vm","qemu","virtualization","virt-manager","libvirt"],"categories":["administration"],"cover":{"image":"/img/posts/logo-virtmanager.svg"}},{"title":"Home Assistant SolaX","summary":" 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 MODBUS/TCP integration which works locally via LAN and exposes more data than the other options.\n","permalink":"http://luispa.com/en/posts/2022-02-13-hass-solax/","tags":["linux","homeassistant","grafana","influxdb","solax","solaxcloud"],"categories":["home automation"],"cover":{"image":"/img/posts/logo-hass-solax.svg"}},{"title":"Grafana, InfluxDB and Telegraf Server","summary":" 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.\nI\u0026rsquo;ve decided to install all three on an Ubuntu 20.04 LTS server, on a virtual machine in KVM, so they\u0026rsquo;re consumed by the rest of the home automation elements: the Home Assistant server and other devices that can write to InfluxDB.\n","permalink":"http://luispa.com/en/posts/2022-02-06-grafana-influxdb/","tags":["linux","homeassistant","grafana","influxdb"],"categories":["home automation"],"cover":{"image":"/img/posts/logo-grafana-influxdb.svg"}},{"title":"HASS migrate Grafana and InfluxDB","summary":" I\u0026rsquo;ve migrated the InfluxDB/Grafana services from my Home Assistant to an external server. Moving the service and setting it up on another server isn\u0026rsquo;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 Flux.\n","permalink":"http://luispa.com/en/posts/2022-02-06-hass-migrar-datos/","tags":["linux","homeassistant","grafana","influxdb"],"categories":["home automation"],"cover":{"image":"/img/posts/logo-hass-out-grafana-influxdb.svg"}},{"title":"IT Operations Portal","summary":" To have control and management over IT assets, equipment, and labs, I\u0026rsquo;ve been trying iTop. iTop stands for IT Operations Portal. It\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2022-02-05-itop/","tags":["linux","itop","cmdb","management"],"categories":["administration"],"cover":{"image":"/img/posts/logo-itop.svg"}},{"title":"Jupyter Lab with Chrome on Mac","summary":" I describe how to change the default browser for Jupyter Lab on a Mac. If we don\u0026rsquo;t do anything and launch jupyter lab from the command line, the system\u0026rsquo;s default browser (Safari) will be invoked. If you want to change it to Chrome, follow the steps below.\n","permalink":"http://luispa.com/en/posts/2021-10-19-jupyter-browser/","tags":["macos","python","jupyter"],"categories":["development"],"cover":{"image":"/img/posts/logo-jupyterchrome.svg"}},{"title":"Git Cheat Sheet","summary":" This post contains my GIT cheat sheet, 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.\n","permalink":"http://luispa.com/en/posts/2021-10-10-git-cheatsheet/","tags":["git","ssh","multi-account","software"],"categories":["development"],"cover":{"image":"/img/posts/logo-git-cheatsheet.svg"}},{"title":"Home Pi-hole","summary":" 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. Its use case is to act as a sinkhole for the advertising that floods today\u0026rsquo;s networks. Yes, a small Linux PC with Pi-hole on your home network to prevent tons of ads from reaching you while you browse.\n","permalink":"http://luispa.com/en/posts/2021-06-20-pihole-casero/","tags":["linux","ads","firewall","pihole","whitelist","adlist"],"categories":["tools"],"cover":{"image":"/img/posts/logo-pihole.svg"}},{"title":"User Systemd Services","summary":" The systemd manager allows configuring services from a normal system user. These systemd user services are a little-known but very useful feature. It consists of being able to create and use .service files from a user\u0026rsquo;s local directory that run with their privileges.\n","permalink":"http://luispa.com/en/posts/2021-05-30-systemd-usuario/","tags":["systemd","service","user"],"categories":["linux"],"cover":{"image":"/img/posts/logo-systemd.svg"}},{"title":"Vagrant with Libvirt KVM","summary":" Vagrant creates and runs virtual machines, relying on virtualization providers such as Virtualbox, KVM, Docker, VMWare, and 30+ others. 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 Vagrant with the Libvirt KVM provider on Linux.\n","permalink":"http://luispa.com/en/posts/2021-05-15-vagrant-kvm/","tags":["linux","kvm","virtualization","python","jupyter","virtualbox","development"],"categories":["virtualization"],"cover":{"image":"/img/posts/logo-vagrantkvm.svg"}},{"title":"JupyterLabs to PDF","summary":" 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\u0026rsquo;ve tried intermediate exports, pandoc, apps, without much success.\n","permalink":"http://luispa.com/en/posts/2021-05-11-jupyterlabs-a-pdf/","tags":["macos","python","jupyter"],"categories":["development"],"cover":{"image":"/img/posts/logo-jupyterprint.svg"}},{"title":"Preview Notebooks on MacOS","summary":" MacOS doesn\u0026rsquo;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 ipynb-quicklook\n","permalink":"http://luispa.com/en/posts/2021-04-24-ver-notebooks/","tags":["macos"],"categories":["tools"],"cover":{"image":"/img/posts/logo-jupyterview.svg"}},{"title":"Python and JupyterLab on MacOS","summary":" Python is a multi-paradigm interpreted programming language. pip manages packages from PyPI (the Python Package Index). PipEnv lets you create a virtual environment to run your application in isolation with the necessary libraries. Jupyter Lab is a web application that serves as a bridge between code and explanatory text.\n","permalink":"http://luispa.com/en/posts/2021-04-30-python-jupyter/","tags":["macos","python","pip","pipenv","jupyter","jupyterlab"],"categories":["development"],"cover":{"image":"/img/posts/logo-python.svg"}},{"title":"Preview Markdown on MacOS","summary":" MacOS doesn\u0026rsquo;t include an option in Finder to preview Markdown files (.md). There are several solutions available, and one of the quickest and simplest is to install qlmarkdown\n","permalink":"http://luispa.com/en/posts/2021-04-24-ver-markdown/","tags":["macos"],"categories":["tools"],"cover":{"image":"/img/posts/logo-mdview.svg"}},{"title":"My new blog!!","summary":" In this post I describe how I set up this static blog \u0026ldquo;built\u0026rdquo; with jekyll and hosted on GitHub Pages. The source files are in the repository LuisPalacios.github.io. The site is finally configured on my domain: https://www.luispa.com\n","permalink":"http://luispa.com/en/posts/2021-04-19-nuevo-blog/","tags":["blog","linux","github","jekyll"],"categories":["tools"],"cover":{"image":"/img/posts/logo-jekyll.svg"}},{"title":"GIT in Detail","summary":" GIT 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 \u0026ldquo;central (remote) servers or repositories\u0026rdquo; are very useful and necessary, the most famous being GitHub, GitLab and Gitea.\n","permalink":"http://luispa.com/en/posts/2021-04-17-git-en-detalle/","tags":["git"],"categories":["development"],"cover":{"image":"/img/posts/logo-git.svg"}},{"title":"SSH and X11 as root","summary":" The goal is to make X11 (X-Window) applications work \u0026ldquo;also\u0026rdquo; from root. Making them work from a regular user is straightforward, but then switching to root with su/sudo and having X11 work is not allowed in Linux. The X11 connection only belongs to the user you logged in with via SSH.\n","permalink":"http://luispa.com/en/posts/2017-02-11-x11-desde-root/","tags":["x11","xorg","x","window","xfree86","ssh","linux"],"categories":["linux"],"cover":{"image":"/img/posts/logo-ssh-xorg.svg"}},{"title":"Move KVM guest","summary":" 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\u0026rsquo;s a straightforward operation I do almost everything from the shell, so here\u0026rsquo;s the process for future reference\u0026hellip;\n","permalink":"http://luispa.com/en/posts/2016-07-07-mover-guest-kvm/","tags":["backup","iscsi","kvm","linux"],"categories":["virtualization"],"cover":{"image":"/img/posts/logo-move.svg"}},{"title":"Remote WireShark","summary":" In this post I explain how I launch a network traffic capture (tcpdump) on a remote Linux machine (Pi2 with Gentoo) and have it forwarded to Wireshark running on my computer (Mac). We\u0026rsquo;ll get tcpdump\u0026rsquo;s output to become Wireshark\u0026rsquo;s input. It seems like magic but you\u0026rsquo;ll see it\u0026rsquo;s extremely simple. You\u0026rsquo;ll need to know ssh and sudo, a couple of prerequisites for making this so easy.\n","permalink":"http://luispa.com/en/posts/2016-06-05-wireshark-remoto/","tags":["networking","traffic","capture"],"categories":["linux"],"cover":{"image":"/img/posts/logo-wireshark.svg"}},{"title":"Intel Quick Sync Video","summary":" 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)\u0026hellip;\n","permalink":"http://luispa.com/en/posts/2016-04-09-quicksync/","tags":["acceleration","qsv","quicksync-video","transcoding","tvheadend","media-center","qsv","vaapi"],"categories":["linux"],"cover":{"image":"/img/posts/logo-intel-quicksync.svg"}},{"title":"Hotkey for MacOS Apps","summary":" I need to be able to open a program by pressing a HotKey, regardless of which application has focus. Applications typically don\u0026rsquo;t come with this option but there are cases where it could be useful.\n","permalink":"http://luispa.com/en/posts/2016-03-21-hotkey-macos/","tags":["finder","hotkey","macos","osx","pathfinder"],"categories":["tools"],"cover":{"image":"/img/posts/logo-hotkey.svg"}},{"title":"SMB2 on Linux","summary":" In this post I describe how to provide a file sharing service over the network with SMB2 (Samba). It\u0026rsquo;s a very simple example, with a Linux machine as the server and a Mac OSX as the client. I have another post about SMB and QNAP that is very similar.\n","permalink":"http://luispa.com/en/posts/2016-03-06-smb-linux/","tags":["cifs","samba","smb","smb2","gentoo"],"categories":["linux"],"cover":{"image":"/img/posts/logo-samba.svg"}},{"title":"Tvheadend and TV (2016)","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2016-02-28-tvh-movistar-2016/","tags":["linux","nuc"],"categories":["tv"],"cover":{"image":"/img/posts/logo-tvh2016.svg"}},{"title":"Expand a qcow2 disk","summary":" 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 cortafuegix VM to 15GB.\n","permalink":"http://luispa.com/en/posts/2015-12-08-ampliar-qcow2/","tags":["convert","iscsi","qcow2","disk","size"],"categories":["virtualization"],"cover":{"image":"/img/posts/logo-qcow2.svg"}},{"title":"Gentoo on Raspberry Pi2","summary":" 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\u0026rsquo;ll have a Gentoo Linux on an RPi2.\n","permalink":"http://luispa.com/en/posts/2015-05-17-gentoo-pi2/","tags":["arm","boot","gentoo","media-center","raspberry","pi"],"categories":["linux"],"cover":{"image":"/img/posts/logo-pi-gentoo.svg"}},{"title":"WebGrab+Plus with Tvheadend","summary":" WebGrab+Plus 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\u0026rsquo;s time to install it on my Linux server and of course integrate it with Tvheadend.\n","permalink":"http://luispa.com/en/posts/2015-02-03-webgrabplus/","tags":["linux","movistar","tvheadend"],"categories":["tv"],"cover":{"image":"/img/posts/logo-tvhWebGrab+.svg"}},{"title":"Media Center Pi+KODI/XBMC","summary":" 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).\n","permalink":"http://luispa.com/en/posts/2015-01-31-media-center/","tags":["media","center","movistar","raspberry","xbmc","pi","linux","kodi"],"categories":["tv"],"cover":{"image":"/img/posts/logo-kodi-pi.png"}},{"title":"Tvheadend and TV (2015)","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2015-01-31-tvh-movistar-2015/","tags":["linux","nuc"],"categories":["tv"],"cover":{"image":"/img/posts/logo-tvh2015.svg"}},{"title":"Home Media Center","summary":" Having a DVD player is so 90\u0026rsquo;s. Nowadays it\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2015-01-26-media-center-casero/","tags":["media","center","movistar","raspberry","xbmc","pi","linux","kodi"],"categories":["tv"],"cover":{"image":"/img/posts/logo-kodi-0.svg"}},{"title":"My First Steps with Docker","summary":" From what I understood, it\u0026rsquo;s a tool that allows you to package \u0026ldquo;Linux applications and all their dependencies\u0026rdquo; into a self-contained virtual container (something like sandboxes). That doesn\u0026rsquo;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\u0026rsquo;s cool.\n","permalink":"http://luispa.com/en/posts/2014-11-01-inicio-docker/","tags":["docker","virtualization","containers"],"categories":["notes"],"cover":{"image":"/img/posts/logo-microservices1.svg"}},{"title":"Ethernet Bridge","summary":" Proof of concept to extend my home network to a remote site through the internet, from where I could consume Movistar\u0026rsquo;s IPTV services. I used a pair of Raspberry Pi 2s, connected to each other by a pair of IPSec tunnels.\nThis post is related to Linux Router for Movistar and video on demand with Fullcone NAT on Linux.\n","permalink":"http://luispa.com/en/posts/2014-10-19-bridge-ethernet/","tags":["movistar","router","cone","nat","iptables","television"],"categories":["linux"],"cover":{"image":"/img/posts/logo-bridge-eth.svg"}},{"title":"Video on Demand for Movistar","summary":" 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 Linux router for Movistar to make \u0026ldquo;Video on Demand\u0026rdquo; work. They use the RTSP protocol which requires our router to support Full Cone NAT.\nThe 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\u0026rsquo;s see how to solve this.\n","permalink":"http://luispa.com/en/posts/2014-10-18-movistar-bajo-demanda/","tags":["movistar","router","cone","nat","iptables","television"],"categories":["linux"],"cover":{"image":"/img/posts/logo-linux-rtsp.svg"}},{"title":"Linux Router for Movistar","summary":" This post describes what\u0026rsquo;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.\nAfter reading this post, I recommend continuing with video on demand for Movistar and the lab to extend your local network to a remote site with an Ethernet Bridge.\n","permalink":"http://luispa.com/en/posts/2014-10-05-router-linux/","tags":["movistar","mac","iptables","router"],"categories":["linux"],"cover":{"image":"/img/posts/logo-linux-router.svg"}},{"title":"OpenVPN Server","summary":" In this technical post I\u0026rsquo;ll describe how to set up a home VPN Server based on OpenVPN, 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.\n","permalink":"http://luispa.com/en/posts/2014-09-14-vpn-server-en-linux/","tags":["linux","vpn","openvpn","firewall","tunnels","security"],"categories":["security"],"cover":{"image":"/img/posts/logo-openvpn.svg"}},{"title":"IPtables with nflog","summary":" Geek quote: \u0026ldquo;Logging what happens is wise\u0026hellip;\u0026rdquo; In the past I used ULOG to analyze which packets were being dropped by iptables, but since it\u0026rsquo;s been marked as deprecated I\u0026rsquo;ve switched to NFLOG.\n","permalink":"http://luispa.com/en/posts/2014-08-31-log-iptables/","tags":["linux","vpn","openvpn","firewall","tunnels","security","iptables"],"categories":["security"],"cover":{"image":"/img/posts/2014-08-31-log-iptables-01.jpg"}},{"title":"Wake the Mac for Backup","summary":" Making backups should be mandatory. 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.\n","permalink":"http://luispa.com/en/posts/2014-06-23-despierta-para-backup/","tags":["backup","macosx","copy"],"categories":["tools"],"cover":{"image":"/img/posts/2014-06-23-despierta-para-backup-06.jpg"}},{"title":"SMB2 on my QNAP","summary":" What are \u0026ldquo;SMB\u0026rdquo;, \u0026ldquo;CIFS\u0026rdquo;, \u0026ldquo;Samba\u0026rdquo; and the version confusion? 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.\nThe 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.\n","permalink":"http://luispa.com/en/posts/2014-05-02-smb-en-qnap/","tags":["afp","qnap","samba","smb2"],"categories":["tools"],"cover":{"image":"/img/posts/logo-qnap.jpg"}},{"title":"Plex Media Server","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2014-04-23-plex-media-server/","tags":["linux","gentoo","plex"],"categories":["tv"],"cover":{"image":"/img/posts/logo-pms.png"}},{"title":"Clean Up PPT","summary":" In this post I explain how to create a VBA Macro to remove unused slide masters (patterns) from a PowerPoint file, dedicated to my friend Alfonso. :-)\nWhy do so many masters accumulate in PowerPoint? 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\u0026rsquo;re not actively using them in our presentation.\n","permalink":"http://luispa.com/en/posts/2014-02-20-limpiar-slides/","tags":["slides","ppt","vba"],"categories":["tools"],"cover":{"image":"/img/posts/logo-vb.svg"}},{"title":"Monitoring with PeakHour","summary":" Not long ago I came across PeakHour, a tool that lives in the macOS menu bar with a very pleasant look \u0026amp; 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.\n","permalink":"http://luispa.com/en/posts/2014-01-24-monitor-peakhour/","tags":["monitor","peakhour","snmp","traffic","network","networking"],"categories":["macos"],"cover":{"image":"/img/posts/logo-peakhour.png"}},{"title":"PlexConnect on Linux","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2014-01-07-plexconnect-en-linux/","tags":["gentoo","plex","plexconnect"],"categories":["linux"],"cover":{"image":"/img/posts/logo-plex.svg"}},{"title":"Static IP with Systemd on Gentoo","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2013-12-23-ip-fija-systemd/","tags":["linux","systemd","gentoo","networking","ip","static"],"categories":["linux"],"cover":{"image":"/img/posts/logo-ip.svg"}},{"title":"Linux on 'Fusion for Mac'","summary":" In this article I describe how to install Gentoo Linux 3.10.17 (64-bit, with systemd + Gnome 3) 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.\n","permalink":"http://luispa.com/en/posts/2013-12-20-linux-vm-fusion/","tags":["fusion","gentoo","linux","virtualization","vmware","vm"],"categories":["virtualization"],"cover":{"image":"/img/posts/logo-fusion.png"}},{"title":"Putting a Disk to Sleep on MacOSX","summary":" 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:\n","permalink":"http://luispa.com/en/posts/2013-12-10-dormir-disco-macos/","tags":["disk","macosx","sleep"],"categories":["tools"],"cover":{"image":"/img/posts/2013-12-10-dormir-disco-macos-01.png"}},{"title":"MemTest86 on iMac","summary":" For my new 27\u0026quot; iMac (late 2013) I purchased a 32GB memory upgrade. Apple supports installing third-party memory \u0026ndash; I bought the upgrade from Crucial.com and one of the things I wanted to do was thoroughly test the memory.\n","permalink":"http://luispa.com/en/posts/2013-11-24-memtest86-en-imac/","tags":["macosx","memtest86","boot"],"categories":["tools"],"cover":{"image":"/img/posts/logo-memtest.png"}},{"title":"ntopng on Gentoo","summary":" Not too long ago \u0026ldquo;ntopng\u0026rdquo; 1.1 was released and it\u0026rsquo;s time to give it a look. It\u0026rsquo;s not yet in Portage, so thanks to the Eigenlay overlay (via layman) I found what I needed to perform the installation.\n","permalink":"http://luispa.com/en/posts/2013-11-22-ntopng-en-gentoo/","tags":["linux","gentoo","ntopng","time"],"categories":["linux"],"cover":{"image":"/img/posts/logo-ntopng.svg"}},{"title":"HFS+ on Linux","summary":" HFS+ (Hierarchical File System Plus), also known as MacOS Plus, is the format used by default on the partition where Apple\u0026rsquo;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.\n","permalink":"http://luispa.com/en/posts/2012-12-15-hfs-en-linux/","tags":["hfs","linux","gentoo","disks"],"categories":["linux"],"cover":{"image":"/img/posts/logo-hfsplus.svg"}},{"title":"AFP on Gentoo Linux","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2012-11-15-afp-en-linux/","tags":["afp","linux","disks"],"categories":["linux"],"cover":{"image":"/img/posts/logo-afp.svg"}},{"title":"FireWire on Linux on Mac","summary":" 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.\n","permalink":"http://luispa.com/en/posts/2012-11-15-firewire-en-gentoo/","tags":["firewire","gentoo","linux","disks"],"categories":["linux"],"cover":{"image":"/img/posts/logo-firewire.svg"}},{"title":"NTP Time Service","summary":" 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 123). It is designed to withstand the effects of variable latency.\nIn 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.\n","permalink":"http://luispa.com/en/posts/2009-05-01-servicio-horario-ntp/","tags":["linux","ntp","gentoo","time"],"categories":["linux"],"cover":{"image":"/img/posts/logo-ntp.svg"}},{"title":"SSH on Linux","summary":" The SSH service is the first thing you should configure on a Linux system. With OpenSSH you get a set of tools \u0026ndash; including ssh, sshd, scp, etc. \u0026ndash; that allow you to enable secure remote shell access to your machine. If you come from the \u0026ldquo;telnet\u0026rdquo; era, you should forget about it; its replacement today is SSH.\n","permalink":"http://luispa.com/en/posts/2009-02-01-ssh/","tags":["gentoo","security","ssh","tunnel"],"categories":["linux"],"cover":{"image":"/img/posts/logo-ssh.svg"}},{"title":"Rsync on MacOS","summary":" The rsync program comes bundled with Mac OSX, but if you need a more recent version with additional features \u0026ndash; such as metadata preservation, extended character support, or cross-platform character handling \u0026ndash; you\u0026rsquo;ll need to install one of the latest versions.\n","permalink":"http://luispa.com/en/posts/2006-11-13-rsync-en-macosx/","tags":["client","server","mac","linux","rsync"],"categories":["tools"],"cover":{"image":"/img/posts/logo-rsync.svg"}},{"title":"Hello World","summary":" 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 \u0026ldquo;Jekyll + GitHub Pages\u0026rdquo;. I\u0026rsquo;m keeping this first post as a reference.\n","permalink":"http://luispa.com/en/posts/2002-11-11-hola-mundo/","tags":["blog","linux"],"categories":["tools"],"cover":{"image":"/img/posts/logo-nibbleblog.svg"}},{"title":"Pending Migration","summary":" 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 \u0026ldquo;Jekyll + GitHub Pages\u0026rdquo;. In this post I keep references to the Wordpress files that I need to redirect to the new posts once I have migrated them.\n","permalink":"http://luispa.com/en/posts/2000-01-01-pendientes/","tags":["blog"],"categories":["migration"],"cover":{"image":"/img/posts/logo-migrate.svg"}}]