41554 blogs · [ { "id": "01a08751-2a21-7374-8f8e-8cd3d3de170a", "title": "Sony MDR7506 Detachable Cable Mod", "url": "https://blog.nathanv.me/posts/sony-mdr7506-detachable-cable/", "published_at": "2026-04-21T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d4b623d2", "title": "Microsoft Dataverse SQL queries with Python", "url": "https://blog.nathanv.me/posts/dataverse-sql-python/", "published_at": "2026-02-03T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d54e7aac", "title": "Docker Multi-architecture Image Builds", "url": "https://blog.nathanv.me/posts/docker-multiarch-ci/", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d605c7a6", "title": "Clacks Overhead", "url": "https://blog.nathanv.me/posts/clacks-overhead/", "published_at": "2026-01-06T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d70486b8", "title": "Getting My Pilot's License in 2025", "url": "https://blog.nathanv.me/posts/getting-my-pilots-license/", "published_at": "2025-11-02T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d791d396", "title": "Cursed Knowledge", "url": "https://blog.nathanv.me/posts/cursed-knowledge/", "published_at": "2025-10-23T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d867f021", "title": "Azure Artifacts with uv", "url": "https://blog.nathanv.me/posts/azure-artifacts-uv/", "published_at": "2025-01-07T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d8f806d8", "title": "Focus FK-7000P Keyboard Cleaning", "url": "https://blog.nathanv.me/posts/fk-7000p-cleaning/", "published_at": "2024-11-09T00:00:00+00:00" }, { "id": "01a08751-2a21-7374-8f8e-8cd3d99892f6", "title": "Polishing Antique Brass Door Hardware", "url": "https://blog.nathanv.me/posts/polishing-brass/", "published_at": "2024-07-29T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd04f850c89", "title": "CrowdStroke", "url": "https://blog.nathanv.me/posts/crowdstroke/", "published_at": "2024-07-19T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05010fc80", "title": "Making Sonatype Nexus 3 work with Cloudflare R2", "url": "https://blog.nathanv.me/posts/sonatype-nexus-cloudflare-r2/", "published_at": "2024-07-05T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0506f39b3", "title": "Kidde Water Leak + Freeze Detector WiFi 6 Compatibility", "url": "https://blog.nathanv.me/posts/kidde-leak-detector/", "published_at": "2024-05-28T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd050d26fc7", "title": "Domains", "url": "https://blog.nathanv.me/posts/domains/", "published_at": "2024-05-06T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05199909a", "title": "Antarctica Trip", "url": "https://blog.nathanv.me/posts/antarctica-trip/", "published_at": "2024-03-20T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd051c9f4ea", "title": "Making Authentik work with OctoPrint and Cura", "url": "https://blog.nathanv.me/posts/authentik-octoprint-cura/", "published_at": "2024-03-03T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd052205bed", "title": "Garmin 400 Series Simulator on Windows 11", "url": "https://blog.nathanv.me/posts/garmin-400-sim-modern-windows/", "published_at": "2023-12-18T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd052f8d6bd", "title": "Closing the dev-to-prod gap", "url": "https://blog.nathanv.me/posts/dev-to-prod-gap/", "published_at": "2023-07-05T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd053614d69", "title": "GPG Commit Signing on Windows", "url": "https://blog.nathanv.me/posts/gpg-windows/", "published_at": "2023-06-06T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd053925970", "title": "Hugo Base URL with Cloudflare Pages", "url": "https://blog.nathanv.me/posts/cloudflare-pages-hugo-baseurl/", "published_at": "2023-04-15T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0545a8c48", "title": "Hugo Resources", "url": "https://blog.nathanv.me/posts/hugo-resources/", "published_at": "2023-04-15T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd054d2cada", "title": "Python Tooling Volume 2", "url": "https://blog.nathanv.me/posts/python-tooling-vol-2/", "published_at": "2023-01-22T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd055d12aa4", "title": "Setting up Octoprint without a Raspberry Pi", "url": "https://blog.nathanv.me/posts/octoprint-setup/", "published_at": "2022-11-02T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd056743d82", "title": "Building a One-Key Keyboard", "url": "https://blog.nathanv.me/posts/one-key-keyboard/", "published_at": "2022-06-10T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd056b12635", "title": "Python Pet Peeves", "url": "https://blog.nathanv.me/posts/python-pet-peeves/", "published_at": "2022-04-16T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd057436a5a", "title": "Python Tooling", "url": "https://blog.nathanv.me/posts/python-tooling/", "published_at": "2022-01-01T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0581b66f4", "title": "Docker Image Names for Dummies", "url": "https://blog.nathanv.me/posts/docker-image-names-for-dummies/", "published_at": "2021-10-10T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0586ee887", "title": "Azure Artifacts Python Package Caching", "url": "https://blog.nathanv.me/posts/python-package-caching/", "published_at": "2021-09-02T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd058db6d66", "title": "Python Type Hinting", "url": "https://blog.nathanv.me/posts/python-type-hinting/", "published_at": "2021-07-01T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd058fc86b3", "title": "My Must-Have VS Code Extensions and Settings", "url": "https://blog.nathanv.me/posts/vs-code-extensions/", "published_at": "2021-06-03T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0596f975b", "title": "Hosting your own fully featured Docker registry", "url": "https://blog.nathanv.me/posts/quay-registry/", "published_at": "2021-05-30T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd059a8d9a7", "title": "Stripping Down Botocore With Python Serverless Requirements", "url": "https://blog.nathanv.me/posts/stripping-botocore-python-serverless/", "published_at": "2021-04-19T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05a7ff19d", "title": "Building a Home Network on a Not-So-Budget", "url": "https://blog.nathanv.me/posts/not-so-budget-home-network/", "published_at": "2021-02-21T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05aa0eceb", "title": "IBM Model M Cleaning", "url": "https://blog.nathanv.me/posts/ibm-model-m-cleaning/", "published_at": "2020-12-18T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05b8e63a3", "title": "Fixing a Weird Python Permission Issue", "url": "https://blog.nathanv.me/posts/python-permission-issue/", "published_at": "2020-10-26T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05b9dafbe", "title": "Stop Using So Many Domain Names", "url": "https://blog.nathanv.me/posts/domain-abuse/", "published_at": "2020-10-06T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05baeb1c6", "title": "Spin Model Checker on Windows", "url": "https://blog.nathanv.me/posts/spin-windows/", "published_at": "2020-09-08T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05bdfe8d6", "title": "Wyze Products Update", "url": "https://blog.nathanv.me/posts/wyze-update/", "published_at": "2020-08-22T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05cab9e6c", "title": "Feasibility of Using a Corncob as a Football", "url": "https://blog.nathanv.me/posts/corncob-football/", "published_at": "2020-06-24T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05d5c10b8", "title": "Wyze Scale Review", "url": "https://blog.nathanv.me/posts/wyze-scale-review/", "published_at": "2020-06-24T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05e5a22ab", "title": "Wyze Band Review", "url": "https://blog.nathanv.me/posts/wyze-band-review/", "published_at": "2020-06-20T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd05f1ba9a9", "title": "DynamoDB for Dummies", "url": "https://blog.nathanv.me/posts/dynamodb-for-dummies/", "published_at": "2020-06-19T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd06015fb22", "title": "Faking Python Imports", "url": "https://blog.nathanv.me/posts/faking-python-imports/", "published_at": "2020-04-20T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd060a21d59", "title": "1973 Schwinn Bicycle Update", "url": "https://blog.nathanv.me/posts/schwinn-bicycle-update/", "published_at": "2020-03-26T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd06107f76d", "title": "Windows Mouse Lagging", "url": "https://blog.nathanv.me/posts/windows-mouse-lagging/", "published_at": "2020-03-19T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd06143ae5a", "title": "Fixing a 1973 Schwinn Bicycle", "url": "https://blog.nathanv.me/posts/fixing-schwinn-bicycle/", "published_at": "2020-02-26T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd061e0b4b1", "title": "Google Drive Isn't a Very Good Product", "url": "https://blog.nathanv.me/posts/google-drive-bad/", "published_at": "2020-02-24T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0628f946b", "title": "Replacing Mailgun", "url": "https://blog.nathanv.me/posts/replacing-mailgun/", "published_at": "2020-02-09T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd062c961bc", "title": "Armoury Crate Waking Windows from Sleep", "url": "https://blog.nathanv.me/posts/armoury-crate-wake/", "published_at": "2020-02-03T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd062d70c5e", "title": "Sun Ultra 24 Server Build", "url": "https://blog.nathanv.me/posts/sun-ultra-24-build/", "published_at": "2020-01-05T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd063ca1531", "title": "Docker Hub Build Hook to Apply Multiple Image Tags", "url": "https://blog.nathanv.me/posts/docker-hub-multiple-tags/", "published_at": "2019-11-23T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0645dfb4b", "title": "Deploying a Static Site with GitHub Actions", "url": "https://blog.nathanv.me/posts/static-site-github-actions/", "published_at": "2019-10-15T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0649022f2", "title": "Building a Home Network on a Budget", "url": "https://blog.nathanv.me/posts/budget-home-network/", "published_at": "2019-10-14T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0658d042b", "title": "Installing HP ProLiant Utilities on Ubuntu Server", "url": "https://blog.nathanv.me/posts/hp-utilities-ubuntu/", "published_at": "2019-07-21T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd0659a4e84", "title": "Converting MySQL 8 Docker Containers to MariaDB", "url": "https://blog.nathanv.me/posts/docker-mysql-to-mariadb/", "published_at": "2019-07-20T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd065c17adf", "title": "Self-Hosting with Docker and Argo Tunnel", "url": "https://blog.nathanv.me/posts/self-host-docker/", "published_at": "2019-07-07T00:00:00+00:00" }, { "id": "01a08751-2a22-70f9-8f80-0dd065f55e6e", "title": "Integrating BOINC with Sun Grid Engine", "url": "https://blog.nathanv.me/posts/boinc-with-sge/", "published_at": "2019-07-05T00:00:00+00:00" } ] posts Claim your blog
Back to blog.nathanv.me
Blog · corpus.blog/blogs/blog.nathanv.me/posts

blog.nathanv.me

blog.nathanv.me

2026

2025

2024

2023

2022

2021

2020

2019