Archives2026Oct 14JavaScript Basics: Validate Environment Variables in Node.js #JavaScript#Node.js#Configuration#BeginnersOct 14JavaScript Basics: Test Small Functions With Node's Built-in Runner #JavaScript#testing#beginners#Node.jsOct 14JavaScript Basics: Split Reusable Code Into ES Modules #JavaScript#modules#beginners#Node.jsOct 14JavaScript Basics: Build and Edit URLs With URLSearchParams #JavaScript#URLs#beginners#Node.jsOct 14JavaScript Basics: Add Command-Line Options with parseArgs #JavaScript#Node.js#Command Line#BeginnersOct 14JavaScript Basics: Reading Local Files with async and await #JavaScript#Node.js#FilesOct 14JavaScript Basics: Parse, Validate, and Write JSON #JavaScript#JSON#Node.js#BeginnerOct 14JavaScript Basics: Count, Look Up, and Deduplicate with Map and Set #JavaScript#Map#Set#Node.js#BeginnerOct 14JavaScript Basics: Transform Arrays Without Changing the Original #JavaScript#arrays#beginners#Node.jsOct 14JavaScript Basics: Read Object Options With Reliable Defaults #JavaScript#objects#beginners#Node.jsOct 13Python Basics: Time Zones and Clock Changes with zoneinfo #Python#zoneinfo#Time ZonesOct 13Python Basics: Replacing Dependencies with unittest.mock #Python#unittest.mock#TestingOct 13Python Basics: Ordering Dependent Tasks with graphlib #Python#graphlib#DependenciesOct 13Python Basics: Keeping Numeric Samples in an array #Python#array#NumbersOct 13Python Basics: Describing Data with Type Hints #Python#typing#Type HintsOct 13Python Basics: Measuring Small Operations with timeit #Python#timeit#PerformanceOct 13Python Basics: Making Random Choices with random #Python#random#SimulationOct 13Python Basics: Everyday Calculations with math #Python#math#NumbersOct 13Python Basics: Copying and Moving Files with shutil #Python#shutil#FilesOct 13Python Basics: Checking Documentation Examples with doctest #Python#doctest#TestingOct 13Python Basics: Working with Months and Weekdays Using calendar #Python#calendar#DatesOct 13Python Basics: Working with In-Memory Streams with io #Python#io#FilesOct 13Python Basics: Packing Binary Records with struct #Python#struct#Binary DataOct 13Python Basics: Escaping and Unescaping Text with html #Python#html#TextOct 13Python Basics: Creating and Reading Identifiers with uuid #Python#uuid#IdentifiersOct 12Python Basics: Sorting Records with operator #Python#operator#SortingOct 12Python Basics: Inspecting Text with unicodedata #Python#unicodedata#UnicodeOct 12Python Basics: Filling Text with string.Template #Python#string.Template#TextOct 12Python Basics: Encoding Bytes with base64 #Python#base64#EncodingOct 12Python Basics: Calculating Exact Ratios with fractions #Python#fractions#NumbersOct 12Python Basics: Understanding Shallow and Deep Copies #Python#copy#CollectionsOct 12Python Basics: Splitting Quoted Text with shlex #Python#shlex#StringsOct 12Python Basics: Matching Filename Patterns with fnmatch #Python#fnmatch#FilesOct 12Python Basics: Inspecting Data with pprint #Python#pprint#DebuggingOct 12Python Basics: Comparing Text with difflib #Python#difflib#TextOct 12Python Basics: Validating IP Addresses and Subnets with ipaddress #Python#ipaddress#NetworkingOct 12Python Basics: Reading INI Settings with configparser #Python#configparser#ConfigurationOct 12Python Basics: Reading and Writing Compressed Text with gzip #Python#gzip#FilesOct 12Python Basics: Managing Cleanup with contextlib #Python#contextlib#ResourcesOct 12Python Basics: Building and Reading URLs with urllib.parse #Python#urllib.parse#URLsOct 12Python Basics: Taking the Next Item with heapq #Python#heapq#CollectionsOct 12Python Basics: Summarizing Measurements with statistics #Python#statistics#NumbersOct 12Python Basics: Searching Sorted Lists with bisect #Python#bisect#CollectionsOct 12Python Basics: Reusing Results with functools #Python#functools#CachingOct 12Python Basics: Giving Choices Names with enum #Python#enum#DataOct 12Python Basics: Matching Text with re #Python#re#TextOct 12Python Basics: Keeping Related Values in a Dataclass #Python#dataclasses#DataOct 12Python Basics: Formatting Plain Text with textwrap #Python#textwrap#TextOct 12Python Basics: Controlling Decimal Arithmetic and Rounding #Python#decimal#NumbersOct 12Python Basics: Combining and Batching Iterators #Python#itertools#IterationOct 11Python Basics: Reading TOML Configuration with tomllib #Python#tomllib#ConfigurationOct 11Python Basics: Reading and Validating Environment Variables #Python#environment-variables#ConfigurationOct 11Python Basics: Hashing Files with SHA-256 #Python#hashlib#FilesOct 11Python Basics: Creating and Inspecting ZIP Archives #Python#zipfile#FilesOct 11Python Basics: Counting and Grouping with collections #Python#collections#DataOct 11Python Basics: Testing a Function with unittest #Python#Testing#unittestOct 11Python Basics: Running Commands with subprocess #Python#Commands#subprocessOct 11Python Basics: Recording Events with logging #Python#logging#DebuggingOct 11Python Basics: Parsing Timestamps and Converting to UTC #Python#Dates#UTCOct 11Python Basics: Creating Temporary Files with tempfile #Python#tempfile#FilesOct 11Python Basics: Working with Files Using pathlib #Python#Files#pathlibOct 11Python Basics: Reading and Writing JSON Files #Python#JSON#FilesOct 11Python Basics: Reading and Writing CSV with Headers #Python#CSV#FilesOct 11Python Basics: Querying SQLite with Parameters #Python#SQLite#SQLOct 11Python Basics: Adding Command-Line Arguments with argparse #Python#Command Line#argparseOct 10Git Basics: Working on Two Branches with Worktrees #Git#Command Line#DevelopmentOct 10Git Basics: Saving and Applying a Patch File #Git#Command Line#DevelopmentOct 10Git Basics: Recovering a Detached Commit with Reflog #Git#Command Line#DevelopmentOct 10Git Basics: Finding a Broken Commit with Bisect #Git#Command Line#DevelopmentOct 10Git Basics: Copying One Commit with Cherry-Pick #Git#Command Line#DevelopmentOct 09Git Basics: Saving Unfinished Work with Stash #Git#Command Line#DevelopmentOct 09Git Basics: Resolving a Merge Conflict #Git#Command Line#DevelopmentOct 09Git Basics: Practicing Fetch Pull and Push Locally #Git#Command Line#DevelopmentOct 09Git Basics: Marking a Version with an Annotated Tag #Git#Command Line#DevelopmentOct 09Git Basics: Ignoring Generated Files #Git#Command Line#DevelopmentOct 09Git Basics: Unstaging Edits and Reverting a Commit #Git#Command Line#DevelopmentOct 09Git Basics: Staging Files and Making a Commit #Git#Command Line#DevelopmentOct 09Git Basics: Reviewing Staged and Unstaged Changes #Git#Command Line#DevelopmentOct 09Git Basics: Finding Changes in Commit History #Git#Command Line#DevelopmentOct 09Git Basics: Creating a Branch and Merging It #Git#Command Line#DevelopmentOct 08Linux Basics: Writing a Small Bash Script #Linux#Debian#Ubuntu#Command LineOct 08Linux Basics: Understanding File Permission Bits #Linux#Debian#Ubuntu#Command LineOct 08Linux Basics: Replacing Text with sed #Linux#Debian#Ubuntu#Command LineOct 08Linux Basics: Quoting Text and Matching Filenames #Linux#Debian#Ubuntu#Command LineOct 08Linux Basics: Filtering and Totaling Fields with awk #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Using Bash Exit Status #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Sorting and Counting Text Lines #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Selecting Text Fields with cut #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Inspecting Network Addresses and Ports #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Checking File Integrity with SHA-256 #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Reusing Bash Command History #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Getting Help for Commands #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Creating Symbolic Links #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Comparing Files with diff and cmp #Linux#Debian#Ubuntu#Command LineOct 06Linux Basics: Checking System Information #Linux#Debian#Ubuntu#Command LineOct 05Linux Basics: Using Environment Variables #Linux#Debian#Ubuntu#Command LineOct 05Linux Basics: Pipes and Output Redirection #Linux#Debian#Ubuntu#Command LineOct 05Linux Basics: Finding Files with find #Linux#Debian#Ubuntu#Command LineOct 05Linux Basics: Creating and Extracting tar Archives #Linux#Debian#Ubuntu#Command LineOct 05Linux Basics: Checking Running Processes #Linux#Debian#Ubuntu#Command LineOct 04Linux Basics: Reading and Searching Text Files #Linux#Debian#Ubuntu#Command LineOct 04Linux Basics: Moving Around the Terminal #Linux#Debian#Ubuntu#Command LineOct 04Linux Basics: Managing Packages with apt #Linux#Debian#Ubuntu#Command LineOct 04Linux Basics: Creating, Copying, and Removing Files #Linux#Debian#Ubuntu#Command LineOct 04Linux Basics: Checking Services and Logs #Linux#Debian#Ubuntu#Command LineSep 30Stop Re-uploading Unchanged Hugo Files to S3 with a SHA-256 Manifest #Hugo#S3#CloudFront#GitHub Actions#PythonMay 03Running Proxmox VXLAN SDN over WireGuard with OPNsense NAT #Proxmox#WireGuard#VXLAN#OPNsense2024Jul 13Installing Docker Engine (docker-ce) on Ubuntu #Docker#Linux2021Jul 23Editing the hosts file on macOS #hosts#macOSJul 21Disabling HSTS for a specific domain in Chrome #Chrome#HSTSJan 06Creating a Linux RAM disk (tmpfs) #Linux#tmpfs2020Sep 05Issuing and installing an SSL certificate with Let's Encrypt (Certbot) #Certbot#HTTPS#Let's Encrypt#SSLAug 16Hosting a static website with CloudFront and Amazon S3 #Amazon S3#AWS#CloudFront#Route 53Jul 29Upgrading Ubuntu 18.04 LTS to 20.04 LTS #UbuntuJul 28Changing the Windows 10 Lock screen slideshow layout #Windows 10Feb 25iPhone disconnecting on macOS #iPhone Xs#macOSFeb 21Installing PiVPN (OpenVPN) #OpenVPN#PiVPNFeb 12Configuring an NTP client on Ubuntu 18.04 LTS #NTP#UbuntuFeb 11Upgrading Ubuntu 16.04 LTS to 18.04 LTS #UbuntuFeb 06Changing the timezone on Ubuntu #timezone#UbuntuFeb 04Changing the hostname on Ubuntu 18.04 LTS #UbuntuJan 29Windows 10 Ubuntu 0x80070422 error #Windows 10#wslJan 22Raspberry Pi boot failure #Raspberry Pi#SDXCJan 17Creating a swap file on Ubuntu 18.04 LTS #UbuntuJan 15Splitting FLAC files on Ubuntu #cue#flac#Ubuntu2019Jul 10RemoteFX USB redirection in Hyper-V #Hyper-V#RDP#RemoteFXJul 08Installing Resilio Sync on Ubuntu 18.04 LTS #Resilio SyncJun 29Applying the TCP BBR algorithm to a Linux server #BBRJun 26Removing borders from the WordPress Twenty Sixteen theme #WordPressJun 25Showing Linux folder size #LinuxJun 24Changing the phpMyAdmin access URL #Apache#phpMyAdminJun 22When GNUBOARD short URLs do not work #GNUBOARDJun 21Visual Studio resx processing error #VisualStudioJun 20C# ArrayList class #ArrayList#c#Jun 20Changing WordPress body font #css#font#WordPress