CRLF vs LF

CRLF vs LF

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). This small detail can cause big problems if not handled correctly, especially when working in mixed environments – 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. …

September 28, 2024 · 3 min
Git Multi-Account

Git Multi-Account

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. The first, HTTPS + Git Credential Manager, is the one I use most, because it’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 “headless” machines, servers I connect to remotely via CLI or VSCode remote that need to clone repositories and work on them. …

September 21, 2024 · 12 min
Home PBX

Home PBX

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). …

July 13, 2024 · 10 min
Software KVM

Software KVM

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. My use case involves controlling three computers with a single keyboard and mouse. Two of them are desktops – 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. …

June 13, 2024 · 5 min
Terminals with tmux

Terminals with tmux

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. …

April 25, 2024 · 2 min
Customizing VSCode

Customizing VSCode

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. I normally use Windows, Linux, and macOS, and I’ve chosen VSCode as my editor/IDE. The goal is to have a unified work experience – 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. …

June 20, 2023 · 5 min