cleberg.net
- Webmaster
- Christian Cleberg
- Generator
- weblorg 0.1.0 (https://emacs.love/weblorg)
- Public lists
- I ♥ RSS
- Fetched
Table of Contents
1. Migration Phases
2. Phase 1: Configure the New Server
2.1. Choosing an Operating System (OS)
2.2. Booting with Nvidia
3. Phase 2: Migrate Plex Data & Devices
3.1. Terminology
3.2. Step 01: [Client] Update Settings
3.3. Step 02: [Destination]...
Personal Finance Tracker with SQLite
Table of Contents
1. Personal Financial Tracking
2. SQLite
2.1. Visual Editing
2.2. Schema
2.3. Python Reporting
2.3.1. Step 1: Jupyter Notebooks
2.3.2. Step 2: Python Scripts
1. Personal Financial Tracking
For the last 6-ish years, I've tracked my finances...
Create Reliable Notes with Plaintext
Table of Contents
1. Choosing Durable File Formats
1.1. Saving & Syncing Files
1.1.1. Version Control with Git
1.1.2. Backups!
1.2. Writing on Desktop
1.2.1. Programming on Desktop
1.3. Writing on Mobile
1. Choosing Durable File Formats
TL;DR (Too ...
Twosday: 2/22/22
Table of Contents
1. Tuesday, Twosday
1. Tuesday, Twosday
I'm taking a break from my usual technology-related posts and writing about
something a little more enjoyable today.
Today is Tuesday, February 22nd, 2022. Today is 02-22-2022. Today is Twosday.
Let's ...
Nginx Caching for Static Content
Table of Contents
1. Update Your Nginx Config to Cache Static Files
2. Testing Results
3. Caveats
1. Update Your Nginx Config to Cache Static Files
If you run a website on Nginx that serves static content (i.e., content that is
not dynamic and changing with interac...
ExifTool: Strip Metadata Before You Post
Table of Contents
1. Why Strip Metadata?
2. Installing exiftool
3. Recursively Strip Data
1. Why Strip Metadata?
Okay, so you want to strip metadata from your photos. Perhaps you take pictures
of very rare birds, and the location metadata is a gold mine for poacher...
Migrating from Ubuntu to Debian with Nginx
Table of Contents
1. Server Operating System (OS): Debian
2. Web Server: Nginx
2.1. Nginx vs. Apache
3. Gemini Server: Agate
1. Server Operating System (OS): Debian
I've used various Linux distributions throughout the years, but I've never used
anything except ...
Dynamic DNS Updates via the Njalla API
Table of Contents
1. Njalla's API
1.1. Creating a Token
1.2. Finding the Correct API Request
2. Server Set-Up
2.1. Creating the Script
2.2. Running the Script
2.3. Setting the Script to Run Automatically
1. Njalla's API
As noted in my recent post about swit...
Leaving the Office
Table of Contents
1. The Working World is Changing
2. In-Person Offices
2.1. Retail Internship
2.2. Semi-Private Cubicles
2.3. Semi-Open Floor Concept
2.4. Hotel Office Concept
3. Home Office
3.1. Tip #1
3.2. Tip #2
3.3. Tip #3
3.4. Tip #4
4. My Preferences
1...
I Passed the CISA Exam
Table of Contents
1. What is the CISA?
2. Exam Content
3. My Studying Habits
3.1. Study Materials
3.2. Studying Process
4. Results
5. Looking Forward
1. What is the CISA?
For those of you lucky enough not to be knee-deep in the world of information
technology (...
Apache Rewrite Rules for Extensionless URLs
Table of Contents
1. The Problem
2. The Solution
1. The Problem
After recently switching static site generators (SSG), my blog URLs (uniform
resource locators) changed with no option to preserve the classic .html
extension at the end of my blog post URLs.
I real...
Audit Sampling with Pandas
Table of Contents
1. Introduction
2. Audit Requirements for Sampling
2.1. Randomness
2.2. Sample Sizes
2.2.1. Sampling with Python & Pandas
2.3. Simple Random Sample
2.4. Simple Random Sample: Using Multiple Input Files
2.5. Stratified Random Sample
2.6. Strati...
Deleting All GitLab Repositories with Python
Table of Contents
1. Background
2. Use a Python Script
2.1. Requirements
2.2. Create the Script
1. Background
Have you ever used GitLab to host your source code, moved to a different host,
and wanted to delete everything from your GitLab account? Well, this pos...
Correcting Git Author Details Across Multiple Repos
Table of Contents
1. Changing Git Author/Email Based on Previously Committed Email
1. Changing Git Author/Email Based on Previously Committed Email
Here's the dilemma: You've been committing changes to your Git repository with
an incorrect name or email (or multipl...
My Photography Gear
Table of Contents
1. Why Photography?
2. Older Cameras
3. My Current Kit
1. Why Photography?
I've often wondered why photography is as enticing as it is. You can see
billions of people around the world taking photographs every single moment of
the day. New technolo...
A Lightweight, Static PHP Comment System
Table of Contents
1. The Terrible-ness of Commenting Systems
2. Stay Static with Server-Side Comments
3. Create a Comment Form
4. Handle Comments via POST
5. Display User Comments
6. Bonus: Create a 'Recent Comments' Page
7. Possible Enhancements
1. The Terrible-ness...
Agate Gemini Server Setup
Table of Contents
1. Similar Article Available
2. Preparation
3. Getting Started with Agate
4. Install Dependencies
5. Create Symlinks
6. Using Agate's Built-In Installation Tool
7. Configure the Gemini Service
8. Fixing Systemd Errors
9. Firewall Rules
10. Creating Conte...
VPS Web Server: Get Off Shared Hosting
Table of Contents
1. Shared Hosting vs. VPS (Virtual Private Server)
2. My Situation
3. Getting Started: Buying a VPS
4. Configuring DNS Settings
5. Server Updates and Packages
6. Create A User Account
7. Install Software
8. Website Files & Folders
9. Apache Configura...
Vaporwave vs. Outrun
Table of Contents
1. Overview
2. Vaporwave
2.1. Time Frame
2.2. Art
2.3. Music
3. Outrun
3.1. Time Frame
3.2. Art
3.3. Music
4. Conclusion
1. Overview
When it comes to an aesthetic that originated primarily online, there tends to
be a lot of confusion aroun...
Gemini Capsule: Deploy and Own Your Content
Table of Contents
1. What is Gemini?
1.0.1. Free Option
1.1. Midnight Pub - Beginner Friendly
2. Paid Option
2.1. Sourcehut
1. What is Gemini?
Gemini is an internet protocol introduced in June 2019 as an alternative to the
Hypertext Transfer Protocol (H...
Scripting Mass Clones from GitHub and Sourcehut
Table of Contents
1. Cloning from GitHub
2. Cloning from Sourcehut
3. Moving Repositories to a New Host
1. Cloning from GitHub
If you're like me and use a lot of different devices [and sometimes decide to
just wipe your device and start with a new operating system ...
macOS for Linux Users
Table of Contents
1. Diving into macOS
2. Initial Thoughts
3. Making it Feel Like Home
4. Xcode
5. Homebrew
6. iTerm2
7. Oh-My-Zsh
8. Oh-My-Zsh Themes
9. Oh-My-Zsh Plugins
1. Diving into macOS
After spending nearly 15 years working with Windows and 8 years on Linux...
UFW: Firewall Setup on Ubuntu
Table of Contents
1. Uncomplicated Firewall
2. Getting Help
3. Set Default State
4. Adding Port Rules
5. Enable ufw
6. Checking Status
7. Deleting Rules
8. Managing App Rules
9. Creating App Rules
1. Uncomplicated Firewall
Uncomplicated Firewall (UFW) is a convenie...
Fediverse: Decentralized Social
Table of Contents
1. What is the Fediverse?
2. Federated Alternatives to Popular Sites
2.1. Reddit
2.2. Twitter/Facebook/Tumblr
2.3. Instagram
2.4. Slack/Discord
2.5. Youtube/Vimeo
2.6. Spotify/Soundcloud
2.7. Podcasting
2.8. Medium/Blogger
3. Get Started
1. What...
SEUM: Speedrunners from Hell
Table of Contents
1. Game Description
2. Story
3. Gameplay
1. Game Description
SEUM: Speedrunners from Hell is an incredibly fast-paced mashup of a puzzle game
and a free-running game. Created by Pine Studio in early 2016 and first released
as a demo on GameJolt, t...
The Zork Anthology
Table of Contents
1. Download (Free)
2. Game Description
3. The Map
4. In-Game Screenshots
5. Conclusion
1. Download (Free)
Before we get into the game itself, you should know that you can download Zork
for free from Infocom's download page. So feel free to boot it...
Neon Drive
Table of Contents
1. Game Description
2. Gameplay
3. In-Game Screenshots
4. Other Suggestions
1. Game Description
Neon Drive presents itself as a simple arcade-style game inspired by the arcade
race games of the 1980s, yet it has managed to take up hours of my life...
Minimalist Website Redesign (5kb)
Table of Contents
1. A Brief History
2. The Redesign Process
3. The Results
3.1. Reflection
1. A Brief History
As a form of continuous learning and entertainment, I've been running a handful
of websites since 2016 when I took my first programming courses in col...
On Mediocrity
Table of Contents
1. Perfect is the Enemy of Good
2. When Mediocrity Isn't Enough
1. Perfect is the Enemy of Good
As the saying goes, "the best is the enemy of the good." As we strive for
perfection, we often fail to realize the implications of such an undertaking....
Data Analysis: World Happiness Choropleth Map
Table of Contents
1. Background Information
2. Install Packages
3. Import the Data
4. Clean the Data
5. Merge the Data
6. Create the Map
7. Create a Tooltip on Hover
1. Background Information
The dataset (obtained from Kaggle) used in this article contains a list o...