Archives
All the articles I've archived.
How to Cache LLM Outputs with LiteLLM
Disk caching in LiteLLM stores LLM responses, reducing API costs and latency for repeated requests.
Tampermonkey Script to Open ChatGPT's 'New Chat' in a New Tab
Allows you to start a new conversation with a single click while preserving the current conversation. This small customization is useful for those who often handle multiple topics simultaneously.
Installing uv System-Wide on Linux
Specify the installation directory for the official installer as `/usr/local/bin` to allow all users to run `uv` / `uvx`. Also, prevent the installer from modifying the user-specific PATH.
A collection of practical techniques to keep in mind when using Chrome DevTools.
Chrome DevTools offers numerous convenient features that can streamline debugging tasks related to the DOM, events, communication, and rendering. This document categorizes frequently used features, such as `inspect()`, `$0`, and `monitorEvents()`, based on their specific applications to facilitate everyday debugging.
Adding Authentication to an Existing Web App with Nginx + Authelia
Delegate login and MFA to Authelia through Nginx, pass trusted identity headers to a private backend, and retain application-level authorization.
Build a full-text search and comment-enabled blog using GitHub Pages
Plan a static Markdown blog with Astro, Pagefind search, giscus comments, and GitHub Actions deployment, including stable comment IDs and Japanese search support.
Alt-g and Readline shortcuts that make Bash completion a bit more convenient
Use glob completion and expansion to find partial filenames, reuse prior arguments, search history, and edit long commands with Bash Readline shortcuts.
How to Use NetworkManager's Checkpoint Feature (nmcli device checkpoint)
Explain checkpoint-based network rollback, timeout behavior, and verification when testing remote IP, routing, bridge, or VLAN changes through NetworkManager.
Why POWER, SPARC, and AIX Were Used in Older HPC Systems
Explain the hardware, software, and support advantages of integrated UNIX HPC systems and the economic and technical changes that favored Linux clusters.
Controlling CPU Fan Speed on Mac mini 5,2 with Ubuntu 24.04
Inspect Intel Mac fan limits through applesmc, test manual RPM control, and configure mbpfan for temperature-based operation with live monitoring.
Checking if a Used Core i7-6700 is Genuine Without Benchmarks
Cross-check Intel CPU markings, Data Matrix serials, and processor identification, while recognizing the limits of proving a heat spreader and substrate belong together.
How to Remove Specific Files from Git Commit History
Remove selected file changes from past commits with interactive rebase, choosing between dropping whole commits and amending only the affected file.
How to Use a Japanese Keyboard (JIS Layout) in GRUB: Rocky Linux / RHEL Compatible
Generate and test a Japanese GRUB keymap, make it persistent through custom boot configuration, and distinguish it from Linux console settings.
How to Temporarily Change the Keyboard Layout
Switch between US and Japanese layouts with setxkbmap, inspect the active configuration, and understand why the change may reset after logout.
Using Multiple GitHub Accounts: Automatically Select the Correct `gh` PAT Based on Repo Owner
Route Git HTTPS credentials to stored GitHub CLI accounts using repository paths, with organization mappings, repository-specific overrides, and Gist handling.
What is the "Alerts" Syntax You Can Use in GitHub Markdown?
Use GitHub's five alert types to highlight notes and warnings, format multiline content, and account for compatibility with other Markdown renderers.
How to Safely Manually Edit the Bash History File
Coordinate in-memory Bash histories before and after editing HISTFILE, using append and reload operations while accounting for concurrent-session limitations.
How to Squash Past Commits with Git Rebase
Combine commits through interactive rebase, handle conflicts and commit messages, and use --root when the initial commit must be included.
Unlocking GNOME Keyring on a Remote Machine via X11 Forwarding
Forward remote keyring prompts over SSH by updating the D-Bus display environment, unlock through Seahorse or secret-tool, and select the GCR SSH agent.
How to Use a Tool to Remove a Specific App from Windows “File Associations”
Find obsolete Windows file-association keys by executable name with a Python tool, preview matches, and understand the scope of recursive registry deletion.
How to Standardize Line Endings in Git Without Committing `.gitattributes`
Apply personal Git line-ending rules through repository-local attributes or a global attributes file, using LF for text and CRLF for Windows batch files.
Streaming Video Over a Network with the Lowest Possible Latency Using FFmpeg + MediaMTX
Configure on-demand HDMI streaming with QSV encoding, MediaMTX, and ffplay, reducing queues and frame reordering while balancing latency against quality and packet-loss tolerance.
Automatically Renewing Tailscale HTTPS Certificates on PiKVM
Renew certificates for PiKVM's own Nginx with a systemd timer that checks validity, validates replacement keys, supports rollback, and restores read-only operation.
Setting Up and Troubleshooting FFmpeg + Intel QSV on Rocky Linux 9
Diagnose Intel QSV encoding failures from GPU and render-node access through VA-API drivers and runtime compatibility before testing FFmpeg encoding.
Launching MSYS2 Inside a WSL tmux Session
Launch MSYS2 shells in WSL tmux panes using a dedicated server, environment forwarding, and path-conversion exclusions.
Keeping Rocky Linux 9 Up to Date with `dnf-automatic`
Configure DNF timers for automatic updates or MOTD-only notifications, control package downloads, and verify which timer settings take precedence.
How to Install UEK and bcache-tools on Rocky Linux 9
Install selected Oracle UEK and bcache packages through restricted repositories, verify boot and driver compatibility, and retain the Rocky kernel for rollback.
Exposing Supermicro X11DPI (ATEN IPMI) with Tailscale Serve: Use `socat` or Nginx `stream` Instead of an HTTP Reverse Proxy
Resolve ATEN IPMI CGI failures caused by invalid HTTP headers using TLS-terminated TCP forwarding through Tailscale and socat or Nginx stream.
Limiting SATA Link Speed to 3 Gbps on Linux Using libata.force
Identify Linux ATA ports, persist a per-port SATA negotiation limit in GRUB, and verify the resulting link speed through boot logs and sysfs.
PiKVM Setup and Basic Usage
Prepare PiKVM from first boot through password changes, Tailscale access, and virtual-media booting, distinguishing system and media-storage write modes.
Bridging Ethernet with NetworkManager on Rocky Linux 9 While Preserving DHCP and the MAC Address
Stage a NetworkManager bridge migration with the existing MAC address and DHCP, test activation through a checkpoint, and verify persistence before retiring the old profile.
Bridging Ethernet with Netplan While Preserving DHCP and the MAC Address
Move DHCP onto a Netplan bridge, retain the Ethernet MAC address, test with automatic rollback, and connect hostapd clients to the wired LAN.
Configuring hostapd on a MacBookPro14,2 with Ubuntu 24.04
Configure the MacBook Pro's Broadcom adapter as a bridged 5 GHz WPA2 access point, documenting working HT40 settings and channel-width troubleshooting.
Procedure for Modifying a SquashFS-Based Live Linux System
Customize live Linux images through SystemRescue configuration, overlays, or SquashFS rebuilding while preserving metadata, boot compatibility, and kernel consistency.
How to Limit NVIDIA GPU Core and Memory Clocks
Inspect supported NVIDIA clock ranges, apply and reset core or memory limits with nvidia-smi, and use power limits when direct clock control is unavailable.
Comparing Linux ISOs for System Rescue
Compare rescue environments by tools, size, and use case, from disk cloning and partition repair to filesystem migration and chroot-based server maintenance.
How to Separate CUDA-Specific Code from Regular C++ Code
Keep CUDA kernels in .cu files while using runtime APIs from standard C++ to access constant memory, launch kernels, and verify results after linking with nvcc.
How to Automatically Switch Google Translate to Dark Theme
Apply a custom Google Translate theme that follows system dark mode, styles dynamic interface elements, and restores the default appearance in light mode.
Tampermonkey Script to Fix the Issue Where Long Album Titles Disappear in YouTube Music
Correct YouTube Music album-title clipping with a userscript that moves two-line truncation onto the title element and adjusts link display.
How to Use Windows Mobile Hotspot Without an Internet Connection
Use a Python HTTP server and registry change to satisfy Windows connectivity probes locally, enabling an offline hotspot without providing internet access.
Updating the Rocky Linux Version
Update Rocky Linux within a major release using DNF, check for pinned release versions, and verify the result after rebooting.
Display Order of GitHub Releases
Examine how latest-release selection, semantic versions, and commit dates affect GitHub releases, and sort API results explicitly for predictable ordering.
Bookmarklet for Editing the Prompt Input Field in a Separate Window
Edit a page's existing prompt in a larger popup with automatic light and dark styling, then apply multiline text back through a bookmarklet.
Launching an MSVC PowerShell
Find an installed Visual Studio or Build Tools environment with vswhere and initialize Developer PowerShell with configurable host and target architectures.
Running Waydroid Inside Weston
Launch Android in a nested Weston kiosk session by selecting its Wayland display, then shut down Android and stop the Waydroid session cleanly.
Registering the Legacy Windows Photo Viewer for Picture Files
Add per-user registry entries that expose the existing Windows Photo Viewer in Open with, including image-opening and printing commands.
How to Use `getopt` with `getopt.h` / `getopt.c` in MSVC and Licensing Considerations
Integrate MinGW-w64 getopt source files into an MSVC project, parse short and long options, and preserve the applicable third-party license notices.
How to Disable Suspend on Lid Close in Rocky Linux
Configure systemd-logind to ignore laptop lid events on Rocky Linux, verify the settings, and troubleshoot desktop power handlers or suspend targets.
Tool to Detect Changes and Check the Time and Content
Monitor a command's standard output with a Python script that timestamps changes and runs a trigger command at startup and whenever the output changes.
How to Force bcache to Recognize a Backing Device Without a Cache Device
Force a bcache backing device to run after its cache becomes unavailable, with recovery guidance and the risk of losing dirty writeback data.
Settings to Save a Longer bash History, Reduce Duplicates, and Make It Easier to Use Across Multiple Terminals
Configure larger Bash history files and prompt hooks to share commands across terminals, reduce duplicates, and search previous commands efficiently.
When did WSL's --import add support for xz and zstd?
Trace public reports of xz and zstd archive imports in WSL, distinguishing verified working versions from undocumented introduction dates.
Reverse Proxying Local Applications with User-Mode nginx and AF_UNIX Sockets
Run an unprivileged Nginx instance that proxies path prefixes to Unix sockets, supports WebSockets and SSE, and keeps runtime files in user-owned directories.
A Simple Tool for Converting WebArchive and MHTML Files
Convert between Safari WebArchive and MHTML with a standard-library Python tool that handles embedded resources, content IDs, encodings, and CSS compatibility.
Using ffplay as a Lightweight Presentation Preview Window
Preview a Windows secondary or virtual display in an ffplay window using Desktop Duplication capture and low-latency settings for screen sharing.
Tool for Monitoring Cumulative CPU, Memory, and I/O Usage by Process
Build a curses process monitor that reads /proc, tracks CPU, memory, and cumulative I/O activity, and supports sorting and configurable refresh behavior.
OCG Configuration Tool for Aligning PDF Display and Print Output
Use PyMuPDF to align PDF layer visibility for printing, viewing, and exporting with the saved configuration, with listing and dry-run options.
PDF Page Combining Tool
Combine selected PDF pages into configurable grids with a Python script that supports page ranges, margins, gaps, and either enlarged sheets or scaled pages.
Procedure for Changing the rootfs of Rocky Linux 9 to F2FS
Migrate a Rocky Linux root filesystem to F2FS using an ELRepo kernel, metadata-preserving backup, initramfs and boot configuration updates, and SELinux relabeling.
Creating and Mounting a QEMU qcow2 Image on Ubuntu
Attach qcow2 images with qemu-nbd for partitioning and mounting, use read-only access or backing-file overlays, and safely disconnect them afterward.
ELRepo Kernel Configuration with Grubby
Inspect installed kernel versions, select the latest ELRepo kernel with grubby, and verify the default boot entry and running kernel.
Introduction to `gio trash`: Send Files to the Trash Instead of “Deleting” Them in the Linux CLI
Move files and directories to the desktop trash from the command line, list and restore entries, and understand filesystem and permission limitations.
Managing Diffs When Letting AI Agents Work on Massive Repositories
Use copy-on-write filesystem copies to isolate AI-assisted edits in large repositories, compare changes, and integrate selected results alongside Git history.
Switch Windows, Windows Terminal, and VS Code Themes All at Once
Switch Windows, Windows Terminal, and VS Code between configured light and dark appearances with a Python command that also sets a solid desktop background.
How to Change the Hostname in WSL
Set a persistent hostname in /etc/wsl.conf and restart the distribution so WSL applies the network configuration.
Macro to Create Text with an Outline Color Different from the Text Color in PowerPoint
Create outlined text in PowerPoint with a VBA macro that duplicates a selected text box, derives the outline color from its background, and groups the layers.
Limiting the Maximum CPU Frequency in Windows
Configure Windows processor frequency limits across power schemes and efficiency classes, then use a Python task to reapply them after startup and resume.
How to Check and Configure bcache `discard` and `cache_mode`
Inspect bcache sysfs settings, enable discard, and switch to writethrough mode, with an explanation of write behavior and the need to confirm device names.
Getting ytmusicapi Headers with Headless Chrome
Attach Playwright to an existing authenticated Chrome or Edge session, capture YouTube Music browse-request headers, and save matching requests as JSON for ytmusicapi setup.
mdadm RAID Recovery Test Helper
Search RAID disk orders and metadata parameters using temporary snapshot overlays, read-only mount probes, resumable CSV results, and sample file listings to investigate recovery candidates.
Restoring Hidden Playback Buttons in YouTube Music
Restore YouTube Music's hidden rewind and forward controls with a userscript that watches control-area changes and throttles visibility updates.
Using Raspberry Pi 4, Raspberry Pi OS, and Docker to Connect Home Assistant with a Eufy IndoorCam 2K Pan & Tilt and Save Images When a Pet Is Detected
Deploy Home Assistant and an Eufy websocket bridge on a Raspberry Pi, configure HACS integration, and save timestamped pet-event images with authentication and automation troubleshooting.
Editing Privileged Files from Emacs: Two Practical Approaches
Compare sudoedit policy changes with Emacs TRAMP access, explaining their security models, daemon integration, sudoers configuration, and handling of relative paths.
How to Automatically Post Eufy Detection Images to Slack from Home Assistant
Configure a Slack bot and Home Assistant notification service, then save and upload Eufy event snapshots, with troubleshooting for scopes, file access, service names, and YAML.
How to Make a `textarea` Automatically Grow With Its Content
Resize a text field using scrollHeight on input, with CSS to control scrolling and sizing and an explicit resize call after programmatic value changes.
Toggle Windows Light and Dark Mode with Python
Read and update Windows app and system theme registry values from Python, then broadcast a settings-change message to apply a light/dark toggle.
How to Prevent `\n` from Appearing in User Input Prompts in Codex
This article outlines the purpose, usage, and precautions of a UserScript designed to prevent unintended ` ` characters from appearing in the prompt input field when using Codex. It also covers the background, steps, verification methods, and optimized implementation.
White Background Color Scheme for Windows Terminal
Define a light terminal palette with dark foreground, cursor, and selection colors, then add it to Windows Terminal's JSON settings and assign it to a profile.
Make PowerShell Readable on a White Windows Terminal Background
Customize PSReadLine token and selection colors for a light terminal background and save the ANSI color settings in the PowerShell profile.
(Out of order) A Tampermonkey Script That Adds a Model Settings Button to ChatGPT
Add a header shortcut that opens ChatGPT's existing model configuration interface and reattaches when the page header is recreated, with notes on DOM-dependent behavior.
Understanding `$@`, `$*`, `"$@"`, and `"$*"` in Shell Scripts
Compare quoted and unquoted positional-argument expansion, showing how argument boundaries, spaces, and IFS affect forwarding, iteration, and combined-string output.
My Favorite rclone mount Settings
Configure full VFS caching with immediate writeback, short metadata lifetimes, disabled polling, and modest read-ahead to favor fresh remote-file visibility.
Running a non-root Samba server on Singularity (Apptainer) using a non-privileged port and sharing `$HOME`
Use Apptainer fakeroot and home-directory bind mounts to run Samba on port 1445, with writable state and logs in user space and fixes for container path errors.
Running `sshd` in Rootless Mode
Create a user-owned SSH server configuration and host key, restrict access to public-key authentication for the current user, and run foreground SSH/SFTP on a high port.
How to Build NCCL Tests in an NVIDIA HPC SDK Environment
Point the nccl-tests build at the SDK's CUDA, NCCL, and associated HPC-X Open MPI directories, then enable MPI support through explicit make variables.
Showing the Model Name in ChatGPT with User-Agent Switcher and Manager
Apply a domain-specific iPhone Chrome user agent to request a ChatGPT interface variant with clearer model identification, while excluding protected authentication domains.
Interactive SLURM Job Attachment with Bash
A Bash helper lists the user's running SLURM jobs, offers fzf selection when needed, and opens an overlapping interactive login shell inside the chosen allocation.
Enabling Persistent Systemd Journal Logging on Linux
Create persistent journal storage with the appropriate permissions, restart journald, and verify that logs from previous boots are available for troubleshooting.
Using Tinyproxy as a Simple Proxy
Install and configure an Alpine HTTP proxy, run it in the foreground or through OpenRC, and route curl, environment-based clients, or SSH connections through it.
How to Automatically Re-Enable Low Power Mode on iPhone
Combine iPhone Shortcuts and a personal automation to restore Low Power Mode when it turns off, using a local flag file and a separate toggle for manual control.
If You Have Multiple Tailscale Machines Behind the Same NAT, Change the `tailscaled` Port
Assign distinct UDP ports to Tailscale hosts sharing a NAT, restart their daemons, and check firewall access and peer connectivity when nodes fall back to relays.
Which NVIDIA HPC SDK Versions Bundle (or Don’t Bundle) CUDA 12 and CUDA 13
Compare the HPC SDK release boundaries for bundled CUDA 12 and 13 toolchains, including the last releases before each transition and the first releases that include them.
Running X11 apps inside a rootless Docker container (by passing xauth cookies)
Pass an X11 authentication cookie into a rootless container, configure a reachable display, and test GUI access with xev while troubleshooting network and display mismatches.
Audio Segmentation with YAMNet: Detecting Speech, Music, and Silence
Combine audio volume thresholds with YAMNet classification, merge adjacent speech and music chunks, and refine transition boundaries to produce timestamped segments.
A JavaScript Overlay for File Upload and Transcription
Upload a selected file to ChatGPT's transcription endpoint through a browser overlay that uses the current session token, detects audio duration, and displays text or API errors.
Running Ubuntu Minimal Cloud Image with QEMU-KVM and SSH in GitHub Actions
Provision an Ubuntu cloud VM in GitHub Actions using KVM, a cached base image, cloud-init, and an overlay disk, then verify SSH readiness and collect logs during cleanup.
Using VHD-Distributed Kernel Modules in WSL2
Explain WSL's module-image packaging and kernelModules configuration, including older workarounds and consolidating stock-compatible custom modules into one VHDX.
Configuring Network Disconnection During Modern Standby in Windows 11
This article provides a comprehensive guide to disabling network connectivity during Modern Standby in Windows 11. It covers the background, steps, verification methods, and precautions, focusing on disabling 'Network Connections During Standby' through Group Policy (for Pro/Enterprise editions), checking if the system uses Modern Standby (S0), and potential side effects.
Using pip with Windows Python Embeddable
Bootstrap pip in the Windows embeddable Python runtime, adjust module search paths, and use virtualenv for isolation, with troubleshooting for imports and certificates.
How to Use a Debian Trixie Docker Image with Wine
Build a Debian container with WineHQ Stable and i386 support, then run Windows executables interactively or from a mounted host directory.
Tailwind CSS v4.1.18 Beginner Guide (Static HTML + JavaScript)
Build a static Tailwind interface with vanilla JavaScript, generated utility CSS, a persistent light/dark toggle, and troubleshooting for missing styles and theme variants.
How to Fix ChatGPT When It Becomes Hard to Open in Google Chrome
Restart Chrome's Network Service from its built-in Task Manager to try to recover stalled ChatGPT loading while keeping the browser and its tabs open.
Archiving ChatGPT Conversations with a Bookmarklet
Select multiple conversations from ChatGPT's history in an injected overlay and archive them sequentially using the page's session token, with progress logging and duplicate-click prevention.
A Simple “Select or Free Input” Web Component
Combine a dropdown and free-text input around one shared value, preserving custom entries when switching modes and synchronizing the displayed selection on blur.
How to Open a Specified YouTube Video in the YouTube App on Android TV
Launch YouTube videos with Kotlin intents that prioritize the TV app and fall back to other handlers, accounting for package visibility and non-Activity contexts.
For Google TV (Android TV OS): Launching a Minimal App with Android Studio + Kotlin
Create a minimal Kotlin TV project, enable device debugging, pair a physical Google TV device through adb, and launch the app from Android Studio.
How to Think About `.gitignore` for Android Studio and a Standard Practical Setup
Define Android project ignore rules for generated files, local settings, and signing material, while comparing policies for shared IDE configuration and Google Services files.
A Bookmarklet to Copy Codex Assistant Replies and PR Messages to Your Clipboard
Extract chronological message text and pull request titles and bodies from a Codex task's page state, then present each item in an overlay with clipboard fallbacks.
How to Bypass Issues with Long Draft Messages in ChatGPT URLs
Use a URL fragment before the draft-message parameter as a workaround when a long ChatGPT query string fails to load correctly.
Publishing a Non-`docs` Folder with GitHub Pages Using GitHub Actions
Deploy an arbitrary static-site directory through GitHub Actions by configuring Pages permissions, path-based triggers, artifact upload, and the deployment environment.
Rewriting a Specific String in a Specific File with git-filter-repo While Minimizing Changed Commits
Limit a Git text replacement to a chosen file and relevant history range, using a callback that skips binary content and unchanged blobs to reduce unnecessary rewrites.
Setting up RHEL to boot with `/` (root) on an `mdadm` RAID device
Pass an mdadm array UUID to dracut through GRUB, update BLS boot parameters, and verify that the RAID array assembles early enough to mount the root filesystem.
A Simple Bookmarklet for Setting Text in a Prompt Field
Enter multiline text in a popup and transfer it into a page's prompt editor as paragraphs, with installation instructions and notes on popup and same-origin restrictions.
A Simple Windows Tool to Hide Chrome Picture-in-Picture Behind Other Windows
Use Python and native Windows APIs to find topmost Chrome windows and remove their pinned stacking behavior without moving, resizing, or activating them.
Building llama.cpp with CUDA in an NVIDIA HPC SDK Environment
Configure CMake to enable the CUDA backend while selecting GCC/G++ for host code and NVCC for GPU code to avoid compiler-flag incompatibilities.
Building llama.cpp in an Environment Without curl Headers
Supply CMake with headers from matching curl source and the installed libcurl shared library to compile llama.cpp without installing curl development packages.
Getting Fill-In-the-Middle Autocomplete Working in VS Code Continue with llama.cpp
Assign a dedicated autocomplete model to llama-server in Continue's YAML configuration, tune suggestion latency, and keep chat endpoints separate when troubleshooting FIM completion.
Notes on Tabby: Llama.cpp, Model Caching, and Access Tokens
Notes on Tabby's local inference backend, configurable model cache directory, model registry, and browser-based account setup for obtaining an access token.
Setting Reasoning Strength in OpenWebUI with `chat_template_kwargs`
Pass reasoning_effort through an OpenWebUI custom model parameter to a llama.cpp chat template, with examples of low, medium, and high settings and their tradeoffs.
A Simple Tool for Downloading Files from Hugging Face
A Python downloader accepts Hugging Face URLs or repository paths, preserves revisions, previews downloads, and falls back from individual files to directory snapshots.
Create a macOS Installer USB Without a Mac
Download an Apple recovery image with macrecovery.py, convert it with dmg2img, and write it to USB from Linux or Windows, with boot and imaging troubleshooting notes.
Make a CLI command from your Python package
Expose a Python function as an installed command through package entry points, with pyproject.toml and setup.cfg examples, editable installs, and virtual-environment verification.
Workaround for using UAS USB3 storage on Linux
Identify problematic USB storage bridges and apply temporary or persistent quirks to disable UAS or limit transfer sizes, including multiple-device settings and initramfs updates.
Rootless Tailscale Setup and Serving
Run Tailscale with userspace networking and local state as an ordinary user, authenticate to a tailnet, and configure, test, or disable raw TCP forwarding.
Set up a bcache partition and evaluate its performance
Create and attach bcache cache and backing devices, configure discard and writeback, and measure random-read behavior while managing memory and device caches.
Changing Author Information in Git History with `git filter-repo`
Rewrite author and committer names and email addresses across Git history, with installation steps and guidance on backups, changed commit IDs, and collaborator coordination.
Bridging a System-Level systemd Target to the User Instance
Forward system network readiness to a user's systemd instance through a templated service and marker target, with linger enabling operation without an active login.
Automatic DDNS Updates with No-IP and systemd
A Python user service checks the router's public IP through UPnP and updates No-IP when it changes, with persistent state, backups, and journal logging.
How to reliably open YouTube links in the YouTube app using an iOS Shortcut
Build an iOS Shortcut that reads clipboard URLs, distinguishes Shorts from standard videos, extracts video IDs, and opens the YouTube app through its custom URL scheme.
Installing bcache-tools from Oracle Linux 9 Repository on Rocky Linux 9
Import Oracle's signing key and restrict its BaseOS repository to bcache-tools, with notes on dependency filtering and the separate requirement for kernel support.
Workaround for WSL1 DNS issue
Disable automatic resolver-file generation in WSL and use PowerShell to populate Linux DNS settings from Windows adapters associated with default routes.
Container Definitions to Run OpenWebUI (Ubuntu 24.04 / Dockerfile & Singularity)
Minimal Ubuntu 24.04 Docker and Singularity definitions install Python, virtual environment support, and FFmpeg with noninteractive package setup and cache cleanup.
Recreating a bcache Backing Device with a New Block Size (Cache Device Not Used)
Recreate bcache backing metadata with a different block size while reusing the recorded data offset, covering shutdown order, verification, and data-loss risks.
Docker Wrapper Command for Interactive, Host-Networked Runs with Local Home and Working Directory Mounts
Run disposable interactive Docker containers with host networking, home-directory mounts, the current working directory, and forwarded command arguments.
How to Clean Install Windows 11 on a MacBookPro14,2
Prepare Boot Camp drivers, preserve the EFI partition's APPLE directory for Touch Bar support, install Windows, and finish by installing the saved hardware drivers.
Windows 11 Setup Bypass Toolkit: Requirement Gating and Local-Account-Only OOBE
Outline unofficial Windows installation and local-account setup commands, along with compatibility, edition, and support limitations that affect their use.
Running dnsmasq as a Dedicated DNS Server with macvlan to Avoid systemd-resolved Conflicts
Give dnsmasq its own IP and network namespace using macvlan, with static DNS records, limited privileges, and systemd-managed setup and cleanup.
Generate Reverse DNS (PTR) Names from IP Addresses via Python CLI
A short Python script converts one or more IPv4 or IPv6 command-line arguments into the corresponding reverse DNS query names using the standard ipaddress module.
Designing a Secure Directory Layout for Services That Start as Root and Then Drop Privileges
Separate root-owned configuration and code from writable service state using FHS directories, restrictive permissions, and systemd filesystem controls after dropping privileges.
Capturing DHCP-Assigned Network Parameters Using a Temporary macvlan in a Linux Network Namespace
Probe DHCP configuration in an isolated network namespace, export the resulting MAC, IP addresses, and gateways to a shell file, and remove the temporary interfaces afterward.
Building a “Software HSM” Workflow with SoftHSM2, OpenSC, and Python (Private Key Never Exported)
Set up PKCS#11 tokens, generate RSA keys, and invoke private-key operations from Python, including hybrid encryption and the security limits of software-backed key storage.
Automated Data Extraction for the BUFFALO WSR-3200AX4S Admin UI
An async Python client logs into a BUFFALO router, extracts WAN DHCP DNS data, validates responses, and archives HTTP bodies and metadata for debugging.
Switching from the ChatGPT Web Page to the ChatGPT App on iOS
A bookmarklet replaces the current page's URL scheme with chatgpt:// while preserving its path, query, and fragment to attempt a handoff to the iOS app.
Extracting a Shared Box URL from the Login Page
Recover a Box destination from the login page's redirect parameter and copy the reconstructed sharing URL to the clipboard with a browser bookmarklet.
How to Uninstall Microsoft 365 Office
Sign out an old PC through the Microsoft 365 organizational account portal before uninstalling Office, with online deactivation also available for inaccessible devices.
Block Outbound Traffic for a Specific Linux User with iptables (While Keeping Listening Ports Working)
Use owner and connection-state rules for IPv4 and IPv6 to restrict a user's new outbound connections while permitting loopback traffic and replies from listening services.
Safely Backing Up and Restoring iptables and ip6tables Rules on Linux
Save IPv4 and IPv6 firewall rules before experiments, restore the original configuration, and account for firewall managers and automatic rollback when working remotely.
Automating TLS Certificate Renewal with systemd and `acme.sh`
Schedule ACME webroot validation with systemd, temporarily forward port 80 through UPnP, and deploy renewed certificates to Nginx and StrongSwan.
Automating TLS Certificate Renewal with systemd and `certbot` with Strong Privilege Separation
Automate certificate issuance under an unprivileged account while reserving deployment for root, with temporary UPnP access, renewal hooks, and validation before service restarts.
Git Pull and Divergent Branches: Choosing Merge, Rebase, or Fast-Forward
Understand divergent Git histories and compare merge, rebase, and fast-forward pulls, including configuration defaults, one-time overrides, and tradeoffs for shared branches.
Workaround for Certbot Installation on Raspbian 11 (Bullseye) armv7l with Python 3.9
Resolve Certbot dependency failures on ARMv7 Python 3.9 by constraining cffi below 2.0 or installing libffi development files to build a newer release.
Using Windows Name Resolution for SSH in WSL1 Alpine
Pair a Windows resolver with a C SSH wrapper in Alpine to resolve otherwise unavailable hostnames, inspect SSH configuration, and connect using a validated IP address.
Copy Multiple Files to Markdown with One Script for GitHub Gist
Export multiple editable Gist files to the clipboard as one Markdown document, preserving filenames and choosing language labels and code fences for each file.
A Simple Python Tool for Controlled PDF Text Extraction (PyPDF)
Extract PDF text with a Python CLI that supports font filtering, sentence line breaks, hyphenated word merging, and streaming output for further processing.
Fonts to Use for English Posters: Practical Picks That Always Work
Choose headline and body fonts for academic, business, and event posters, with guidance on legibility, weights, numerals, font pairing, and reliable print export.
A Bookmarklet for Jumping Between ChatGPT Conversation Articles
Navigate long ChatGPT conversations with a searchable article list, keyboard controls, smooth scrolling, and temporary highlighting of the selected message.
A Simple Bookmarklet Selector UI
Combine multiple bookmarklets in a searchable modal menu with keyboard navigation, ARIA attributes, and cleanup that restores the page before running a selection.
Preventing `pip install` Outside of Virtual Environments (Enforcing venv Usage)
Require a virtual environment through pip configuration or environment variables, with temporary overrides and an explanation of why shell wrappers alone are insufficient.
Listening for Windows Battery Percentage Changes in C++ with a Hidden Message Window
A C++ example registers a message-only window for battery notifications, decodes power broadcasts, and releases notification handles when the message loop ends.
Listening to Battery Percentage Changes on Windows with Python and Win32 Messages
Monitor battery level and AC/DC changes through Python ctypes callbacks, issue charging reminders, and shut down a hidden Win32 message window cleanly on Ctrl+C.
Why Ctrl+C “Doesn’t Work” in a Windows Message Loop: `GetMessageW()` Blocking, and Two Practical Fixes
Explain why blocking Win32 calls delay Python's Ctrl+C handling and compare immediate shutdown through a console event with periodic timer-based wakeups.
Pre-experiment: Floating IP/MAC handoff for an on-demand (Suspend + WoL) access system
A Linux namespace experiment tests whether pending TCP connections survive a service IP/MAC handoff, examining packet dropping, ARP behavior, single ownership, and wake-up constraints.
Pre-experiment: Floating IP/MAC handoff for an on-demand (Suspend + WoL) access system
A Linux namespace experiment tests whether pending TCP connections survive a service IP/MAC handoff, examining packet dropping, ARP behavior, single ownership, and wake-up constraints.
Rewriting Remote Git History with `reset` and `push --force-with-lease`
Move a remote branch to an earlier commit using a hard reset and a lease-checked force push, with examples for removing recent commits and coordinating shared history.
Installing Realtek r8168 as a DKMS Module on RHEL-Compatible Distributions
Links to English and Japanese guides for installing the Realtek Ethernet driver through DKMS on RHEL-compatible systems.
Installing Realtek r8168 as a DKMS Module on RHEL-Compatible Distributions
Build and register Realtek's Ethernet driver with DKMS, replace r8169, rebuild initramfs, and troubleshoot kernel-header mismatches and Secure Boot after updates.