<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>keyop Blog</title>
    <link>index.html</link>
    <description>Blog posts from keyop</description>
    <lastBuildDate>Sun, 07 Jun 2026 18:00:14 -0700</lastBuildDate>
    <item>
      <title>Pimoroni Grow HAT Mini</title>
      <link>pimoroni-grow-hat-mini.html</link>
      <description>![grow_hat_mini.png](/api/attachments/preview/019e7fdb-71a9-72fa-8eb6-db868c2b055c)&#xA;&#xA;I ordered a Pimoroni Grow HAT Mini to water the tomatoes in my greenhouse.  When I went to hook it up, I discovered that it needs a few updates to work on Trixie.  Here&amp;apos;s how I installed the latest dependencies and made some minor tweaks to get it running on the latest Raspberry Pi OS.&#xA;&#xA;&#xA;[[toc]]&#xA;&#xA;## Links&#xA;&#xA;  * [Pimoroni Grow-Python Source Code](https://github.com/pimoroni/grow-python)&#xA;  * Pimoroni Docs&#xA;    * [Ge...</description>
      <pubDate>Sun, 31 May 2026 14:06:21 -0700</pubDate>
      <guid>pimoroni-grow-hat-mini.html</guid>
    </item>
    <item>
      <title>Introducing Keyop Messenger</title>
      <link>introducing-keyop-messenger.html</link>
      <description>[keyop-messenger](https://github.com/wu/keyop-messenger) is a fast, lightweight, federated pub-sub messaging system with at-least-once delivery guarantees, offline resilience, and mTLS security.  It was designed to run efficiently on resource-constrained systems with minimal operational complexity.&#xA;&#xA;I created it to be the nervous system for &amp;apos;keyop&amp;apos;, the latest generation of a distributed application I&amp;apos;ve been working on since 1999.&#xA;&#xA;This post was not created or edited by AI.&#xA;&#xA;[[toc]]&#xA;&#xA;## Why cre...</description>
      <pubDate>Sun, 26 Apr 2026 18:27:04 -0700</pubDate>
      <guid>introducing-keyop-messenger.html</guid>
    </item>
    <item>
      <title>Command Line Only Install For Headless Raspberry Pi OS (Trixie)</title>
      <link>command-line-only-install-for-headless-raspberry-pi-os-trixie.html</link>
      <description>This guide provides instructions for automating the setup of a headless Raspberry Pi running the latest release of Trixie using the `firstrun.sh` mechanism used by the Raspberry Pi Imager.  This allows automating configuration such as hostname, user creation, SSH key installation, and Wi-Fi connectivity.&#xA;&#xA;This post was not created or edited by AI.&#xA;&#xA;[[toc]]&#xA;&#xA;## Background&#xA;&#xA;We have a lot of headless Raspis on the geekfarm for monitoring and automation.  It&amp;apos;s a pain to bring a keyboard and monitor ...</description>
      <pubDate>Wed, 14 Jan 2026 15:02:19 -0700</pubDate>
      <guid>command-line-only-install-for-headless-raspberry-pi-os-trixie.html</guid>
    </item>
    <item>
      <title>Raspberry Pi Imager - How does it work?</title>
      <link>raspberry-pi-imager-how-does-it-work.html</link>
      <description>**Update**: I used the info from this article to automate trixie installs, see: [[Command Line Only Install For Headless Raspberry Pi OS (Trixie)]].&#xA;&#xA;This post was not created or edited by AI.&#xA;&#xA;[[toc]]&#xA;&#xA;## Background&#xA;&#xA;The [Raspberry Pi Imager](https://www.raspberrypi.com/software/) is a great tool that has helped make Raspberry Pi more accessible to a wider range of users.&#xA;&#xA;But there are a few things that make it less appealing for me.  In the past, it annoyed me that I had to run it over X Wind...</description>
      <pubDate>Sun, 11 Jan 2026 18:55:42 -0700</pubDate>
      <guid>raspberry-pi-imager-how-does-it-work.html</guid>
    </item>
    <item>
      <title>GoAccess web log analyzer</title>
      <link>goaccess-web-log-analyzer.html</link>
      <description>On the geekfarm, we frequently use GoAccess for ad-hoc web traffic analysis and monitoring.  It offers both a TUI and an HTML interface.&#xA;&#xA;  * [GoAccess](https://github.com/allinurl/goaccess)&#xA;  * [GoAccess - Visual Web Log Analyzer](https://goaccess.io/)&#xA;&#xA;## Command Line HTML report&#xA;&#xA;When I want to analyze or monitor the traffic coming to Ghost, here&amp;apos;s the command I use&#xA;&#xA;```bash&#xA;goaccess /var/log/nginx/access.log --log-format &amp;quot;COMBINED&amp;quot; --sort-panel=&amp;apos;VISIT_TIMES,BY_DATA,DESC&amp;apos; -o /path/to/nginx/co...</description>
      <pubDate>Wed, 07 Jan 2026 19:48:30 -0700</pubDate>
      <guid>goaccess-web-log-analyzer.html</guid>
    </item>
    <item>
      <title>Command Line Build Notes for Headless Raspberry Pi OS (bookworm)</title>
      <link>command-line-build-notes-for-headless-raspberry-pi-os-bookworm.html</link>
      <description>UPDATE: Newer info available here: [[Command Line Only Install For Headless Raspberry Pi OS (Trixie)]]&#xA;&#xA;Here&amp;apos;s how we do our Raspberry Pi builds on the geekfarm.  Most of the instructions I see for building raspi images require using the Raspberry Pi Imager or some other image utility.  These instructions are for folks like me who just want to edit the files and run the commands themselves.  This stuff is pretty simple, but doesn&amp;apos;t seem to be well documented.  Having this information makes it re...</description>
      <pubDate>Mon, 20 Oct 2025 13:04:50 -0700</pubDate>
      <guid>command-line-build-notes-for-headless-raspberry-pi-os-bookworm.html</guid>
    </item>
    <item>
      <title>Issues and Annoyances with the MacOS Notes App</title>
      <link>issues-and-annoyances-with-the-macos-notes-app.html</link>
      <description>I&amp;apos;m a fan of ubiquitous capture.  I rely on Notes heavily, and I keep a lot of information in Notes.  Bet&amp;apos;s face it, Notes on MacOS is just not a very good editor.  It has some wonderfully powerful cloud features like sync to all my Apple devices, offline viewing and editing, sharing, and shared editing.  History is also tracked for shared notes.  And I was incredibly happy to see that Markdown export was recently added.  But when it comes to basic editing tasks, Notes has a pretty basic feature...</description>
      <pubDate>Wed, 08 Oct 2025 15:29:04 -0700</pubDate>
      <guid>issues-and-annoyances-with-the-macos-notes-app.html</guid>
    </item>
    <item>
      <title>Exporting Notes to Markdown in MacOS Tahoe</title>
      <link>exporting-notes-to-markdown-in-macos-tahoe.html</link>
      <description>Yesterday I completed a [[Nuke and Pave MacOS Tahoe]] on my main workstation.&#xA;&#xA;My favorite feature so far is the ability to export notes to Markdown.  It even exports the attachments.  Sweeet!  Many thanks to the folks responsible for this improvement!&#xA;The best part is being able to select multiple notes and export them in a single operation.  I typically export my changed notes a few times per week and keep the history in git, and this makes the workflow really simple.&#xA;Exporting notes is many t...</description>
      <pubDate>Tue, 07 Oct 2025 23:11:19 -0700</pubDate>
      <guid>exporting-notes-to-markdown-in-macos-tahoe.html</guid>
    </item>
    <item>
      <title>Nuke and Pave MacOS Tahoe</title>
      <link>nuke-and-pave-macos-tahoe.html</link>
      <description>I completed a nuke-and-pave upgrade to MacOS Tahoe on my workstation yesterday.&#xA;Here&amp;apos;s my pre-install checklist:&#xA;&#xA;  * record my cron jobs - `crontab -l &amp;gt; ~/crontabs.txt`&#xA;  * run an initial backup with Carbon Cloner to an external drive (may take a couple hours)&#xA;  * shut down running applications&#xA;  * run a final backup with Time Machine&#xA;  * run another backup with Carbon Cloner (should be a lot faster than the first backup)&#xA;&#xA;Carbon Cloner can be found here:&#xA;&#xA;  - [macOS Backup Software - Bombich S...</description>
      <pubDate>Sun, 05 Oct 2025 23:11:19 -0700</pubDate>
      <guid>nuke-and-pave-macos-tahoe.html</guid>
    </item>
  </channel>
</rss>