<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Exploring Python</title><description>Python automation for platform engineers and SREs — from first script to production-grade automation tools.</description><link>https://python.bradpenney.io/</link><atom:link href="https://python.bradpenney.io/feed_rss_updated.xml" rel="self" type="application/rss+xml" /> <managingEditor>Brad Penney</managingEditor><language>en</language> <pubDate>Sun, 14 Jun 2026 01:57:30 -0000</pubDate> <lastBuildDate>Sun, 14 Jun 2026 01:57:30 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.19.0</generator> <image> <url>https://python.bradpenney.io/images/exploring_python.png</url> <title>Exploring Python</title> <link>https://python.bradpenney.io/</link> </image> <item> <title>Home</title> <description>Python automation for platform engineers and SREs — task-first guides for health checking, log parsing, config comparison, fleet operations, and more.</description> <link>https://python.bradpenney.io/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/</guid> </item> <item> <title>Did the Config Change?</title> <description>Compare JSON and YAML configuration files programmatically — catch config drift after deployments, verify running state against expected, and surface exactly what changed.</description> <link>https://python.bradpenney.io/day_one/comparing_configs/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/comparing_configs/</guid> </item> <item> <title>Is It Still Up?</title> <description>Write a Python health-check poller that distinguishes connection errors from HTTP errors, handles timeouts, and exits cleanly for use in deployment pipelines.</description> <link>https://python.bradpenney.io/day_one/health_check/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/health_check/</guid> </item> <item> <title>Overview</title> <description>Python automation for platform engineers who know bash — task-first guides for health checking, log parsing, config comparison, and fleet operations.</description> <link>https://python.bradpenney.io/day_one/overview/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/overview/</guid> </item> <item> <title>What Just Broke?</title> <description>Use Python to parse application log files — count errors by component, find when errors started, and understand failure patterns that grep alone can&#39;t surface.</description> <link>https://python.bradpenney.io/day_one/parsing_logs/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/parsing_logs/</guid> </item> <item> <title>Run This Everywhere</title> <description>Loop over a server inventory in Python, run checks across your fleet, collect per-server results, and produce a clear pass/fail report — with proper failure handling.</description> <link>https://python.bradpenney.io/day_one/run_everywhere/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/run_everywhere/</guid> </item> <item> <title>The &#34;Don&#39;t Do This&#34; Guide</title> <description>Production safety rules for Python automation — no hardcoded credentials, no shell injection, always build dry-run first, and never let exceptions fail silently.</description> <link>https://python.bradpenney.io/day_one/safety_guide/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/safety_guide/</guid> </item> <item> <title>The Clean Setup</title> <description>How to install Python correctly on Linux and macOS, why you must use virtual environments (venv), and how to set up your scratchpad for testing automation ideas.</description> <link>https://python.bradpenney.io/day_one/setup/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/setup/</guid> </item> <item> <title>Why Python (Not Just Bash)</title> <description>A practical decision framework for platform engineers: when to stay in bash, when to switch to Python, and what the real differences look like in practice.</description> <link>https://python.bradpenney.io/day_one/why_python/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/why_python/</guid> </item> <item> <title>My Bash Script Is Getting Out of Hand</title> <description>Migrate an unwieldy bash deployment script to Python using subprocess — keep running shell commands while gaining proper error handling, logging, and readable control flow.</description> <link>https://python.bradpenney.io/day_one/wrapping_bash/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/day_one/wrapping_bash/</guid> </item> <item> <title>Environment Variables and Secrets</title> <description>Load API keys, passwords, and tokens in Python automation scripts using environment variables, .env files, and secrets stores — without hardcoding anything.</description> <link>https://python.bradpenney.io/essentials/env_and_secrets/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/essentials/env_and_secrets/</guid> </item> <item> <title>Working with YAML</title> <description>Read, modify, and generate Kubernetes manifests and other YAML files in Python using PyYAML — including multi-document YAML, safe loading, and common pitfalls.</description> <link>https://python.bradpenney.io/essentials/yaml/</link> <pubDate>Sun, 14 Jun 2026 01:56:53 -0300</pubDate> <source url="https://python.bradpenney.io/feed_rss_updated.xml">Exploring Python</source><guid isPermaLink="true">https://python.bradpenney.io/essentials/yaml/</guid> </item> </channel> </rss>