<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gene Reader</title><link>https://blog.gereader.xyz/</link><description>Recent content on Gene Reader</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>eugene.reader@gmail.com (Gene Reader)</managingEditor><webMaster>eugene.reader@gmail.com (Gene Reader)</webMaster><lastBuildDate>Sat, 22 Nov 2025 16:52:05 -0800</lastBuildDate><atom:link href="https://blog.gereader.xyz/index.xml" rel="self" type="application/rss+xml"/><item><title>Part 1 - Building a CI/CD Pipeline with GitHub Actions and Container Registries</title><link>https://blog.gereader.xyz/posts/part-1-cicd-container-registry/</link><pubDate>Mon, 18 Aug 2025 15:10:14 -0700</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/part-1-cicd-container-registry/</guid><description>&lt;h1 id="building-a-cicd-pipeline-with-github-actions-and-container-registries"&gt;Building a CI/CD Pipeline with GitHub Actions and Container Registries&lt;/h1&gt;
&lt;p&gt;I recently built a complete CI/CD pipeline for my Flask job application tracking app. Like my Hugo blog setup, I struggled to find a single source covering everything I needed. I found myself cobbling together multiple YouTube videos, tutorials, and AWS and GitHub Actions documentation just to get a working pipeline. There&amp;rsquo;s a lot of moving parts here, so I decided to split this into a two-part series.&lt;/p&gt;</description></item><item><title>Part 2 - Deploying to AWS ECS: From Container Registry to Production</title><link>https://blog.gereader.xyz/posts/part-2-cicd-deploy-aws-ecs/</link><pubDate>Fri, 22 Aug 2025 15:10:14 -0700</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/part-2-cicd-deploy-aws-ecs/</guid><description>&lt;h1 id="deploying-to-aws-ecs-from-container-registry-to-production"&gt;Deploying to AWS ECS: From Container Registry to Production&lt;/h1&gt;
&lt;p&gt;In &lt;a href="https://blog.gereader.xyz/posts/part-1-cicd-container-registry/"&gt;Part 1&lt;/a&gt;, I built a pipeline that automatically tests my Flask app and pushes containers to both GHCR and ECR. I&amp;rsquo;m going to deploy those containers somewhere that people can use them. I&amp;rsquo;m going to use AWS ECS to make my app publicly accessible. (This won&amp;rsquo;t be accessible to the public, I&amp;rsquo;ll be spinning this down after the demo to avoid burning through my AWS credits and racking up costs.)&lt;/p&gt;</description></item><item><title>Nautocon and AutoCon4 Session Notes (Unofficial)</title><link>https://blog.gereader.xyz/posts/autocon4-notes/</link><pubDate>Sat, 22 Nov 2025 16:52:05 -0800</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/autocon4-notes/</guid><description>&lt;p&gt;These are my personal reflection notes from the AutoCon4 and Nautocon sessions I attended. I took notes during the sessions and expanded them the same day while everything was still fresh, trying to pull out the high-level concepts I wanted to remember.&lt;/p&gt;
&lt;p&gt;I wrote most of this in fast shorthand during the talks, then turned those notes into fuller summaries later. That means there is always a chance I captured something imperfectly or interpreted a point differently than the speaker intended. &lt;b&gt;Any mistakes are mine.&lt;/b&gt;&lt;/p&gt;</description></item><item><title>What AutoCon4 Taught Me</title><link>https://blog.gereader.xyz/posts/autocon4/</link><pubDate>Sat, 22 Nov 2025 14:17:51 -0800</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/autocon4/</guid><description>&lt;p&gt;I went into AutoCon4 expecting to hear new tooling ideas, clever automation tricks, and maybe a few case studies to bring home. I walked out with something very different.&lt;/p&gt;
&lt;p&gt;Instead of focusing on the latest frameworks or features, almost every speaker pushed a much deeper point.&lt;/p&gt;
&lt;p&gt;If you want to go deeper in what I learned at Nautocon and AutoCon4, I have also published my expanded session notes:
&lt;a href="https://blog.gereader.xyz/posts/autocon4-notes/"&gt;Nautocon &amp;amp; AutoCon4 Session Notes (Unofficial)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How I Connected My Transcend Micro CPAP to an M-Series Mac</title><link>https://blog.gereader.xyz/posts/transcend-micro-mac-setup/</link><pubDate>Sun, 16 Nov 2025 10:45:17 -0800</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/transcend-micro-mac-setup/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Running the &lt;strong&gt;Transcend MiniCPAP software&lt;/strong&gt; on an &lt;strong&gt;M-series Mac&lt;/strong&gt; (in my case an M4 Pro) inside &lt;strong&gt;Parallels Desktop&lt;/strong&gt; was not plug-and-play.&lt;br&gt;
Windows 11 ARM detected the Transcend Micro as an &lt;strong&gt;FT230X Basic UART&lt;/strong&gt;, but no suitable driver was available.&lt;/p&gt;
&lt;p&gt;The trick was understanding that the Transcend Micro uses an &lt;strong&gt;FTDI FT230X&lt;/strong&gt; USB-to-serial bridge.&lt;br&gt;
The solution required using the correct &lt;strong&gt;ARM64 VCP driver&lt;/strong&gt;, editing its &lt;code&gt;.inf&lt;/code&gt; file so Windows would accept it, and working around a Parallels path issue.&lt;/p&gt;</description></item><item><title>Building a RSS News Aggregator with GitHub Pages</title><link>https://blog.gereader.xyz/posts/rss-news-aggregator/</link><pubDate>Sat, 11 Oct 2025 09:05:21 -0700</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/rss-news-aggregator/</guid><description>&lt;p&gt;I find myself doom scrolling through content that an algorithm somewhere has decided I want to read. My browser&amp;rsquo;s &amp;ldquo;new tab&amp;rdquo; page often shows articles I don&amp;rsquo;t care about or don&amp;rsquo;t want to see. I realized I could take control by setting my own homepage. A page that shows the news I actually want to read, because I curated the list myself. I understand I could likely find an RSS reader website and build a feed that way, but this seemed like a simple enough problem that I should be able to do it myself without worrying about ads or algorithms.&lt;/p&gt;</description></item><item><title>Building a Network Automation Lab: Containerlab + NetBox on macOS</title><link>https://blog.gereader.xyz/posts/intro-to-clab/</link><pubDate>Sun, 28 Sep 2025 14:00:00 -0700</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/intro-to-clab/</guid><description>&lt;h1 id="building-a-network-automation-lab-containerlab--netbox-on-macos"&gt;Building a Network Automation Lab: Containerlab + NetBox on macOS&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Building a foundation for network automation testing and development on a Mac from 2018&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="the-challenge"&gt;The Challenge&lt;/h2&gt;
&lt;p&gt;I needed a reliable local lab environment for testing network automation scripts and prototyping configurations. My 2018 MacBook Pro with 16GB RAM isn&amp;rsquo;t exactly cutting-edge anymore, so I had to be smart about how I used my resources.&lt;/p&gt;
&lt;p&gt;My goal was to build something that could handle real routing protocols and integrate with modern automation tools, but wouldn&amp;rsquo;t require enterprise hardware or cloud resources.&lt;/p&gt;</description></item><item><title>Set Up Hugo Blog</title><link>https://blog.gereader.xyz/posts/set-up-hugo-blog/</link><pubDate>Sun, 17 Aug 2025 16:30:05 -0700</pubDate><author>eugene.reader@gmail.com (Gene Reader)</author><guid>https://blog.gereader.xyz/posts/set-up-hugo-blog/</guid><description>&lt;h1 id="setting-up-a-hugo-based-blog-on-github-pages"&gt;Setting Up a Hugo-based Blog on GitHub Pages&lt;/h1&gt;
&lt;p&gt;I will be showing you how I set up a Hugo blog, being published to GitHub Pages using GitHub Actions for free.&lt;/p&gt;
&lt;p&gt;I chose GitHub Pages because it offers the ability to host static websites for free with minimal configuration, and I have a new interest in GitHub Actions. I noted that the &amp;ldquo;modern&amp;rdquo; method to deploy a website on GitHub is with Actions and I couldn&amp;rsquo;t pass up the opportunity. While going through the process of deploying this blog, I found that no single resource had all the information I needed to get everything stood up. I figured, &amp;ldquo;hey I&amp;rsquo;m making a blog why not write what I wish I had&amp;rdquo; and that&amp;rsquo;s how this post came to be. The process is fairly simple from start to finish once you know where all the moving parts are located.&lt;/p&gt;</description></item></channel></rss>