<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog Posts on Daniel McDonough</title><link>https://dev.daniel-mcdonough.com/posts/</link><description>Recent content in Blog Posts on Daniel McDonough</description><generator>Hugo</generator><language>en</language><copyright>© 2026 Daniel McDonough</copyright><lastBuildDate>Sun, 17 May 2026 21:00:00 -0400</lastBuildDate><atom:link href="https://dev.daniel-mcdonough.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting the New Steam Controller Gyro Working in Ship of Harkinian on Linux</title><link>https://dev.daniel-mcdonough.com/posts/getting-the-new-steam-controller-gyro-working-in-ship-of-harkinian-on-linux/</link><pubDate>Sun, 17 May 2026 21:00:00 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/getting-the-new-steam-controller-gyro-working-in-ship-of-harkinian-on-linux/</guid><description>&lt;p>I bought a new Steam controller and wanted to try it. I used it with &lt;a href="https://www.shipofharkinian.com/">Ship of Harkinian&lt;/a> on Linux, launched it via Steam, and noticed gyro wasn&amp;rsquo;t detected. Below is how I got native gyro working for SoH.&lt;/p>
&lt;p>Like any program, launching through Steam grants you the full capabilities of the controller except for native access to gyro. The solution is to emulate the mouse or joystick which is fine for programs that don&amp;rsquo;t support gyro natively but terrible for applications that do.&lt;/p></description></item><item><title>Veeam Restores on Proxmox local-zfs</title><link>https://dev.daniel-mcdonough.com/posts/veeam-restores-on-proxmox-local-zfs/</link><pubDate>Wed, 13 May 2026 13:10:39 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/veeam-restores-on-proxmox-local-zfs/</guid><description>&lt;p>During some disaster recovery work, I deployed a Proxmox cluster to rapidly restore VMs from Veeam but ran into a restore target issue.&lt;/p>
&lt;p>Veeam&amp;rsquo;s Proxmox plugin can back up VMs running on &lt;code>local-zfs&lt;/code> just fine. Restoring them is the problem: Veeam won&amp;rsquo;t use a ZFS pool as a restore target. It needs Directory-type storage. ZFS storage types create zvols for each disk and restoring directly would obviously lead to complexities, especially when trying to export from Veeam as QCOWs.&lt;/p></description></item><item><title>When a 2-Year-Old Permission Change Broke OSLogin</title><link>https://dev.daniel-mcdonough.com/posts/when-a-2-year-old-permission-change-broke-oslogin/</link><pubDate>Sun, 28 Dec 2025 21:45:00 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/when-a-2-year-old-permission-change-broke-oslogin/</guid><description>&lt;h3 id="context">Context&lt;/h3>
&lt;p>I ran into an unusual OSLogin failure while migrating a long-running server into a new GCP project. The request was to migrate from one old GCP project into multiple new ones, one per environment. This included several VMs with dev and prod versions.&lt;/p></description></item><item><title>Upgrading a Neglected EKS Cluster from 1.17 to 1.30</title><link>https://dev.daniel-mcdonough.com/posts/upgrading-a-neglected-eks-cluster-from-1.17-to-1.30/</link><pubDate>Mon, 08 Jul 2024 19:30:00 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/upgrading-a-neglected-eks-cluster-from-1.17-to-1.30/</guid><description>&lt;p>On July 3rd, 2024, I ended up dealing with one of the messier Kubernetes situations I’ve encountered: upgrading an EKS cluster that had effectively been left behind for years. The push to upgrade wasn’t optional as the cluster version was approaching the end of extended support from AWS, and staying on it meant continuing to pay the higher extended support costs.&lt;/p></description></item><item><title>Extending 433MHz Alarm Signals with LoRa</title><link>https://dev.daniel-mcdonough.com/posts/extending-433mhz-alarm-signals-with-lora/</link><pubDate>Fri, 02 Feb 2024 15:10:39 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/extending-433mhz-alarm-signals-with-lora/</guid><description>&lt;p>Door alarms have gotten more sophisticated over the years, but many newer systems are proprietary or comparatively expensive, especially when using Zigbee or similar ecosystems. The older 433 MHz sensors are cheap, simple, and widely available. Most of them use fixed-code amplitude encoding (1527, typically based on the EV1527 chip). The downside is range. In practice, the signal quality from these devices and the common receivers sold online can be poor. If the distance is more than a short span, something has to relay the signal.&lt;/p></description></item><item><title>Using KeepassXC with Terraform</title><link>https://dev.daniel-mcdonough.com/posts/using-keepassxc-with-terraform/</link><pubDate>Wed, 06 Dec 2023 13:10:39 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/using-keepassxc-with-terraform/</guid><description>&lt;h2 id="using-keepassxc-with-terraform">Using KeepassXC with Terraform&lt;/h2>
&lt;p>A personal Vault instance or paying for AWS secrets manager is overkill for personal projects, especially ones with local or mixed environment setups. A local encrypted file, like a .enc Ansible can use, is annoying to edit. KeepassXC offers a GUI, familiar interface, and pathing system which makes it a viable alternative.&lt;/p></description></item><item><title>Using K3S: Overcoming CGNAT with Cloudflare Tunnel(Terraform)</title><link>https://dev.daniel-mcdonough.com/posts/using-k3s-overcoming-cgnat-with-cloudflare-tunnelterraform/</link><pubDate>Tue, 05 Dec 2023 15:10:39 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/using-k3s-overcoming-cgnat-with-cloudflare-tunnelterraform/</guid><description>&lt;p>I purchased three mini computers on Black Friday to use for K3S learning and self hosting. Naturally, I want to access the cluster from the internet but there are some issues. The house only has copper run to it so the only internet options are cellular and Starlink. In both cases, port forwarding is next to impossible due to firmware restrictions and CGNAT. I will be explaining how I accessed the HTTP services via Cloudflare Tunnel.&lt;/p></description></item><item><title>Using K3S: Overcoming CGNAT with Cloudflare Tunnel</title><link>https://dev.daniel-mcdonough.com/posts/using-k3s-overcoming-cgnat-with-cloudflare-tunnel/</link><pubDate>Tue, 05 Dec 2023 13:10:39 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/using-k3s-overcoming-cgnat-with-cloudflare-tunnel/</guid><description>&lt;p>&lt;a href="https://dev.daniel-mcdonough.com/posts/using-k3s-overcoming-cgnat-with-cloudflare-tunnelterraform/">If you want to deploy with Terraform, look here.&lt;/a>&lt;/p>
&lt;p>I purchased three mini computers on Black Friday to use for K3S learning and self hosting. Naturaly, I want to access the cluster from the internet but there are some issues. The house only has copper run to it so the only internet options are cellular and Starlink. In both cases, port forwarding is next to impossible due to firmware restrictions and CGNAT. I will be explaining how I accessed the HTTP services via Cloudflare Tunnel.&lt;/p></description></item><item><title>Integrating the Big Ass Fans Haiku with Home Assistant</title><link>https://dev.daniel-mcdonough.com/posts/integrating-the-big-ass-fans-haiku-with-home-assistant/</link><pubDate>Mon, 25 Sep 2023 13:10:39 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/integrating-the-big-ass-fans-haiku-with-home-assistant/</guid><description>&lt;p>&lt;a href="https://github.com/Daniel-McDonough/esphome-bigassfans-haiku-controller">This post originally published on github.&lt;/a>&lt;/p>
&lt;p>This ESPHome configuration has been tested with an older ~2017 Haiku fan using an IR blaster board using an ESP8285.&lt;/p>
&lt;p>The ESP8285 IR boad was purchased from Aliexpress.&lt;/p>
&lt;p>&lt;img src="https://dev.daniel-mcdonough.com/irblaster/ir-board.png" alt="IR Board">&lt;/p>
&lt;p>This is the remote used to record the IR commands. It may work with other Big Ass Fans brand fans that support IR control. IR codes for all buttons are in &lt;a href="https://raw.githubusercontent.com/Daniel-McDonough/esphome-bigassfans-haiku-controller/master/ir-codes.txt">ir-codes.txt&lt;/a>.&lt;/p></description></item><item><title>Importing a Vultr VPS into Terraform</title><link>https://dev.daniel-mcdonough.com/posts/importing-a-vultr-vps-into-terraform/</link><pubDate>Thu, 11 May 2023 22:38:52 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/importing-a-vultr-vps-into-terraform/</guid><description>&lt;p>Terraform is a powerful infrastructure-as-code tool that allows you to define and manage your cloud resources. While Terraform provides built-in support for various cloud providers, importing existing resources into Terraform can sometimes be a challenge. This article will guide you through the process of importing a Vultr instance into Terraform, addressing the issue of missing instance IDs in Vultr&amp;rsquo;s web interface.&lt;/p></description></item><item><title>Intro</title><link>https://dev.daniel-mcdonough.com/posts/intro/</link><pubDate>Mon, 03 Apr 2023 15:38:52 -0400</pubDate><guid>https://dev.daniel-mcdonough.com/posts/intro/</guid><description>&lt;p>Hello&lt;/p></description></item></channel></rss>