<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on Rusty Bower</title><link>https://www.rustybower.com/categories/python/</link><description>Recent content in Python on Rusty Bower</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© Rusty Bower</copyright><lastBuildDate>Thu, 16 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.rustybower.com/categories/python/index.xml" rel="self" type="application/rss+xml"/><item><title>Automating a Smart Bird Feeder's Photo Archive with Kubernetes and Immich</title><link>https://www.rustybower.com/posts/birdbuddy-immich-photo-pipeline/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.rustybower.com/posts/birdbuddy-immich-photo-pipeline/</guid><description>&lt;p&gt;My &lt;a href="https://mybirdbuddy.com/" target="_blank" rel="noreferrer"&gt;Bird Buddy&lt;/a&gt; smart feeder takes a photo every time a bird visits. Over a few months, that adds up to thousands of images — all sitting in Bird Buddy&amp;rsquo;s cloud app with no good way to search, organize, or back them up. I wanted them in &lt;a href="https://immich.app/" target="_blank" rel="noreferrer"&gt;Immich&lt;/a&gt;, my self-hosted photo library, organized by species and properly timestamped.&lt;/p&gt;</description></item><item><title>Unit-Testing Home Automations That Run in Kubernetes</title><link>https://www.rustybower.com/posts/unit-tested-appdaemon-automations-kubernetes/</link><pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate><guid>https://www.rustybower.com/posts/unit-tested-appdaemon-automations-kubernetes/</guid><description>&lt;p&gt;Home automations are code that controls physical things. When they break, the consequences aren&amp;rsquo;t a 500 error — they&amp;rsquo;re a garage door that won&amp;rsquo;t close in a snowstorm, or window shades that open at 3 AM, or a tablet that charges to 100% and stays plugged in for months until the battery swells.&lt;/p&gt;</description></item><item><title>Fixing 10,000 Upside-Down Scanned Slides with a Local Vision LLM</title><link>https://www.rustybower.com/posts/fixing-upside-down-scanned-slides-vision-llm/</link><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.rustybower.com/posts/fixing-upside-down-scanned-slides-vision-llm/</guid><description>&lt;p&gt;My grandfather had about 10,000 35mm slides. I rented a &lt;a href="https://www.slidesnap.com/" target="_blank" rel="noreferrer"&gt;SlideSnap X1&lt;/a&gt; and spent a weekend feeding them through — 33 boxes worth, organized into folders by box. The scanner itself was great, but when you&amp;rsquo;re pushing through thousands of slides in a weekend, some inevitably go in upside down or backwards. No metadata, no EXIF orientation flags — just thousands of JPEGs, some right-side up, some not, sitting on a NAS.&lt;/p&gt;</description></item><item><title>Finding Fraud in $1 Trillion of Medicaid Data with DuckDB</title><link>https://www.rustybower.com/posts/medicaid-fraud-detection-duckdb-227m-rows/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.rustybower.com/posts/medicaid-fraud-detection-duckdb-227m-rows/</guid><description>&lt;p&gt;CMS recently published provider-level Medicaid spending data from T-MSIS — every fee-for-service, managed care, and CHIP claim from 2018 through 2024, aggregated by billing provider, procedure code, and month. 227 million rows. $1.09 trillion in payments. I wanted to see what falls out when you run some basic fraud heuristics against it.&lt;/p&gt;</description></item></channel></rss>