Blog 168
- Configuring and Using an External Disk in Linux Sep 1, 2024
- Neovim Git Branch Aware Automatic Session Persistence Jun 22, 2024
- The Reality of Adding Nines to Your SLOs Jun 17, 2024
- Automatically Reopen Previous Files and Session in Neovim Jun 6, 2024
- Linux Disk Recover - initramfs Bug Jun 5, 2024
- Using Neovim as my PostgreSQL Client May 11, 2024
- What Determines if a Kubernetes Node is Ready? Apr 20, 2024
- OpenTelemetry Sample Application Mar 26, 2024
- Restrict HTTP Request Methods in Go Feb 19, 2024
- Get HTTP Route Values in Go Feb 11, 2024
- Handling Concurrent Errors in Go Jan 31, 2024
- Optimizing End-to-end (e2e) Test Performance Jan 3, 2024
- 2023 Blogging in Review Dec 31, 2023
- Adding Tests to Go Project Templates Nov 18, 2023
- The Lack of Compensation in Open Source Software is Unsustainable Nov 16, 2023
- Helm Hooks Are An Anti-Pattern and Should Be Avoided Nov 6, 2023
- Tools and Processes I Used For Writing My Book Oct 25, 2023
- Creating and Using Go Project Templates Oct 20, 2023
- How I Host, Run, and Publish Articles to My Blog Oct 18, 2023
- Using Vim as my PostgreSQL Client Oct 12, 2023
- Getting a User's Table Privileges in PostgreSQL Sep 25, 2023
- Troubleshooting the OpenTelemetry Target Allocator Jul 5, 2023
- Ingest Prometheus Metrics with OpenTelemetry Jul 3, 2023
- Peeling Back the Layers of the Code Review Onion May 20, 2023
- 12 Tips for Effective Technical Blogging Mar 15, 2023
- When and How to Use Helm and Kustomize Together Mar 8, 2023
- Kubernetes Taints, Tolerations, and Understanding the PreferNoSchedule Effect Feb 23, 2023
- List Prometheus Scraping Targets Feb 22, 2023
- Troubleshooting Error 'Jwt issuer is not configured' in Istio and Envoy Feb 7, 2023
- Get Istio's Internal Service Registry Feb 4, 2023
- Restrict Routes to JWT-Authenticated Principals and Allow Unauthenticated Requests to Other Routes Feb 1, 2023
- Nested URL Routes to Different Services with Istio Jan 26, 2023
- Store Helm Charts in GitHub Container Repository Jan 21, 2023
- Install Istio with Flux Jan 5, 2023
- Deploy Istio Egress Gateway After Installation Nov 23, 2022
- Go Slices - Passing By Reference or Value? Oct 14, 2022
- Optimize Redundant Operations with Memoization Sep 4, 2022
- Observability with OpenTelemetry Part 6 - Ecosystem Aug 15, 2022
- Observability with OpenTelemetry Part 5 - Propagation and Baggage Aug 12, 2022
- Observability with OpenTelemetry Part 4 - Collector Aug 11, 2022
- Observability with OpenTelemetry Part 3 - SDK and Exporting Aug 10, 2022
- Observability with OpenTelemetry Part 2 - Instrumentation Aug 9, 2022
- Observability with OpenTelemetry Part 1 - Introduction Aug 7, 2022
- Require a Label Prefix for GitHub Issues Jun 28, 2022
- Using Vim as Your MySQL Shell Editor Jun 18, 2022
- JWT Authorization Flow with an Identity Provider Jun 6, 2022
- Making GitHub API Requests with a JWT May 28, 2022
- Understanding GitHub App Authentication May 18, 2022
- Manual Approval in a GitHub Actions Workflow Mar 28, 2022
- Kubernetes Ingress with Contour Mar 21, 2022
- Analyze Current Goroutines in Go Feb 21, 2022
- Learning DevOps in 2022 Feb 14, 2022
- 2021 - A Year of Blogging in Review Jan 3, 2022
- Errors and Error Wrapping in Go Dec 28, 2021
- Unstructured Kubernetes Components with client-go's Dynamic Client Dec 22, 2021
- Unit Testing Kubernetes Resources with Go Dec 15, 2021
- Connect to Kubernetes from Go Dec 7, 2021
- Dynamic Admission Control Certificate Management with cert-manager Nov 29, 2021
- Create a Basic Kubernetes Validating Webhook Nov 22, 2021
- Create a Basic Kubernetes Mutating Webhook Nov 15, 2021
- Dump Kubernetes Logs and Search for Errors Nov 9, 2021
- Why We Need mTLS in Kubernetes Service Meshes Nov 4, 2021
- 15 Technical Leadership Qualities That I Try to Emulate Oct 25, 2021
- Automatically Create Self-Hosted Runners with GitHub Actions Oct 19, 2021
- Create Ephemeral Self-Hosted Runners for GitHub Actions Oct 11, 2021
- Deploy to AKS Using a Managed Identity from a GitHub Actions Self-Hosted Runner Sep 27, 2021
- Deploy to AKS from GitHub Actions Sep 20, 2021
- Create an AKS Cluster with Azure Bicep Sep 13, 2021
- Common Scenarios with Bash Parameter Expansion Sep 7, 2021
- Discover Kubernetes API Calls from kubectl Aug 30, 2021
- Search All Files Including Dot Files and Dot Directories in Vim Aug 26, 2021
- Handling Errors from Deferred Functions in Go Aug 12, 2021
- Reading and Writing an Azure Storage Blob from Python Aug 7, 2021
- Access an Azure Key Vault Secret from Python Jul 26, 2021
- 20 Questions a Software Engineer Should Ask When Joining a New Team Jul 19, 2021
- Export Azure Monitor Logs to Azure Storage Jul 12, 2021
- Azure Monitor Log Analytics too Expensive? Part 2 - Save Some Money Jul 6, 2021
- Azure Monitor Log Analytics too Expensive? Part 1 - Find Out Why Jun 28, 2021
- Using the Azure Monitor Agent to Send systemd Journal Logs through Syslog Jun 22, 2021
- Send systemd Journal Logs to Azure Monitor through Syslog Jun 16, 2021
- 5 of My Favorite Vim Features Jun 7, 2021
- Power Apps - The Easiest and Quickest Possible Way to Create a Mobile App May 31, 2021
- Find the Owning Resource Group From Within an Azure VM May 24, 2021
- Schedule AKS Clusters to Start and Stop Automatically May 17, 2021
- Understanding nil Interfaces and Interfaces with nil Values in Go May 10, 2021
- Azure Linux VM SSH Error - Connection refused May 6, 2021
- Automating the Easy Things with Power Automate May 3, 2021
- Top-Level Drop-In to Apply Settings to All Units of a Certain Type Apr 26, 2021
- SSH into AKS Nodes Apr 19, 2021
- Using Desktop Linux in a Microsoft Shop - Yes You Can Apr 12, 2021
- systemd Inhibitor Locks Deep Dive Apr 8, 2021
- Cheap AKS Update - Basic Load Balancer Apr 5, 2021
- Show the Current Azure CLI Subscription in the Terminal Apr 1, 2021
- Search for a Key Vault Certificate in an Azure Subscription Mar 29, 2021
- Audit Azure AD User Role Assignments Mar 25, 2021
- systemctl status Output Explained Mar 22, 2021
- Get Azure Key Vault Certificate Expiration Dates Mar 18, 2021
- Find which Azure RBAC Roles Contain a Permission Mar 15, 2021
- DefaultDependencies Can Cause a Unit Ordering Cycle Mar 11, 2021
- Using journalctl Effectively Mar 8, 2021
- Using Azure RBAC to Secure AKS Clusters Mar 4, 2021
- Authenticate to Azure from Python Mar 1, 2021
- Understanding systemd Critical Chains Feb 25, 2021
- Complete Binary Tree Feb 22, 2021
- Using xargs to Construct Dynamic Commands Feb 18, 2021
- Nginx Error - key values mismatch Feb 15, 2021
- 8 Reasons Why I Like git Repositories for Documentation (Personal and Team) Feb 11, 2021
- Show and Browse the Kubernetes API Reference Documentation in the Terminal Feb 8, 2021
- Renew Azure Key Vault Certificates from Let's Encrypt Feb 4, 2021
- Run Python Code in a Shell Script Feb 1, 2021
- Azure Key Vault Certificates with Let's Encrypt as the Issuer CA Jan 28, 2021
- Setting Conditional Breakpoints in Go Jan 25, 2021
- Query Azure Resources by Tags with the Azure CLI Jan 21, 2021
- Create a Release and Upload Artifacts with GitHub Actions Jan 18, 2021
- Emotionally Investing Yourself in Tools Jan 14, 2021
- Collect Custom Metrics in AKS Jan 11, 2021
- Debug a Python Application Running in Kubernetes Jan 7, 2021
- Create a Quick and Easy Prometheus Exporter Jan 4, 2021
- Why You Should Typically Use Named Arguments in Python Dec 28, 2020
- Change a Function's Output Based on Input Parameter Value in a Python Unit Test Dec 21, 2020
- Find the systemd Unit that Owns a Process Dec 17, 2020
- Sorting Algorithm Stability - What it is and When it Matters Dec 14, 2020
- Be Good at Referencing, Not Remembering Dec 11, 2020
- Go's append Behavior and Potentially Unintended Side Effects Dec 7, 2020
- Find Which apiVersion to Use for Kubernetes Resources Nov 30, 2020
- Azure Consumption Summary from the Command Line Nov 22, 2020
- Run Kubernetes Pods on Specific VM Types in AKS Nov 16, 2020
- Make HTTP Requests to the Azure REST API from the Command Line Nov 6, 2020
- Logging to Azure from an AKS Cluster Nov 2, 2020
- Run Kubernetes in Azure the Cheap Way Oct 22, 2020
- Output Multiline Strings in GitHub Actions Oct 19, 2020
- systemd Time Spans in Go Oct 1, 2020
- Beware of kubectl's -t (--tty) Option Sep 17, 2020
- Search Through Azure Locations and Their Names Sep 16, 2020
- Access the OS Disk from an Inaccessible Azure Linux VM Sep 3, 2020
- Azure Linux VM SSH Error - Permission denied (publickey) Sep 1, 2020
- AKS StorageClass Objects and Provisioners Aug 31, 2020
- Azure CLI Tips and Tricks Jul 28, 2020
- Azure Active Directory Service Principals and Permissions from the Azure CLI Jul 10, 2020
- Simple vs Oneshot - Choosing a systemd Service Type Jun 22, 2020
- Why Feature Flags Are Great Jun 15, 2020
- Kubernetes Application Upgrade Synchronization With Helm May 12, 2020
- Connect Kubernetes Applications to Azure Resources with Managed Service Identities Apr 30, 2020
- Why I Prefer systemd Timers Over Cron Apr 22, 2020
- Dump Manifests for all Revisions for a Helm Release Apr 3, 2020
- 7 Reasons to Use the Terminal Feb 25, 2020
- Kubernetes API Groups, Resources, and Verbs Feb 5, 2020
- Running kubectl Commands From Within a Pod Feb 4, 2020
- Getting systemd unit dependencies Feb 3, 2020
- Moving Away From Medium (mostly) to GitHub Pages For My Blog Feb 2, 2020
- Searching Through All systemd Unit Files for a String Nov 20, 2019
- Talking to systemd Through dbus with Python Sep 12, 2019
- Creating a Python package for Ubuntu... From code zero to apt install Aug 6, 2019
- Kubernetes’ AlwaysPullImages Admission Control - the Importance, Implementation, and Security Vulnerability in its Absence May 1, 2018
- Extending Kubernetes - Create Controllers for Core and Custom Resources Apr 18, 2018
- Logging to systemd in Python Feb 8, 2018
- Get the History of an Installed Package with DNF Jan 29, 2018
- Logging, Flask, and Gunicorn... the Manageable Way Jan 20, 2018
- Debugging a Python Flask Application in a Container with Docker Compose Jan 14, 2018
- SSH Through a Jumpbox to a Protected Server Jan 3, 2018
- Monitor, Log, and Alert CPU Throttling from Overheating on Linux Oct 5, 2017
- Running and Debugging Azure Functions Locally on Linux Sep 25, 2017
- Sherlock - a sandbox environment provisioning tool for your integration testing pipeline in Azure Jul 17, 2017
- Installing Python's cryptography package on Fedora Linux May 31, 2017
- Module Import Precedence in Python May 13, 2017
- Use Azure Blob Storage for Remote Terraform State Apr 20, 2017
- Custom build logic post git push with Azure App Service and Kudu for a Node.js web app Nov 22, 2016
- The easy (and nice) way to do CLI apps in Python Oct 21, 2016