<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Caleb Dudley - Blog</title>
      <link>https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/</link>
      <description>Caleb Dudley — Software Engineer focused on DevOps, Cloud Architecture, Python, Linux, and IoT.</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Sun, 26 Jul 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>A contraction timer, and my first PWA</title>
          <pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/contraction-timer-pwa/</link>
          <guid>https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/contraction-timer-pwa/</guid>
          <description xml:base="https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/contraction-timer-pwa/">&lt;p&gt;After seeing my friend Michael Dennis&#x27;s recent presentation on Progressive Web Apps, I&#x27;ve decided to dip my toes in while creating something useful: a pregnancy contraction timer! Super simple, client-side only application that I hammered out with Claude Code.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;contraction-timer.calebdudley.dev&quot;&gt;Try it out&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s hosted on Azure as a static web app, complete with a build pipeline and test environment. It&#x27;s even got dark mode!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ca1ebd&#x2F;contraction-timer&quot;&gt;Source code&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;It allows you to edit contractions, which the app I had used previously decided was a paid feature… hence the rebuild.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Down the AI rabbit hole</title>
          <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/down-the-ai-rabbit-hole/</link>
          <guid>https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/down-the-ai-rabbit-hole/</guid>
          <description xml:base="https://agreeable-pebble-000b6560f.7.azurestaticapps.net/blog/down-the-ai-rabbit-hole/">&lt;p&gt;Decided to jump down the AI rabbit hole! I set up an openclaw instance on my desktop, then got annoyed by it and made it set up a Hermes instance in the cloud which I&#x27;ve had a slightly better experience with so far.&lt;&#x2F;p&gt;
&lt;p&gt;Now I&#x27;ve got it integrated with Claude Code&#x2F;GitHub and spinning up remote sessions I link into with my phone. It&#x27;s been pretty cool to drive from my phone on these small side projects I&#x27;ve had in my head for a while!&lt;&#x2F;p&gt;
&lt;p&gt;So far I&#x27;ve got a good start on:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ca1ebd&#x2F;updateme&quot;&gt;updateme&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt; — a simple CLI tool (written in Python) to get an info dump: the weather, headlines, and market performance.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ca1ebd&#x2F;myworld&quot;&gt;myworld&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt; — an opinionated container that has the tools I like using bundled in. Right now just vim and updateme, but I have a note-taking process I&#x27;ll build in at some point and will remember more tools to add over time.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ca1ebd&#x2F;lycus&quot;&gt;Lycus&lt;&#x2F;a&gt;&lt;&#x2F;strong&gt; — Ansible automation to rebuild my Hermes server (I named it Lycus) once it breaks… my plan is to let it do whatever it wants until it gets sufficiently broken, and then just spin up a new instance and pull my customizations in. I&#x27;ll just pack up and jump to a new timeline like Rick and Morty.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
    </channel>
</rss>
