Nerd Fonts

Nerd Fonts - https://www.nerdfonts.com/ includes many monospaced fonts that are especially well suited to terminals and code editors. Nerd Fonts adds a large set of icons that can display the glyphs used by git, programming languages and CLIs. After downloading you’ll see a lot of font files. Take the MesloLG font that I commonly use as an example: MesloLGMDZNerdFontMono-Bold MesloLGMDZNerdFontMono-BoldItalic MesloLGMDZNerdFontMono-Italic MesloLGMDZNerdFontMono-Regular The naming carries a lot of meaning: ...

February 7, 2026

Install azure-cli on macOS

On my Mac the az cli needs Python 3.10, and I didn’t want to pin Homebrew’s Python to that version, so instead I use uv to manage multiple Python versions. # install special python version for uv uv python install 3.10 # create dir mkdir /tmp/az # create virtual environment dir .venv uv venv --python 3.10 Then you can install the azure-cli package: uv pip install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge uv pip install rpds-py When you want to use it, just source the environment; I’ll look for a better approach later. ...

December 16, 2025

macOS Productivity Tool: skhd

Just watched a YouTube video: macOS: Essential Productivity Hacks for Developers, which introduced shortcuts, virtual desktops, and window management tools. One tool that perfectly fits my needs is skhd: GitHub link. With so many apps open at once, finding a specific app window can take time without better window management. For instance, during penetration testing, I might need to frequently switch between the terminal, Burp Suite, browser, notes, Visual Studio, and IM apps. This frequent toggling wastes a lot of time. ...

November 24, 2024

UniFi and Aruba WiFi Client Roaming

Wi-Fi Roaming A while back I picked up a few Aruba APs. While deploying them I looked into the roaming settings, which was a good chance to compare them with my existing UniFi APs. For Wi-Fi roaming, we can refer to Apple’s explanation of the 802.11k, 802.11r and 802.11v protocols. Note: in my own environment every AP location has a physical Ethernet cable run to it, so I don’t consider using wireless to chain multiple APs together. ...

August 13, 2023

Choosing a Wireless / WiFi Access Point

WiFi Access Point is abbreviated as AP below. AP management styles In terms of management style alone, APs can be split into Fat AP / Fit (Thin AP) / Cloud AP. Fat AP: more like a traditional AP with a built-in management page for configuring the AP in various ways. For example, ASUS’s interface lets you switch directly between Router mode and Access Point mode. Fit (Thin AP): needs to be configured with an Access Controller. The AP itself provides almost no convenient management interface and must be managed and configured through the controller. The upside is you can manage many APs at scale — once a new device joins the network it can apply the previous settings — and you can monitor APs through the dashboard the controller provides. This kind of setup is also called AC+AP (access controller + access point). Cloud AP: similar to Fit (Thin AP), except the device connects directly to the cloud for convenient management, without needing to set up a separate controller. A few points I personally weigh when choosing an AP: ...

April 15, 2023

Windows Terminal Setup

shell & terminal The new Windows Terminal and the original Windows console host, all in the same place! PowerShell 7 is much friendlier than the old version. For a terminal, go with Windows Terminal — it’s probably the best option right now. On macOS you can try Alacritty, which supports GPU acceleration and is much faster than iTerm. scoop install pwsh You can customize some common commands in the PowerShell profile: Set-Alias vim nvim Set-Alias cat bat Set-Alias grep rg Set-Alias ls lsd_func function lsd_func { lsd --classic $args } function ip { curl -s https://api.myip.com | jq } starship prompt The minimal, blazing-fast, and infinitely customizable prompt for any shell! ...

December 12, 2022

Setting up a KMS Server

Do not use this in production; it is for testing purposes only. Schools usually run a KMS Server as an activation method for volume licensing of Windows and Office. Here are a few open-source projects you can use for testing: vlmcsd - written in C (it includes a Docker deployment method) Py-KMS-Organization/py-kms - written in Python Py-KMS-Organization/py-kms is a fork of SystemRage/py-kms that is still being actively maintained. You can also spin it up easily with docker: ...

November 26, 2022

Using Cloudflare Tunnel for NAT traversal, with Gitea as an example

Often you run many services on your LAN, and when you need to reach them from outside you usually do it with port forwarding. Here I use Cloudflare Tunnel instead — no port forwarding on the router is needed, and you can add two-factor authentication via Email OTP, which improves both convenience and security. It works for a NAS, a Git server, a Virtual Machine Manager, and more on your LAN. ...

November 7, 2022

Auto-updating docker containers - watchtower

I run a bunch of docker containers on Synology and on a few servers, and use watchtower to update their images automatically. First set the timezone to Taipei: sudo timedatectl set-timezone Asia/Taipei Add the cleanup and schedule flags: docker run -d --restart=always \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/localtime:/etc/localtime:ro \ containrrr/watchtower \ --cleanup \ --schedule "0 0 4 * * *" More flags can be found here: https://containrrr.dev/watchtower/arguments/

November 6, 2022

Ad-blocking powerhouse - AdGuard

I often pick up second-hand hardware junk to build things with, so I’ll keep a HomeLAB series to document it. Installation On Unix-like systems you can install it in one line: curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v You can also refer to the official github and the wiki; it can be installed on docker, a Raspberry Pi, and more. Here, since I run an LXC on proxmox and it has its own IP, I just install it as a regular machine. ...

October 16, 2022