<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog Posts on chromic</title>
    <link>https://chromic.org/blog/</link>
    <description>Recent content in Blog Posts on chromic</description>
    <generator>Hugo</generator>
    <language>en-ca</language>
    <managingEditor>chimo@chromic.org (chimo)</managingEditor>
    <webMaster>chimo@chromic.org (chimo)</webMaster>
    <atom:link href="https://chromic.org/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Containers are great</title>
      <link>https://chromic.org/blog/containers-are-great/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/containers-are-great/</guid>
      <description>&lt;p&gt;I ran into an issue on one of my system-containers earlier today:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;apk Unable to lock database: Resource temporarily unavailable&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I thought about troubleshooting the issue but decided this time around to take&#xA;advantage of the disposable nature of containers and delete the problematic&#xA;container and rebuild it.&lt;/p&gt;&#xA;&lt;p&gt;The problem went away.&lt;/p&gt;&#xA;&lt;p&gt;Great.&lt;/p&gt;&#xA;&lt;p&gt;Except there&amp;rsquo;s a part of me that really doesn&amp;rsquo;t like the fact that I didn&amp;rsquo;t&#xA;learn anything from the situation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>logbookd</title>
      <link>https://chromic.org/blog/logbookd/</link>
      <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/logbookd/</guid>
      <description>&lt;p&gt;Today I learned about &lt;a href=&#34;https://sr.ht/~martijnbraam/logbookd/&#34;&gt;logbookd&lt;/a&gt; while lurking in the &lt;a href=&#34;https://wiki.postmarketos.org/wiki/Matrix_and_IRC&#34;&gt;#postmarketos&lt;/a&gt; IRC channel.&lt;/p&gt;&#xA;&lt;p&gt;To quote the &lt;a href=&#34;https://wiki.alpinelinux.org/wiki/Logbookd&#34;&gt;Alpine Linux wiki&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;logbookd is a syslogd implementation that uses an sqlite database as a backend.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The wiki also links to an &lt;a href=&#34;https://blog.brixit.nl/looking-closer-at-the-syslog/&#34;&gt;interesting article&lt;/a&gt; about its background.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Random Search Engine in qutebrowser</title>
      <link>https://chromic.org/blog/random-search-engine-in-qutebrowser/</link>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/random-search-engine-in-qutebrowser/</guid>
      <description>&lt;p&gt;I usually post things when I&amp;rsquo;m done, or reached a decent point, with whatever&#xA;I&amp;rsquo;m doing. This time though I&amp;rsquo;m only halfway there but figure I&amp;rsquo;d post anyway.&lt;/p&gt;&#xA;&lt;p&gt;Over time, I&amp;rsquo;ve been stumbling across different search engines. I take note of&#xA;them, intend to try them out, but inevitably end up using the same one out of&#xA;muscle memory.&lt;/p&gt;&#xA;&lt;p&gt;I thought it might be interesting if I could have my browser choose a random&#xA;search engine out of a list for every web search I do.&lt;/p&gt;</description>
    </item>
    <item>
      <title>newsboat bookmarks integration with qutebrowser</title>
      <link>https://chromic.org/blog/newsboat-bookmarks-qutebrowser/</link>
      <pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/newsboat-bookmarks-qutebrowser/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m playing with the idea of having my `&lt;a href=&#34;https://newsboat.org/&#34;&gt;newsboat&lt;/a&gt;`&#xA;bookmarks automatically added to `&lt;a href=&#34;https://qutebrowser.org/&#34;&gt;qutebrowser&lt;/a&gt;`.&lt;/p&gt;&#xA;&lt;p&gt;Maybe &amp;ldquo;integration&amp;rdquo; is a bit of a strong word for what it does, but time will tell where this goes.&lt;/p&gt;&#xA;&lt;p&gt;Basically I added the following as my newsboat&#xA;`&lt;a href=&#34;https://newsboat.org/releases/2.42/docs/newsboat.html#bookmark-cmd&#34;&gt;bookmark-cmd&lt;/a&gt;`:&lt;/p&gt;&#xA;&lt;figure class=&#34;figure-highlight&#34;&gt;&#xA;  &lt;figcaption&gt;~/.config/newsboat/config&lt;/figcaption&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bookmark-cmd &lt;span class=&#34;s2&#34;&gt;&amp;#34;sh -c &amp;#39;echo &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;@&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &amp;gt;&amp;gt; /opt/bookmarks/urls&amp;#39; -s&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;It simply adds the bookmarked article to qutebrowser&amp;rsquo;s &amp;ldquo;bookmarks/urls&amp;rdquo; file.&#xA;Normally you&amp;rsquo;d want to write to &amp;ldquo;~/.config/qutebrowser/bookmarks/urls&amp;rdquo;, but I&#xA;have this at another location for &lt;span style=&#34;white-space: nowrap&#34;&gt;&amp;hellip;reasons&lt;/span&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>git pull --autostash</title>
      <link>https://chromic.org/blog/git-pull-autostash/</link>
      <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/git-pull-autostash/</guid>
      <description>&lt;p&gt;Today I learned about the&#xA;&lt;a href=&#34;https://git-scm.com/docs/git-pull#Documentation/git-pull.txt---autostash&#34;&gt;--autostash&lt;/a&gt;&#xA;switch for git-pull:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Automatically create a temporary stash entry before the operation begins,&#xA;record it in the ref MERGE_AUTOSTASH and apply it after the operation ends.&#xA;This means that you can run the operation on a dirty worktree. However, use&#xA;with care: the final stash application after a successful merge might result&#xA;in non-trivial conflicts.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>EdgeRouter ER-X Firmware v3.0.1</title>
      <link>https://chromic.org/blog/erx-firmware-v301/</link>
      <pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/erx-firmware-v301/</guid>
      <description>&lt;p&gt;The following firmware versions for the &lt;a href=&#34;https://store.ui.com/us/en/products/er-x&#34;&gt;Ubiquiti&#xA;ER-X&lt;/a&gt; (and others) were released a&#xA;while ago:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://community.ui.com/releases/EdgeRouter-3-0-0/33ee3852-b5db-453e-ad14-430bc218c02f&#34;&gt;EdgeRouter ER-X/ER-X-SFP/EP-R6/ER-10X: Firmware v3.0.0&lt;/a&gt; (2025-07-29)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://community.ui.com/releases/EdgeRouter-3-0-1/7fe6b39d-baea-4ce6-87a0-5dcdc9538c3a&#34;&gt;EdgeRouter ER-X/ER-X-SFP/EP-R6/ER-10X: Firmware v3.0.1&lt;/a&gt; (2025-10-30)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For whatever reason the Web interface of my ER-X running v2.0.9-hotfix.7&#xA;(2023-08-01) did not notify me and kept showing as &amp;ldquo;Up to date&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;In any case, I&amp;rsquo;ve upgraded today and so far things seem to have gone smoothly.&#xA;I&amp;rsquo;m particularly interested in possibly replacing my IPSec site-to-site tunnel&#xA;with WireGuard site-to-site instead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Clear /tmp at reboot on Alpine Linux</title>
      <link>https://chromic.org/blog/alpinelinux-clear-tmp-on-reboot/</link>
      <pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/alpinelinux-clear-tmp-on-reboot/</guid>
      <description>&lt;p&gt;By default, Alpine Linux &lt;a href=&#34;https://quitesimple.org/page/alpine-tmp&#34;&gt;doesn&amp;rsquo;t (completely) clear the /tmp&#xA;directory&lt;/a&gt; on reboot (unless you mount&#xA;it as tmpfs). If you would like to enable this feature, change &amp;ldquo;wipe_tmp&amp;rdquo; to&#xA;&amp;ldquo;YES&amp;rdquo;:&lt;/p&gt;&#xA;&lt;figure class=&#34;figure-highlight&#34;&gt;&#xA;  &lt;figcaption&gt;/etc/conf.d/bootmisc&lt;/figcaption&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# List of /tmp directories we should clean up&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;clean_tmp_dirs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/tmp&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Should we wipe the tmp paths completely or just selectively remove known&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# locks / files / etc... ?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;wipe_tmp&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;YES&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;The train-of-thought that led me there was:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Why does it take so long to take a snapshot of my `signal-desktop` container?&lt;/li&gt;&#xA;&lt;li&gt;&lt;pre class=&#34;repl&#34;&gt;&lt;samp&gt;&lt;span class=&#34;comment&#34;&gt;#&amp;nbsp;Check snapshot sizes&lt;/span&gt;&lt;br /&gt;&lt;span class=&#34;prompt&#34;&gt;root@xps:~#&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;du -chs /var/lib/incus/storage-pools/default/containers-snapshots/signal/*&lt;/kbd&gt;&#xA;9.1G&#x9;/var/lib/incus/storage-pools/default/containers-snapshots/signal/pre-patch-2026-02-01T19.54&#xA;9.1G&#x9;/var/lib/incus/storage-pools/default/containers-snapshots/signal/pre-patch-2026-02-02T15.28&#xA;18.1G&#x9;total&lt;/samp&gt;&lt;/pre&gt;&#xA;&#xA;Wow. That doesn&amp;rsquo;t seem right.&lt;/li&gt;&#xA;&lt;li&gt;&lt;pre class=&#34;repl&#34;&gt;&lt;samp&gt;&lt;span class=&#34;prompt&#34;&gt;root@signal:~#&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;du -chs /*&lt;/kbd&gt;&#xA;...&#xA;7.8G&#x9;/tmp&#xA;...&lt;/samp&gt;&lt;/pre&gt;&#xA;&#xA;Huh&amp;hellip;?&lt;/li&gt;&#xA;&lt;li&gt;&lt;pre class=&#34;repl&#34;&gt;&lt;samp&gt;&lt;span class=&#34;prompt&#34;&gt;root@signal:~#&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;ls -lhaS /tmp&lt;/kbd&gt;&#xA;-rwxr-xr-x    1 root     root       15.4M Jan 19 20:38 .org.chromium.Chromium.BCGOJo&#xA;-rwxr-xr-x    1 root     root       15.4M Jan 29 15:36 .org.chromium.Chromium.BFhFGo&#xA;-rwxr-xr-x    1 root     root       15.4M Jan 25 09:46 .org.chromium.Chromium.FKJadh&#xA;...&#xA;...&lt;/samp&gt;&lt;/pre&gt;&#xA;&#xA;Hrm.&lt;/li&gt;&#xA;&lt;li&gt;&lt;pre class=&#34;repl&#34;&gt;&lt;samp&gt;&lt;span class=&#34;prompt&#34;&gt;root@signal:~#&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;ls /tmp/.org.chromium.Chromium.* | wc -l&lt;/kbd&gt;&#xA;1276&lt;/samp&gt;&lt;/pre&gt;&#xA;&#xA;Sigh&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;Search the web for &amp;ldquo;.org.chromium.Chromium&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/electron/electron/issues/16097&#34;&gt;electron/electron/issues/16097&lt;/a&gt; shows up: &lt;blockquote&gt; I have a suspicion that this happens to Electron apps, which package native modules into app.asar instead of app.asar.unpacked/node_modules/ &lt;/blockquote&gt;&lt;/li&gt;&#xA;&lt;li&gt;Okay, let&amp;rsquo;s check Alpine Linux&amp;rsquo;s &lt;a href=&#34;https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/testing/signal-desktop&#34;&gt;APKBUILD&lt;/a&gt; for &lt;a href=&#34;https://pkgs.alpinelinux.org/package/edge/testing/x86_64/signal-desktop&#34;&gt;signal-desktop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Oh, this package has a &lt;a href=&#34;https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/testing/signal-desktop/README.md&#34;&gt;README&lt;/a&gt; with its APKBUILD: &lt;blockquote&gt;&amp;hellip;&lt;br /&gt;Signal-desktop is an electron application that is rather complex to build&lt;br /&gt;&amp;hellip;&lt;/blockquote&gt;&lt;/li&gt;&#xA;&lt;li&gt;Alright, I don&amp;rsquo;t have time for this right now. Let&amp;rsquo;s just treat the symptoms.&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>aerc, gpg and pinentry</title>
      <link>https://chromic.org/blog/aerc-gpg-pinentry/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/aerc-gpg-pinentry/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re getting an error like &amp;ldquo;Screen or window too small&amp;rdquo; while trying to&#xA;use gpg (ex: &lt;span style=&#34;white-space: nowrap&#34;&gt;`gpg --import&#xA;./private.key`&lt;/span&gt;), one way to fix it might be to instruct gpg to use&#xA;&amp;ldquo;pinentry-tty&amp;rdquo;&lt;/p&gt;&#xA;&lt;figure class=&#34;figure-highlight&#34;&gt;&#xA;  &lt;figcaption&gt;~/.gnupg/gpg-agent.conf&lt;/figcaption&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pinentry-program /usr/bin/pinentry-tty&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Note that you might need to install&#xA;&lt;a href=&#34;https://pkgs.alpinelinux.org/package/edge/main/x86_64/pinentry-tty&#34;&gt;pinentry-tty&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re getting &amp;ldquo;failed to parse messagedetails: FAILURE sign&amp;rdquo; when&#xA;&lt;a href=&#34;https://aerc-mail.org/&#34;&gt;aerc&lt;/a&gt; tries to sign a message, you might need to tell&#xA;aerc to use terminal pinentry:&lt;/p&gt;&#xA;&lt;figure class=&#34;figure-highlight&#34;&gt;&#xA;  &lt;figcaption&gt;~/.config/aerc/aerc.conf&lt;/figcaption&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;general&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;use-terminal-pinentry&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Real IP when nginx, darkhttpd are behind HAProxy</title>
      <link>https://chromic.org/blog/haproxy-nginx-darkhttpd-real-ip/</link>
      <pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/haproxy-nginx-darkhttpd-real-ip/</guid>
      <description>&lt;p&gt;I use &lt;a href=&#34;https://www.haproxy.org/&#34;&gt;HAProxy&lt;/a&gt; as an entry point for most of the&#xA;traffic hitting this server. Past that, I either have&#xA;&lt;a href=&#34;https://nginx.org/&#34;&gt;nginx&lt;/a&gt; fronting dynamic applications, or&#xA;&lt;a href=&#34;https://unix4lyfe.org/darkhttpd/&#34;&gt;darkhttpd&lt;/a&gt; fronting static sites (such as&#xA;this blog). This means that, unless configured otherwise, client IP addresses&#xA;are known by HAProxy but applications behind it see all traffic coming from the&#xA;HAProxy instance&amp;rsquo;s IP address.&lt;/p&gt;&#xA;&lt;h2 id=&#34;haproxy&#34;&gt;HAProxy&lt;/h2&gt;&#xA;&lt;p&gt;One way you can expose the client&amp;rsquo;s IP address to the applications is using&#xA;HAProxy&amp;rsquo;s&#xA;&amp;ldquo;&lt;a href=&#34;https://www.haproxy.com/documentation/haproxy-configuration-tutorials/proxying-essentials/client-ip-preservation/add-x-forward-for-header/&#34;&gt;forwardfor&lt;/a&gt;&amp;rdquo;&#xA;directive:&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenRC zap</title>
      <link>https://chromic.org/blog/service-rc-zap/</link>
      <pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/service-rc-zap/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t remember how I stumbled on this, but today I learned about the `zap`&#xA;OpenRC command.&lt;/p&gt;&#xA;&lt;p&gt;From the &lt;a href=&#34;https://github.com/OpenRC/openrc/blob/master/user-guide.md#modifying-service-scripts&#34;&gt;OpenRC User&#xA;Guide&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;There is a special command zap that makes OpenRC &amp;lsquo;forget&amp;rsquo; that a service is&#xA;started; this is mostly useful to reset a crashed service to stopped state&#xA;without invoking the (possibly broken) stop function of the service script.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The Gentoo wiki has a &lt;a href=&#34;https://wiki.gentoo.org/wiki/OpenRC#Manually_recovering_crashed_services&#34;&gt;usage&#xA;example&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;pre class=&#34;repl&#34;&gt;&lt;samp&gt;&lt;span class=&#34;prompt&#34;&gt;root #&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;rc-service docker status&lt;/kbd&gt;&#xA; * status: crashed&#xA;&lt;span class=&#34;prompt&#34;&gt;root #&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;rc-service docker start&lt;/kbd&gt;&#xA; * WARNING: docker has already been started&#xA;&lt;span class=&#34;prompt&#34;&gt;root #&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;rc-service docker stop&lt;/kbd&gt;&#xA; * Caching service dependencies ...       [ ok ]&#xA; * Stopping docker ...&#xA; * Failed to stop docker                  [ !! ]&#xA; * ERROR: docker failed to stop&#xA;&lt;span class=&#34;comment&#34;&gt;#&amp;nbsp;To remedy this situation, zap the service&lt;/span&gt;&lt;br /&gt;&lt;span class=&#34;prompt&#34;&gt;root #&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;rc-service docker zap&lt;/kbd&gt;&lt;/samp&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Automatically Pushing pet Snippets to an Existing git Repository</title>
      <link>https://chromic.org/blog/pet-git/</link>
      <pubDate>Sun, 11 Jan 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/pet-git/</guid>
      <description>&lt;p&gt;I recently started using `&lt;a href=&#34;https://github.com/knqyf263/pet&#34;&gt;pet&lt;/a&gt;` as a&#xA;snippet manager (thanks to &lt;a href=&#34;https://perrotta.dev/&#34;&gt;Thiago Perrotta&lt;/a&gt;&amp;rsquo;s excellent&#xA;&lt;a href=&#34;https://perrotta.dev/2025/12/snippets-manager/&#34;&gt;blog post&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;It stores the snippets to a text file (`~/.config/pet/snippet.toml` by&#xA;default) which makes it easy to copy/sync/version/etc. It natively supports&#xA;&lt;a href=&#34;https://github.com/knqyf263/pet?tab=readme-ov-file#sync-snippets&#34;&gt;synchronizing&lt;/a&gt;&#xA;the snippet file as a &lt;a href=&#34;https://github.com/knqyf263/pet?tab=readme-ov-file#gist&#34;&gt;GitHub&#xA;Gist&lt;/a&gt; or &lt;a href=&#34;https://github.com/knqyf263/pet?tab=readme-ov-file#gitlab-snippets&#34;&gt;GitLab&#xA;Snippet&lt;/a&gt;&#xA;(manually or&#xA;&lt;a href=&#34;https://github.com/knqyf263/pet?tab=readme-ov-file#auto-sync&#34;&gt;automatically&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m already keeping my dotfiles in a &lt;a href=&#34;https://git.srht.chromic.org/~chimo/dotfiles&#34;&gt;git&#xA;repo&lt;/a&gt;, however, and would like to&#xA;keep my snippet.toml file in the same spot as everything else. I also don&amp;rsquo;t&#xA;want to have to remember to manually push the changes every time I&#xA;add/delete/edit something.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chic &#39;N&#39; Stu</title>
      <link>https://chromic.org/blog/advertising-causes/</link>
      <pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/advertising-causes/</guid>
      <description>&lt;p&gt;My &amp;ldquo;go-to&amp;rdquo; gas station (i.e.: the one&amp;rsquo;s that&amp;rsquo;s most conveniently located for&#xA;me) started showing advertisement videos on the small monitors built-in the gas&#xA;pumps.&lt;/p&gt;&#xA;&lt;p&gt;They are too loud and the audio is of terrible quality.&lt;/p&gt;&#xA;&lt;p&gt;It is no longer my go-to gas station.&lt;/p&gt;&#xA;&lt;p&gt;&lt;small&gt;&amp;quot;&lt;cite&gt;what a splendid pie.&lt;/cite&gt;&amp;quot;&lt;/small&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Too Slow</title>
      <link>https://chromic.org/blog/too-slow/</link>
      <pubDate>Sun, 04 Jan 2026 23:47:12 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/too-slow/</guid>
      <description>&lt;p&gt;I almost sent a patch to &lt;a href=&#34;https://git.sr.ht/~sircmpwn/git.sr.ht&#34;&gt;gitsrht&lt;/a&gt; since&#xA;I noticed multiline selection on blobs (ex: &lt;a href=&#34;https://git.srht.chromic.org/~chimo/apkbuilds/tree/0bd2d10dd248375f6fb2f4102c3697e1a42b5a0b/item/check-hugo.sh#L4-25&#34;&gt;link to line #4 in a file and&#xA;highlight the next 11&#xA;lines&lt;/a&gt;)&#xA;was broken on my instance while writing &lt;a href=&#34;https://chromic.org/blog/auto-build-apk-when-upstream-changes/&#34;&gt;a blog&#xA;post&lt;/a&gt; today,&#xA;but &lt;a href=&#34;https://simartin.dev/&#34;&gt;Simon&lt;/a&gt; was faster than me &lt;a href=&#34;https://lists.sr.ht/~sircmpwn/sr.ht-dev/patches/64792&#34;&gt;by about a&#xA;day&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Just as well since it probably would&amp;rsquo;ve taken me a while to figure out patches&#xA;via email, potentially wasting other people&amp;rsquo;s time pointing out my inevitable&#xA;blunders :).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Auto-build APK when upstream APKBUILD changes</title>
      <link>https://chromic.org/blog/auto-build-apk-when-upstream-changes/</link>
      <pubDate>Sun, 04 Jan 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/auto-build-apk-when-upstream-changes/</guid>
      <description>&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;p&gt;I have a custom APKBUILD&#xA;(&lt;a href=&#34;https://git.srht.chromic.org/~chimo/apkbuilds/tree/master/item/hugo-nodeploy&#34;&gt;hugo-nodeploy&lt;/a&gt;)&#xA;and I want to automatically re-build it when the upstream APKBUILD&#xA;(&lt;a href=&#34;https://gitlab.alpinelinux.org/alpine/aports/-/tree/3.23-stable/community/hugo?ref_type=heads&#34;&gt;hugo&lt;/a&gt;)&#xA;changes. Skip to the &lt;a href=&#34;#detect-apkbuild-version-mismatch&#34;&gt;Detect APKBUILD version&#xA;mismatch&lt;/a&gt; section if you don&amp;rsquo;t care about&#xA;the context.&lt;/p&gt;&#xA;&lt;h2 id=&#34;ramblings&#34;&gt;Ramblings&lt;/h2&gt;&#xA;&lt;p&gt;I recently noticed something new in `hugo build` output:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Start building sites …&lt;br&gt;&#xA;hugo v0.152.2+extended+withdeploy&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I&amp;rsquo;m referring to the &amp;ldquo;+withdeploy&amp;rdquo; part. I never noticed that before, got&#xA;curious, and looked it up.&lt;/p&gt;&#xA;&lt;p&gt;The change in the &amp;ldquo;hugo&amp;rdquo; Alpine Linux package happened &lt;a href=&#34;https://gitlab.alpinelinux.org/alpine/aports/-/commit/7512908ae8887e17980c75380be0fcba3fc4d70c&#34;&gt;on June&#xA;12th&lt;/a&gt;.&#xA;It probably appeared on my end when I upgraded to &lt;a href=&#34;https://alpinelinux.org/posts/Alpine-3.23.0-released.html&#34;&gt;Alpine&#xA;3.23&lt;/a&gt;. The Alpine&#xA;commit message refers to &lt;a href=&#34;https://github.com/gohugoio/hugo/releases/tag/v0.137.0&#34;&gt;hugo release&#xA;v0.137.0&lt;/a&gt; and &lt;a href=&#34;https://github.com/gohugoio/hugo/pull/12995&#34;&gt;PR&#xA;#12995&lt;/a&gt; in the upstream repo,&#xA;which mentions &lt;a href=&#34;https://github.com/gohugoio/hugo/issues/12994&#34;&gt;issue #12994&lt;/a&gt;&#xA;for context.&lt;/p&gt;</description>
    </item>
    <item>
      <title>update-conf</title>
      <link>https://chromic.org/blog/update-conf/</link>
      <pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/update-conf/</guid>
      <description>&lt;p&gt;I recently integrated `&lt;a href=&#34;https://wiki.alpinelinux.org/wiki/Alpine_configuration_management_scripts#update-conf&#34;&gt;update-conf&lt;/a&gt;` (from the &lt;a href=&#34;https://pkgs.alpinelinux.org/package/v3.23/main/x86_64/alpine-conf&#34;&gt;alpine-conf package&lt;/a&gt;) in my `apk upgrade` workflow.&lt;/p&gt;&#xA;&lt;p&gt;I already had a terribly named &lt;a href=&#34;https://git.srht.chromic.org/~chimo/dotfiles/tree/48710e4931155e14c6387055bffdf227f97a7956/item/.ashrc#L17&#34;&gt;`uh` alias&lt;/a&gt; (short for &amp;ldquo;update host&amp;rdquo;, in contrast to my other alias `&lt;a href=&#34;https://git.srht.chromic.org/~chimo/dotfiles/tree/48710e4931155e14c6387055bffdf227f97a7956/item/.ashrc#L13-15&#34;&gt;uc&lt;/a&gt;` which is short for &amp;ldquo;update containers&amp;rdquo;). This alias would run `apk upgrade` and then re-run my &amp;ldquo;&lt;a href=&#34;https://git.srht.chromic.org/~chimo/shuibar/tree/main/item/blocks/updates/updates.sh&#34;&gt;updates&lt;/a&gt;&amp;rdquo; block for &lt;a href=&#34;https://git.srht.chromic.org/~chimo/shuibar&#34;&gt;shuibar&lt;/a&gt; so that I get fresh data in my status bar.&lt;/p&gt;&#xA;&lt;p&gt;I &lt;a href=&#34;https://git.srht.chromic.org/~chimo/dotfiles/commit/4bc3e639c1e53f0196f23ea153b4ed57fbce525c&#34;&gt;converted the `uh` alias to a function&lt;/a&gt;, which checks for the presence of .apk-new files with `update-conf`. If any are found, the function exits showing me a list of files that need review.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Location Tracking</title>
      <link>https://chromic.org/blog/location-tracking/</link>
      <pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/location-tracking/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been tracking my location for a while (around &lt;a href=&#34;https://git.srht.chromic.org/~chimo/chromic.org/commit/bae26eb2157bccb138d247fb17ab993e6e1bdc4d&#34;&gt;Feb,&#xA;2018&lt;/a&gt;,&#xA;apparently). I use my location to populate some of my&#xA;&lt;a href=&#34;https://git.srht.chromic.org/~chimo/shuibar&#34;&gt;shuibar&lt;/a&gt; blocks such as&#xA;&lt;a href=&#34;https://git.srht.chromic.org/~chimo/shuibar/tree/main/item/blocks/weather/README.md&#34;&gt;weather.sh&lt;/a&gt;,&#xA;&lt;a href=&#34;https://git.srht.chromic.org/~chimo/shuibar/tree/main/item/blocks/location/README.md&#34;&gt;location.sh&lt;/a&gt;,&#xA;as well as automatically &lt;a href=&#34;https://git.srht.chromic.org/~chimo/timezone&#34;&gt;update my laptop&amp;rsquo;s&#xA;timezone&lt;/a&gt; based on where I am.&#xA;I&amp;rsquo;ve been doing so with a self-hosted instance of&#xA;&lt;a href=&#34;https://github.com/bfabiszewski/ulogger-server&#34;&gt;μlogger-server&lt;/a&gt; and its&#xA;Android app &lt;a href=&#34;https://github.com/bfabiszewski/ulogger-android&#34;&gt;μlogger-android&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;At the moment, I have a continuous running &amp;ldquo;track&amp;rdquo; since August, 2023. Although&#xA;continuous logging is probably not the application&amp;rsquo;s intended main use-case,&#xA;it&amp;rsquo;s been pretty rock-solid ever since I first set it up. Most of the time I&#xA;don&amp;rsquo;t even remember I have this running. As such, I haven&amp;rsquo;t really looked into&#xA;alternatives, until I randomly stumbled on&#xA;&lt;a href=&#34;https://github.com/dedicatedcode/reitti&#34;&gt;Reitti&lt;/a&gt; earlier this year, which I&amp;rsquo;m&#xA;planning on testing out once the holidays are over.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create an &#34;Unread&#34; RSS Feed Group with newsboat</title>
      <link>https://chromic.org/blog/unread-feed-with-newsboat/</link>
      <pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/unread-feed-with-newsboat/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;https://github.com/newsboat/newsboat&#34;&gt;newsboat&lt;/a&gt; as my RSS&#xA;Reader for a while now and I am really liking it. Although I realized recently&#xA;that one thing I was missing from it was the ability to have a single &amp;ldquo;Unread&amp;rdquo;&#xA;group containing all unread articles from all the different RSS feeds I&amp;rsquo;m&#xA;subscribed to.&lt;/p&gt;&#xA;&lt;p&gt;By default, newsboat shows you the list of your feeds along with an&#xA;&amp;ldquo;Unread/Total&amp;rdquo; article count. I&amp;rsquo;ve used it this way for a long time but&#xA;recently I caught myself loading newsboat, but then turning to my phone to read&#xA;articles via &lt;a href=&#34;https://miniflux.app/&#34;&gt;miniflux&lt;/a&gt;&amp;rsquo;s progressive web app (PWA).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Incus alpine/3.23</title>
      <link>https://chromic.org/blog/incus-alpine-323/</link>
      <pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/incus-alpine-323/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Alpine Linux 3.23.0 Incus images have been released.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Alpine Linux 3.23.0</title>
      <link>https://chromic.org/blog/alpinelinux-323/</link>
      <pubDate>Thu, 04 Dec 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/alpinelinux-323/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Alpine Linux 3.23.0 &lt;a href=&#34;https://alpinelinux.org/posts/Alpine-3.23.0-released.html&#34;&gt;has been&#xA;released&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Reusing my old phone as a universal remote</title>
      <link>https://chromic.org/blog/reusing-my-old-phone-as-a-universal-remote/</link>
      <pubDate>Wed, 03 Dec 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/reusing-my-old-phone-as-a-universal-remote/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Over the years, I&amp;rsquo;ve ended up with a bunch of small infrared remotes for&#xA;various things. I also had an old&lt;sup id=&#34;r1&#34; name=&#34;r1&#34;&gt;&lt;a href=&#34;#f1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&#34;https://en.wikipedia.org/wiki/Samsung_Galaxy_S5&#34;&gt;Samsung&#xA;Galaxy S5&lt;/a&gt;, which has an&#xA;infrared transmitter, sitting in a storage bin in the basement. I decided to&#xA;look into consolidating the various IR remotes into virtual remotes via the&#xA;Android phone.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;capturing-the-ir-signals&#34;&gt;Capturing the IR signals&lt;/h2&gt;&#xA;&lt;h3 id=&#34;hardware&#34;&gt;Hardware&lt;/h3&gt;&#xA;&lt;p&gt;Some years ago, I bought a &lt;a href=&#34;https://www.vishay.com/en/product/82491/&#34;&gt;TSOP38238 IR&#xA;receiver&lt;/a&gt; to use with my raspberrypi.&#xA;I don&amp;rsquo;t remember why I got this back then, but that&amp;rsquo;s what I used to capture&#xA;the IR signals from the remotes this time around.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wsl-vpnkit</title>
      <link>https://chromic.org/blog/wsl-vpnkit/</link>
      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/wsl-vpnkit/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;A recent update to our VPN client at work broke networking in WSL2. Thankfully,&#xA;recently I learned about &lt;a href=&#34;https://github.com/sakai135/wsl-vpnkit&#34;&gt;wsl-vpnkit&lt;/a&gt;,&#xA;which fixed the issue,&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>mode2 partial read</title>
      <link>https://chromic.org/blog/mode2-partial-read/</link>
      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/mode2-partial-read/</guid>
      <description>&lt;p&gt;Once you have &lt;a href=&#34;https://chromic.org/blog/dtoverlay-is-also-a-command/&#34;&gt;dtoverlay working&lt;/a&gt; for your&#xA;infrared reciever, if you run &lt;a href=&#34;https://man.archlinux.org/man/mode2.1&#34;&gt;mode2&lt;/a&gt; to&#xA;capture signal but run into &amp;ldquo;Partial read 12 bytes&amp;rdquo; (where the number may&#xA;differ), you may need to switch from the &amp;ldquo;devinput&amp;rdquo; driver to the &amp;ldquo;default&amp;rdquo;&#xA;driver.&lt;/p&gt;&#xA;&lt;p&gt;For example, on the command-line:&lt;/p&gt;&#xA;&lt;pre class=&#34;repl&#34;&gt;&lt;samp&gt;&lt;span class=&#34;prompt&#34;&gt;k3rnel-pan1c:~$&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;mode2 --driver default --device /dev/lirc0&lt;/kbd&gt;&lt;/samp&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Thanks to &lt;a href=&#34;https://stackoverflow.com/users/5014688/ingo&#34;&gt;Ingo&lt;/a&gt; on stackoverflow&#xA;for &lt;a href=&#34;https://stackoverflow.com/a/49339121&#34;&gt;the hint&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>dtoverlay is also a command</title>
      <link>https://chromic.org/blog/dtoverlay-is-also-a-command/</link>
      <pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/dtoverlay-is-also-a-command/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Today I learned that&#xA;&amp;ldquo;&lt;a href=&#34;https://www.raspberrypi.com/documentation/computers/configuration.html#part3.5.1&#34;&gt;dtoverlay&lt;/a&gt;&amp;rdquo;&#xA;is not only a property of the raspberrypi&amp;rsquo;s config.txt file, but also a command&#xA;that can be run after bootup.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;I was trying to get my raspberrypi (running Alpine Linux) to recognize my&#xA;&lt;a href=&#34;https://www.vishay.com/en/product/82491/&#34;&gt;TSOP38238 IR receiver&lt;/a&gt;, but adding&#xA;&amp;ldquo;dtoverlay=gpio-ir,gpio_pin=18&amp;rdquo; to the following files did not work:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;/boot/usercfg.txt&lt;/li&gt;&#xA;&lt;li&gt;/boot/config.txt&lt;/li&gt;&#xA;&lt;li&gt;/boot/firmware/config.txt&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Running the following command after booting up does make /dev/lirc0 appear,&#xA;however:&lt;/p&gt;&#xA;&lt;pre class=&#34;repl&#34;&gt;&lt;samp&gt;&lt;span class=&#34;prompt&#34;&gt;k3rnel-pan1c:~$&amp;nbsp;&lt;/span&gt;&lt;kbd class=&#34;input&#34;&gt;doas dtoverlay gpio-ir,gpio_pin=18&lt;/kbd&gt;&lt;/samp&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Which is fine for my purposes since I only need the device to be present once&#xA;in a while, not on every boot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Upgrade</title>
      <link>https://chromic.org/blog/free-upgrade/</link>
      <pubDate>Thu, 02 Oct 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/free-upgrade/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;My OVH VPS recently got upgraded at no cost:&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>dyndns Server for Linode and OVH APIs</title>
      <link>https://chromic.org/blog/dyndns-server-for-linode-and-ovh-apis/</link>
      <pubDate>Wed, 17 Sep 2025 20:38:12 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/dyndns-server-for-linode-and-ovh-apis/</guid>
      <description>&lt;p&gt;A while ago (almost two years ago, according to the &lt;a href=&#34;https://git.srht.chromic.org/~chimo/dyndns/log&#34;&gt;git&#xA;logs&lt;/a&gt;), I wrote a rough dyndns2&#xA;server compatible with the &lt;a href=&#34;https://techdocs.akamai.com/linode-api/reference/post-domain&#34;&gt;Linode Domains&#xA;API&lt;/a&gt; so that my&#xA;&lt;a href=&#34;https://store.ui.com/us/en/products/er-x&#34;&gt;EdgeRouter X&lt;/a&gt; could update the&#xA;domain name pointing to my home IP address automatically.&lt;/p&gt;&#xA;&lt;p&gt;More recently, &lt;a href=&#34;https://chromic.org/blog/moving/&#34;&gt;due to some concerns&lt;/a&gt; I&#xA;&lt;a href=&#34;https://chromic.org/blog/moved/&#34;&gt;moved from Linode to OVH&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As the title of this post suggests, I&amp;rsquo;ve updated &lt;a href=&#34;https://git.srht.chromic.org/~chimo/dyndns&#34;&gt;the&#xA;code&lt;/a&gt; to support either Linode or&#xA;OVH as the DNS provider.&lt;/p&gt;</description>
    </item>
    <item>
      <title>rtl ping-pong</title>
      <link>https://chromic.org/blog/rtl-ping-pong/</link>
      <pubDate>Thu, 21 Aug 2025 19:57:12 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/rtl-ping-pong/</guid>
      <description>&lt;p&gt;A &lt;a href=&#34;https://chromic.org/aqueous-radio/&#34;&gt;while ago&lt;/a&gt;, I got a &lt;a href=&#34;https://www.nooelec.com/store/sdr/sdr-receivers/nesdr-mini.html&#34;&gt;Nooelec NESDR Mini SDR &amp;amp; DVB-T USB&#xA;Stick (RTL2832 + R820T) w/&#xA;Antenna&lt;/a&gt; to&#xA;tap into the &amp;ldquo;Itron 100WRD Automated Meter Reading (AMR) module&amp;rdquo; attached&#xA;to my house so I could see my water usage in near real-time.&lt;/p&gt;&#xA;&lt;p&gt;More recently, I got an &amp;ldquo;&lt;a href=&#34;https://inkbird.com/products/wireless-pool-thermometer-set-ibs-p01r&#34;&gt;Inkbird Remote Pool Thermometer Set&#xA;(IBS-P01R)&lt;/a&gt;&amp;rdquo;.&#xA;Of course, I needed to know if I could use my trusty SDR receiver to gather&#xA;data from it too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>wsl2</title>
      <link>https://chromic.org/blog/wsl2/</link>
      <pubDate>Thu, 26 Jun 2025 00:38:12 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/wsl2/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I have to use Windows at work, so naturally I try to do as much as possible in&#xA;WSL (&lt;a href=&#34;https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux&#34;&gt;Windows Subsystem for&#xA;Linux&lt;/a&gt;). These are a&#xA;few things a learned about WSL v2 recently:&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Alpine, Busybox login, and PAM</title>
      <link>https://chromic.org/blog/alpine-busybox-login-pam/</link>
      <pubDate>Sat, 07 Jun 2025 12:31:44 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/alpine-busybox-login-pam/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I recently learned that the &lt;a href=&#34;https://www.busybox.net/&#34;&gt;busybox&lt;/a&gt; build on Alpine&#xA;Linux does not include support for&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Linux_PAM&#34;&gt;PAM&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Alpine Linux, Arch Linux and Void Linux package manager Rosetta</title>
      <link>https://chromic.org/blog/alpine-arch-void-rosetta/</link>
      <pubDate>Fri, 06 Jun 2025 00:22:49 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/alpine-arch-void-rosetta/</guid>
      <description>&lt;p&gt;I used Arch Linux for several years and I know its package manager (pacman)&#xA;fairly well. These days, I mostly use Alpine Linux along with one server&#xA;running Void Linux. Sometimes, I know how to do something with pacman (ex: find&#xA;which package owns a certain file), but I&amp;rsquo;m not sure how to do that thing in&#xA;one of the other distros.&lt;/p&gt;&#xA;&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Inspired by &lt;a href=&#34;https://wiki.archlinux.org/title/Pacman/Rosetta&#34;&gt;Archlinux&amp;rsquo;s Pacman Rosetta wiki&#xA;page&lt;/a&gt;, I&amp;rsquo;ve jotted down some&#xA;equivalent commands between the three package managers for things I do somewhat&#xA;frequently. This isn&amp;rsquo;t meant to be an exhaustive list and only shows one way of&#xA;doing things (only the short flags, for example).&lt;/p&gt;&#xA;&lt;p&gt;I might add more things over time if I find myself running in other use-cases&#xA;often.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Task Management</title>
      <link>https://chromic.org/blog/task-management/</link>
      <pubDate>Sun, 01 Jun 2025 20:36:02 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/task-management/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;    A quick post about the applications I use for my TODO lists.&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Hairpin NAT With nftables</title>
      <link>https://chromic.org/blog/hairpin-nat-with-nftables/</link>
      <pubDate>Sat, 24 May 2025 12:18:54 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/hairpin-nat-with-nftables/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This is a short post about how I ended up implementing &lt;a href=&#34;https://en.wikipedia.org/wiki/Hairpinning&#34;&gt;NAT&#xA;hairpinning&lt;/a&gt; with&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Nftables&#34;&gt;nftables&lt;/a&gt; so that my&#xA;&lt;a href=&#34;https://linuxcontainers.org/incus/&#34;&gt;Incus&lt;/a&gt; containers could talk to my other&#xA;containers through their publicly accessible domains (in other words:&#xA;&amp;ldquo;container to host to container&amp;rdquo;). All thanks to a &lt;a href=&#34;https://superuser.com/a/1716836&#34;&gt;helpful StackExchange&#xA;post&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Prevent dhcpcd From Modifying resolv.conf</title>
      <link>https://chromic.org/blog/prevent-dhcpcd-from-modifying-resolv-conf/</link>
      <pubDate>Wed, 19 Mar 2025 21:45:30 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/prevent-dhcpcd-from-modifying-resolv-conf/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;If you&amp;rsquo;d like &lt;a href=&#34;https://github.com/NetworkConfiguration/dhcpcd/&#34;&gt;dhcpcd&lt;/a&gt; to&#xA;leave your /etc/resolv.conf configurations alone, add the following to&#xA;/etc/dhcpcd.conf:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nohook resolv.conf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Indieweb Likes With Hugo and Xray</title>
      <link>https://chromic.org/blog/indieweb-likes-with-hugo-and-xray/</link>
      <pubDate>Tue, 18 Mar 2025 20:56:33 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/indieweb-likes-with-hugo-and-xray/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I recently added a &amp;ldquo;likes&amp;rdquo; section to this blog. This post explains my current&#xA;workflow when creating a &amp;ldquo;&lt;a href=&#34;https://indieweb.org/like&#34;&gt;like&lt;/a&gt;&amp;rdquo;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Import Ecobee Data in InfluxDB</title>
      <link>https://chromic.org/blog/import-ecobee-data-in-influxdb/</link>
      <pubDate>Sat, 15 Mar 2025 23:32:49 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/import-ecobee-data-in-influxdb/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This post is a note-to-self about how I imported my ecobee data into&#xA;&lt;a href=&#34;https://github.com/influxdata/influxdb&#34;&gt;InfluxDB&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Moved</title>
      <link>https://chromic.org/blog/moved/</link>
      <pubDate>Tue, 11 Mar 2025 21:28:09 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/moved/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Since yesterday, the Linode VPS has been shutdown and all services are now&#xA;&lt;a href=&#34;https://chromic.org/blog/moving/&#34;&gt;running on OVH&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Notifications on successful SSH logins</title>
      <link>https://chromic.org/blog/notifications-on-successful-ssh-login/</link>
      <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/notifications-on-successful-ssh-login/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;A long time ago, I setup mail notifications when a successful SSH login happens&#xA;on Linode. While switching over to OVH, I realized I never really documented&#xA;this anywhere. So here&amp;rsquo;s another note-to-self post.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>HAProxy Cannot Raise FD Limit in Incus on Void Linux</title>
      <link>https://chromic.org/blog/haproxy-incus-void-fd-limit/</link>
      <pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/haproxy-incus-void-fd-limit/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I ran into a &amp;ldquo;cannot raise FD limit&amp;rdquo; error when starting HAProxy after&#xA;migrating from Archlinux to Void Linux. This post describes how I managed to&#xA;get around that.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Singleplexing</title>
      <link>https://chromic.org/blog/singleplexing/</link>
      <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/singleplexing/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been using &amp;ldquo;&lt;a href=&#34;https://github.com/tmux/tmux&#34;&gt;tmux&lt;/a&gt;&amp;rdquo; as a terminal&#xA;multiplexer for years (decades? I&amp;rsquo;m getting old; I lose track). I&amp;rsquo;m starting an&#xA;experiment to go without it for local shells (i.e.: I&amp;rsquo;ll still use tmux on&#xA;machines I ssh into). Mostly for fun, but also it would be one less thing to&#xA;rely on.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Moving</title>
      <link>https://chromic.org/blog/moving/</link>
      <pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/moving/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Following in the &lt;a href=&#34;https://www.bentasker.co.uk/posts/blog/the-internet/migrating-my-services-away-from-us-providers.html&#34;&gt;footsteps of&#xA;others&lt;/a&gt;,&#xA;I am reducing my dependence on US companies. As a result, I&amp;rsquo;m slowly moving my&#xA;workloads from Linode to &lt;a href=&#34;https://en.wikipedia.org/wiki/OVHcloud&#34;&gt;OVH&lt;/a&gt; (a&#xA;company from France). Since I&amp;rsquo;m in Canada and OVH has datacenters here,&#xA;choosing a server located in my country seemed to make sense.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Thanks to all the maintainers</title>
      <link>https://chromic.org/blog/thanks-to-all-the-maintainers/</link>
      <pubDate>Sat, 22 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/thanks-to-all-the-maintainers/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;In this post, I want to take some time to express my gratitude to everyone&#xA;involved in F(L)OSS communities out there.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Copying URLs with foot Terminal</title>
      <link>https://chromic.org/blog/copy-urls-with-foot-terminal/</link>
      <pubDate>Mon, 17 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/copy-urls-with-foot-terminal/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Today I learned that with &lt;strong&gt;Control+Shift+o&lt;/strong&gt; in&#xA;&lt;a href=&#34;https://codeberg.org/dnkl/foot&#34;&gt;foot&lt;/a&gt;, you:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;  &#34;Enter URL mode, where all currently visible URLs are tagged with a&#xA;  jump label with a key sequence that will open the URL (and exit URL mode).&#34;&#xA;&lt;/blockquote&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>systemd Dynamic Users</title>
      <link>https://chromic.org/blog/systemd-dynamic-users/</link>
      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/systemd-dynamic-users/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I really didn&amp;rsquo;t want to dislike systemd. I don&amp;rsquo;t want to join the&#xA;systemd-bashing &amp;ldquo;movement&amp;rdquo; (regardless of whether the bashing is deserved or&#xA;not).  systemd is making that very difficult though.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Incus Volume Usage Graph</title>
      <link>https://chromic.org/blog/incus-volume-usage-graph/</link>
      <pubDate>Sat, 08 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/incus-volume-usage-graph/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;A random idea crossed my mind yesterday: create a graph of which volume is used&#xA;by which Incus container. So I spent a little time messing around creating a&#xA;&lt;a href=&#34;https://git.srht.chromic.org/~chimo/incus-scripts/tree/main/item/misc/volume-usage.sh&#34;&gt;silly&#xA;script&lt;/a&gt;&#xA;that generates a &lt;a href=&#34;https://chromic.org/dot/incus-volume-usage-graph/incus-volumes.dot&#34;&gt;.dot file&lt;/a&gt;&#xA;to visualize that.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>h-recipe</title>
      <link>https://chromic.org/blog/h-recipe/</link>
      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/h-recipe/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Last week, I revamped how the &lt;a href=&#34;https://chromic.org/recipes/&#34;&gt;&amp;ldquo;recipe&amp;rdquo; section&lt;/a&gt; on here is&#xA;laid out.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>humans.txt</title>
      <link>https://chromic.org/blog/humans-txt/</link>
      <pubDate>Thu, 06 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/humans-txt/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;And of course &lt;a href=&#34;https://chromic.org/blog/security-txt/&#34;&gt;updating my security.txt&lt;/a&gt; file reminded me&#xA;of the &lt;a href=&#34;https://humanstxt.org/&#34;&gt;humans.txt initiative&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>security.txt</title>
      <link>https://chromic.org/blog/security-txt/</link>
      <pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/security-txt/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;A while ago (Jun, 2019 according to git-log) I added&#xA;&lt;a href=&#34;https://chromic.org/.well-known/security.txt&#34;&gt;.well-known/security.txt&lt;/a&gt; to this blog. When&#xA;&lt;a href=&#34;https://chromic.org/blog/wkd/&#34;&gt;re-visiting WKD&lt;/a&gt;, it reminded me of its existence and I checked to&#xA;see if anything about the proposed standard had changed since then.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>WKD</title>
      <link>https://chromic.org/blog/wkd/</link>
      <pubDate>Tue, 04 Feb 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/wkd/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I recently re-learned about &lt;a href=&#34;https://wiki.gnupg.org/WKS&#34;&gt;Web Key Service&lt;/a&gt; (WKS)&#xA;and &lt;a href=&#34;https://wiki.gnupg.org/WKD&#34;&gt;Web Key Directory&lt;/a&gt; (WKD). I opted to host a&#xA;&lt;a href=&#34;https://wiki.gnupg.org/WKDHosting&#34;&gt;static version of WKD&lt;/a&gt;, which is&#xA;essentially just placing text files in a specific directory.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dynamically removing a known nft rule</title>
      <link>https://chromic.org/blog/dynamically-remove-nft-rule/</link>
      <pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/dynamically-remove-nft-rule/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I have the creation and configuration of my Incus containers&#xA;&lt;a href=&#34;https://git.srht.chromic.org/~chimo/incus-scripts/tree/main/item/create-container/README.md&#34;&gt;automated&lt;/a&gt;.&#xA;This includes &lt;a href=&#34;https://git.srht.chromic.org/~chimo/incus-scripts/tree/main/item/create-container/containers/logic-b0mb/pkgs/assets/remote.sh#L9-11&#34;&gt;configuring&#xA;nftables&lt;/a&gt;.&#xA;On Alpine Linux, this typically just means adding a rule to allow traffic from&#xA;an IP/range on a specific port. On Archlinux, however, a built-in rule was&#xA;giving me trouble so I needed to get rid of it programatically.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Fixing &#34;idmaps of container and storage volume are not identical&#34;</title>
      <link>https://chromic.org/blog/idmaps-mismatch/</link>
      <pubDate>Thu, 23 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/idmaps-mismatch/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;If, for whatever reason, you&amp;rsquo;re in a situation where a volume cannot be added&#xA;to a container with an error message similar to: &amp;ldquo;idmaps of container&#xA;&amp;lt;container-name&amp;gt; and storage volume &amp;lt;volume-name&amp;gt; are not&#xA;identical&amp;rdquo;, you might need to run the following:&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>nftables on Alpine Linux vs. Archlinux</title>
      <link>https://chromic.org/blog/nftables-alpine-arch/</link>
      <pubDate>Wed, 22 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/nftables-alpine-arch/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;One thing I forgot about regarding the Archlinux &amp;ldquo;nftables&amp;rdquo; systemd unit file,&#xA;is that stopping the &lt;code&gt;nftables&lt;/code&gt; service doesn&amp;rsquo;t flush the ruleset. If you want&#xA;the rules gone, you need to run &amp;ldquo;nft flush ruleset&amp;rdquo;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>ytdl:// URLs</title>
      <link>https://chromic.org/blog/ytdl-urls/</link>
      <pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/ytdl-urls/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Today I learned about how you can pass a&#xA;&amp;ldquo;&lt;a href=&#34;https://github.com/yt-dlp/yt-dlp&#34;&gt;yt-dlp&lt;/a&gt;&amp;rdquo; URL (with format&#xA;&amp;ldquo;ytdl://&amp;lt;video-id&amp;gt;&amp;rdquo;) to &amp;ldquo;&lt;a href=&#34;https://mpv.io/&#34;&gt;mpv&lt;/a&gt;&amp;rdquo; and it&amp;rsquo;ll play the&#xA;relevant YouTube video.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>The samp HTML Element</title>
      <link>https://chromic.org/blog/samp-html-element/</link>
      <pubDate>Sat, 18 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/samp-html-element/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Today I learned about the &lt;code class=&#34;inline-code&#34;&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/samp&#34;&gt;&amp;lt;samp&amp;gt;&lt;/a&gt;&lt;/code&gt; HTML element, and how&#xA;it differs from the &lt;code class=&#34;inline-code&#34;&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output&#34;&gt;&amp;lt;output&amp;gt;&lt;/a&gt;&lt;/code&gt; element.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>jq, yq, yx, xq</title>
      <link>https://chromic.org/blog/jq-yq-yx-xq/</link>
      <pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/jq-yq-yx-xq/</guid>
      <description>&lt;p class=&#34;p-summary&#34;&gt;&#xA;  This is one of those times where I did a search, which yielded an unexpected&#xA;  but interesting result, which led me to a CLI tool, which led me to another&#xA;  CLI tool... It&#39;s almost like the web is built on links, or something.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flashing postmarketOS on a Samsung gtexswifi Device from an Incus VM</title>
      <link>https://chromic.org/blog/postmarketos-on-samsung-gtexswifi/</link>
      <pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/postmarketos-on-samsung-gtexswifi/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;With my &lt;a href=&#34;https://chromic.org/blog/incus-vms/&#34;&gt;Incus VM running Alpine Linux&lt;/a&gt; up and running, I was&#xA;able to install&#xA;&lt;a href=&#34;https://pkgs.alpinelinux.org/package/v3.21/community/x86_64/pmbootstrap&#34;&gt;pmbootstrap&lt;/a&gt;&#xA;and build the environment to flash the &lt;a href=&#34;https://en.wikipedia.org/wiki/Samsung_Galaxy_Tab_A_7.0#Galaxy_A_(2016)&#34;&gt;Samsung Galaxy Tab A 7.0 - SM-T280&#xA;(gtexswifi)&lt;/a&gt;&#xA;device.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Launch Incus VM with Custom root Partition Size</title>
      <link>https://chromic.org/blog/launch-incus-vm-with-custom-root-partition-size/</link>
      <pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/launch-incus-vm-with-custom-root-partition-size/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This is &amp;ldquo;part 3&amp;rdquo; of the &lt;a href=&#34;https://chromic.org/blog/incus-vms/&#34;&gt;Virtual Machines with Incus on an Alpine Linux&#xA;Host&lt;/a&gt; blog post saga. In this post we&amp;rsquo;ll have a look at what&#xA;I needed to do to resize the root partition of the VM that was created in part&#xA;1.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Reset Incus VM root Password Without incus-agent</title>
      <link>https://chromic.org/blog/reset-incus-vm-root-password-without-incus-agent/</link>
      <pubDate>Fri, 03 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/reset-incus-vm-root-password-without-incus-agent/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This is &amp;ldquo;part 2&amp;rdquo; of the &lt;a href=&#34;https://chromic.org/blog/incus-vms/&#34;&gt;Virtual Machines with Incus on an Alpine Linux&#xA;Host&lt;/a&gt; blog post saga. In this blog post,&#xA;we find a way to access the VM when the incus-agent isn&amp;rsquo;t running.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Virtual Machines with Incus on an Alpine Linux Host</title>
      <link>https://chromic.org/blog/incus-vms/</link>
      <pubDate>Thu, 02 Jan 2025 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/incus-vms/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Before now, I&amp;rsquo;d only ever used Incus to &lt;a href=&#34;https://chromic.org/blog/containers-on-my-machine/&#34;&gt;run&#xA;containers&lt;/a&gt;. I ran into a situation where I&#xA;needed a virtual machine (VM) instead (more on that in a later post). This post&#xA;documents my experience setting that up on an Alpine Linux host.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>DNmesS</title>
      <link>https://chromic.org/blog/dnmess/</link>
      <pubDate>Fri, 13 Dec 2024 02:32:24 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/dnmess/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;A post about the current state of my DNS infrastructure. Once again acting as a&#xA;reminder of how my own things work, because I need to re-learn it every eight&#xA;months or so when troubleshooting something.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Integrating khard and aerc Incus Containers</title>
      <link>https://chromic.org/blog/integrating-khard-and-aerc-incus-containers/integrating-khard-and-aerc-incus-containers/</link>
      <pubDate>Wed, 11 Dec 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/integrating-khard-and-aerc-incus-containers/integrating-khard-and-aerc-incus-containers/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This post explains how I currently have&#xA;&lt;a href=&#34;https://khard.readthedocs.io/en/latest/&#34;&gt;khard&lt;/a&gt; and&#xA;&lt;a href=&#34;https://aerc-mail.org/&#34;&gt;aerc&lt;/a&gt; running in separate &lt;a href=&#34;https://chromic.org/blog/containers-on-my-machine/&#34;&gt;Incus&#xA;containers&lt;/a&gt;, while having aerc being able to&#xA;lookup contacts via khard.  It&amp;rsquo;s nothing revolutionary, and I&amp;rsquo;m sure there are&#xA;better ways, but it&amp;rsquo;s the first thing I thought of, and it works (spoilers:&#xA;it&amp;rsquo;s SSH).&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Adding Blocks to Shuibar</title>
      <link>https://chromic.org/blog/adding-blocks-to-shuibar/</link>
      <pubDate>Sat, 07 Dec 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/adding-blocks-to-shuibar/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;A while ago (&lt;em&gt;checks git history&lt;/em&gt;, around August, 2023), I started working on a&#xA;&lt;a href=&#34;https://srht.chromic.org/~chimo/shuibar/&#34;&gt;custom statusbar&lt;/a&gt; for the&#xA;&lt;a href=&#34;https://swaywm.org/&#34;&gt;swaywm&lt;/a&gt;. As with most things I write, I don&amp;rsquo;t necessarily&#xA;recommend people use this; it&amp;rsquo;s mostly there for me to learn about different&#xA;things and to scratch my own itch type-of-thing. Last week, &lt;a href=&#34;https://git.srht.chromic.org/~chimo/shuibar/tree/main/item/blocks/container-images/container-images.sh&#34;&gt;I added a simple&#xA;block&lt;/a&gt;&#xA;to it and I&amp;rsquo;m just really enjoying how easy it was to add that functionality&#xA;in.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>No Car, No Tv, No Internet</title>
      <link>https://chromic.org/blog/no-car-no-tv-no-internet/</link>
      <pubDate>Wed, 04 Dec 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/no-car-no-tv-no-internet/</guid>
      <description>&lt;p class=&#34;p-summary&#34;&gt;&#xA;  Yesterday evening wasn&#39;t supposed to be much different than any other Tuesday&#xA;  evening: pass by groceries after work, have dinner, cleanup &amp;amp; a few&#xA;  chores, catch-up with what&#39;s been happening on the internet, maybe watch a&#xA;  couple of episodes of some show... Except that a couple of things turned it&#xA;  into a situation where I had no car, no internet and no Tv signal.  Note that&#xA;  I&#39;m not complaining; these things are luxuries. It was just unexpected, is&#xA;  all.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom &#34;!Bangs&#34; in qutebrowser</title>
      <link>https://chromic.org/blog/qutebrowser-bangs/</link>
      <pubDate>Sat, 30 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/qutebrowser-bangs/</guid>
      <description>&lt;p class=&#34;p-summary&#34;&gt;&#xA;  I&#39;ve been using &lt;a href=&#34;https://duckduckgo.com&#34;&gt;DuckDuckGo&lt;/a&gt; as my default&#xA;  search engine for a while now (recently moved to the &lt;a&#xA;  href=&#34;https://lite.duckduckgo.com&#34;&gt;lite version&lt;/a&gt;). One thing I like about&#xA;  it is the &lt;a href=&#34;https://duckduckgo.com/bang_lite.html&#34;&gt;!bang feature&lt;/a&gt;.&#xA;  Unfortunately, you can&#39;t customize or add your own without submitting them to&#xA;  DuckDuckGo for review and approval, so I looked into how to achieve this with&#xA;  &lt;a href=&#34;https://www.qutebrowser.com&#34;&gt;qutebrowser&lt;/a&gt; instead.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Qutebrowser Interceptors</title>
      <link>https://chromic.org/blog/qutebrowser-interceptors/</link>
      <pubDate>Thu, 28 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/qutebrowser-interceptors/</guid>
      <description>&lt;p class=&#34;p-summary&#34;&gt;&#xA;  I&#39;m using &lt;a href=&#34;https://www.qutebrowser.org/&#34;&gt;qutebrowser&lt;/a&gt; as my&#xA;  daily-driver to browse the web. In my &lt;a&#xA;  href=&#34;https://git.srht.chromic.org/~chimo/dotfiles/tree/44e1649e13b15e3041bf691ec5d050814d080b05/item/.config/qutebrowser&#34;&gt;configs&lt;/a&gt;,&#xA;  I have &lt;a&#xA;  href=&#34;https://git.srht.chromic.org/~chimo/dotfiles/tree/44e1649e13b15e3041bf691ec5d050814d080b05/item/.config/qutebrowser/pyconfig/redirectors.py&#34;&gt;interceptors&lt;/a&gt;&#xA;  to redirect &#34;(www.)reddit.com&#34; requests to &#34;old.reddit.com&#34; since I find the&#xA;  old interface much more usable. I wanted to add something similar for&#xA;  youtube, but ran into some issues.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unsophisticated Alerts on Container Update Failures</title>
      <link>https://chromic.org/blog/alerts-on-container-update-failures/</link>
      <pubDate>Tue, 26 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/alerts-on-container-update-failures/</guid>
      <description>&lt;div class=&#34;p-summary&#34;&gt;&#xA;  &lt;p&gt;&#xA;    A couple of days ago, &lt;a href=&#34;https://chromic.org/blog/application-recovery-with-incus/&#34;&gt;I&#xA;    mentioned&lt;/a&gt;:&#xA;  &lt;/p&gt;&#xA;  &lt;blockquote&gt;&#xA;    [...]one thing I want to add now is error reporting for those unattended,&#xA;    scheduled upgrades. For this particular case, it would be as simple as&#xA;    flagging when `apk upgrade` returns a failure.&#xA;  &lt;/blockquote&gt;&#xA;  &lt;p&gt;&#xA;    Not sure if this is worth a blog post but for now, I&#39;m just sending myself&#xA;    email notifications via &lt;a href=&#34;https://marlam.de/msmtp/&#34;&gt;msmtp&lt;/a&gt;&#39;s&#xA;    `sendmail` implementation.&#xA;  &lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Add Timestamps to bash History</title>
      <link>https://chromic.org/blog/timestamps-in-bash-history/</link>
      <pubDate>Mon, 25 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/timestamps-in-bash-history/</guid>
      <description>&lt;div class=&#34;p-summary&#34;&gt;&#xA;  &lt;p&gt;&#xA;    It turns out it&#39;s pretty easy to add timestamps to bash&#39;s `history` shell&#xA;    built-in. Add the following in your .bashrc:&lt;br /&gt;&#xA;  &lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;HISTTIMEFORMAT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%F %T &amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;p&gt;&lt;a href=&#34;https://askubuntu.com/a/391087&#34;&gt;Reference&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Application Disaster Recovery with Incus Containers</title>
      <link>https://chromic.org/blog/application-recovery-with-incus/</link>
      <pubDate>Sun, 24 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/application-recovery-with-incus/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Recently, one of my self-hosted services suffered a partial upgrade failure.&#xA;These are the steps I followed to get back to a working version, then&#xA;troubleshoot the issue.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Set a user&#39;s password non-interactively</title>
      <link>https://chromic.org/blog/chpasswd/</link>
      <pubDate>Sat, 23 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/chpasswd/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Today I ran into a use-case where I needed to set a Linux user&amp;rsquo;s password via&#xA;script, non-interactively. I don&amp;rsquo;t think this is something I&amp;rsquo;ve had to do in&#xA;the past, and so I learned about the&#xA;&lt;a href=&#34;https://man.archlinux.org/man/chpasswd.8&#34;&gt;chpasswd&lt;/a&gt; utility.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Let&#39;s Go</title>
      <link>https://chromic.org/blog/lets-go/</link>
      <pubDate>Wed, 20 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/lets-go/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This is a short tale about my first interactions with the &lt;a href=&#34;https://go.dev/&#34;&gt;Go&#xA;language&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Writing</title>
      <link>https://chromic.org/blog/writing/</link>
      <pubDate>Sun, 17 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/writing/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This week, I decided to try to blog more frequently. I&amp;rsquo;d like to keep that up&#xA;long-term. We&amp;rsquo;ll see if that pans-out, but I think I have to try shifting how I&#xA;approach writing for that to happen.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>BOM and Python</title>
      <link>https://chromic.org/blog/bom-and-python/</link>
      <pubDate>Sat, 16 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/bom-and-python/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;&lt;acronym title=&#34;Too long; didn&#39;t read&#34;&gt;TL;DR&lt;/acronym&gt;: Decode data with&#xA;&amp;ldquo;utf-8-sig&amp;rdquo; to handle files that may or may not be encoded with &lt;acronym&#xA;title=&#34;Byte Order Mark&#34;&gt;BOM&lt;/acronym&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>My Software Stack</title>
      <link>https://chromic.org/blog/my-software-stack/</link>
      <pubDate>Wed, 13 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/my-software-stack/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This is a blog post similar to &lt;a href=&#34;https://chromic.org/blog/my-android-stack/&#34;&gt;My Android Stack&lt;/a&gt;,&#xA;except for my daily-driver machine: a &lt;a href=&#34;https://chromic.org/blog/dualbooting-alpinelinux-on-dell-xps/&#34;&gt;Dell XPS laptop running Alpine&#xA;Linux&lt;/a&gt;. Most of those tools &lt;a href=&#34;https://chromic.org/blog/containers-on-my-machine/&#34;&gt;run in&#xA;their own Incus container&lt;/a&gt;, because why not.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Blogroll</title>
      <link>https://chromic.org/blog/blogroll/</link>
      <pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/blogroll/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve added a &amp;ldquo;blogroll&amp;rdquo; section at the bottom of my blog posts (&amp;ldquo;Recent&#xA;articles from blogs I follow&amp;rdquo;). This post describes how it&amp;rsquo;s implemented.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>nextcloud-upgrade OpenRC Service</title>
      <link>https://chromic.org/blog/nextcloud-upgrade-openrc-service/</link>
      <pubDate>Sat, 09 Nov 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/nextcloud-upgrade-openrc-service/</guid>
      <description>&lt;h2 id=&#34;service&#34;&gt;Service&lt;/h2&gt;&#xA;&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;My Incus containers &lt;a href=&#34;https://chromic.org/blog/lxd-patching-strategy/&#34;&gt;upgrade automatically on a&#xA;schedule&lt;/a&gt;. This has been running fine for a&#xA;couple of years now, except that Nextcloud has the annoying habit of presenting&#xA;a &amp;ldquo;click here to upgrade&amp;rdquo; interstitial page instead of, you know, just doing&#xA;the upgrade.&lt;/p&gt;&#xA;&lt;p&gt;There might be a way to tell Nextcloud to apply the upgrade automatically,&#xA;but in a pinch I just wrote an OpenRC service that runs &lt;code&gt;occ upgrade&lt;/code&gt; at&#xA;bootup after the &amp;ldquo;nextcloud&amp;rdquo; service starts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Airy Tooth</title>
      <link>https://chromic.org/blog/airy-tooth/</link>
      <pubDate>Tue, 29 Oct 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/airy-tooth/</guid>
      <description>&lt;p class=&#34;notice&#34;&gt;&#xA;  &lt;u&gt;Note&lt;/u&gt;: This is an update to my previous blog post &#34;&lt;a&#xA;  href=&#34;https://chromic.org/blog/weathered-radio/&#34;&gt;Weathered Radio&lt;/a&gt;&#34; from five years ago.&#xA;&lt;/p&gt;&#xA;&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I now pull data from an AirThings WavePlus sensor with my old RaspberryPi 2B&#xA;via Bluetooth and send it to a self-hosted InfluxDB instance.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>List the Current Page&#39;s RSS Feeds with qutebrowser</title>
      <link>https://chromic.org/blog/list-rss-feeds-with-qutebrowser/</link>
      <pubDate>Wed, 26 Jun 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/list-rss-feeds-with-qutebrowser/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I wrote a&#xA;&amp;ldquo;&lt;a href=&#34;https://github.com/qutebrowser/qutebrowser/tree/main/misc/userscripts&#34;&gt;userscript&lt;/a&gt;&amp;rdquo;&#xA;for qutebrowser that lists current page&amp;rsquo;s RSS feeds:&#xA;&lt;a href=&#34;https://git.srht.chromic.org/~chimo/dotfiles/tree/main/item/.config/qutebrowser/userscripts/list_rss.py&#34;&gt;list_rss.py&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The code is heavily based on the&#xA;&lt;a href=&#34;https://github.com/qutebrowser/qutebrowser/blob/main/misc/userscripts/openfeeds&#34;&gt;openfeeds&lt;/a&gt;&#xA;userscript that ships with qutebrowser.&lt;/p&gt;&#xA;&lt;p&gt;Instead of opening one tab per RSS feed, containing the XML of the RSS feed&#xA;itself, list_rss.py opens a single tab with the URLs of the RSS feeds it found&#xA;separated by newlines.&lt;/p&gt;&#xA;&lt;p&gt;That is all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Plot git-commits on a Graph with gnuplot</title>
      <link>https://chromic.org/blog/gnuplot/</link>
      <pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/gnuplot/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;After going down some Internet rabbit hole, as one does, I somehow ended up on&#xA;a &lt;a href=&#34;https://dillo-browser.github.io/dillo.org.html&#34;&gt;dillo browser blog post&lt;/a&gt;.&#xA;The blog post is interesting on its own, and something that caught my eye was&#xA;their graph of git-commits over time, made with &lt;a href=&#34;http://gnuplot.info/&#34;&gt;gnuplot&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Stale APKBUILDs Detection</title>
      <link>https://chromic.org/blog/stale-apkbuilds/</link>
      <pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/stale-apkbuilds/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I wrote &lt;a href=&#34;https://git.srht.chromic.org/~chimo/apkbuilds/tree/master/item/check-stale-apkbuilds.sh&#34;&gt;a&#xA;script&lt;/a&gt;&#xA;to detect when &lt;a href=&#34;https://srht.chromic.org/~chimo/apkbuilds/&#34;&gt;my APKBUILDs&lt;/a&gt; need&#xA;to be sync&amp;rsquo;ed with upstream. Then, I hooked it up to my &lt;a href=&#34;https://srht.chromic.org/~chimo/shuibar/&#34;&gt;custom&#xA;swaybar&lt;/a&gt; to be notified.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Migrating from LXD to Incus on Alpine Linux</title>
      <link>https://chromic.org/blog/migrating-from-lxd-to-incus/</link>
      <pubDate>Wed, 22 May 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/migrating-from-lxd-to-incus/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Another day, another migration.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Migrating from GitHub to Codeberg</title>
      <link>https://chromic.org/blog/migrating-from-github-to-codeberg/</link>
      <pubDate>Wed, 15 May 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/migrating-from-github-to-codeberg/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Some scripts I quickly wrote to copy my GitHub repositories over to Codeberg.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Recovering From a Full btrfs Disk</title>
      <link>https://chromic.org/blog/recovering-from-full-btrfs-disk/</link>
      <pubDate>Sat, 11 May 2024 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/recovering-from-full-btrfs-disk/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Jotting down the steps I took&#xA;(&lt;a href=&#34;https://unix.stackexchange.com/a/693821&#34;&gt;found&lt;/a&gt;) to recover from a full (or&#xA;&amp;ldquo;metadata full&amp;rdquo;) btrfs disk.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Containers? On MY machine?</title>
      <link>https://chromic.org/blog/containers-on-my-machine/</link>
      <pubDate>Sat, 30 Sep 2023 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/containers-on-my-machine/</guid>
      <description>&lt;p&gt;&lt;cite&gt;&amp;ldquo;It&amp;rsquo;s more likely than you think.&amp;quot;&lt;/cite&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This is another post about different things I&amp;rsquo;ve been messing around with over&#xA;the years, coming together and merging into what became my day-to-day machine.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dualbooting Alpine Linux on Dell XPS</title>
      <link>https://chromic.org/blog/dualbooting-alpinelinux-on-dell-xps/</link>
      <pubDate>Tue, 22 Aug 2023 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/dualbooting-alpinelinux-on-dell-xps/</guid>
      <description>&lt;p&gt;A while back, I got a Dell XPS machine that came with Ubuntu preinstalled. I&amp;rsquo;ve&#xA;been running Arch Linux on most of my machine for several years now, so decided&#xA;to install Arch Linux alongside Ubuntu.&lt;/p&gt;&#xA;&lt;p&gt;Fastforward a few years: I&amp;rsquo;ve been interfacing more and more with Alpine Linux&#xA;lately and want to try it as a daily distro for a bit, so I&amp;rsquo;ve decided to&#xA;replace the Arch Linux install on the XPS with Alpine.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Transcoding and Streaming with ffmpeg</title>
      <link>https://chromic.org/blog/transcoding-with-ffmpeg/</link>
      <pubDate>Fri, 03 Feb 2023 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/transcoding-with-ffmpeg/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Another note-to-self to document the commands I&amp;rsquo;m using to transcode video&#xA;files from the desktop and stream it to the raspberrypi.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>DVD DRM and Regions</title>
      <link>https://chromic.org/blog/dvd-drm-region/</link>
      <pubDate>Sun, 29 Jan 2023 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/dvd-drm-region/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;A quick note-to-self regarding DVD drives and regions.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>HAProxy Traffic Logs with GoAccess</title>
      <link>https://chromic.org/blog/haproxy-traffic-logs-with-goaccess/</link>
      <pubDate>Sat, 22 Oct 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/haproxy-traffic-logs-with-goaccess/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.haproxy.org/&#34;&gt;HAProxy&lt;/a&gt; is essentially the entry-point for most of&#xA;the services I run. Its logs are sent to a central rsyslog container on a&#xA;volume that&amp;rsquo;s accessible by the &lt;a href=&#34;https://goaccess.io/&#34;&gt;GoAccess&lt;/a&gt; container for&#xA;parsing. I found most of the &lt;a href=&#34;https://serverfault.com/a/765247&#34;&gt;configs here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Switching LXD Storage Pools</title>
      <link>https://chromic.org/blog/switching-lxd-storage-pools/</link>
      <pubDate>Wed, 19 Oct 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/switching-lxd-storage-pools/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Short post so I remember how I moved my containers from a &lt;a href=&#34;https://linuxcontainers.org/lxd/docs/master/reference/storage_dir/&#34;&gt;&amp;ldquo;dir&amp;rdquo; storage&#xA;pool&lt;/a&gt; to&#xA;&lt;a href=&#34;https://linuxcontainers.org/lxd/docs/master/reference/storage_btrfs/&#34;&gt;btrfs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>vim</title>
      <link>https://chromic.org/blog/vim/</link>
      <pubDate>Wed, 05 Oct 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/vim/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Documenting my vim setup and plugins I&amp;rsquo;m using. It&amp;rsquo;s pretty underwhelming, but&#xA;I&amp;rsquo;m jotting this down here so I can keep track of how it evolves over time.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>vaultwarden</title>
      <link>https://chromic.org/blog/vaultwarden/</link>
      <pubDate>Tue, 04 Oct 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/vaultwarden/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Welcome, vaultwarden, to the list of &lt;a href=&#34;https://chromic.org/blog/project-autonomous&#34;&gt;things I&amp;rsquo;m&#xA;hosting&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Migrating Gitea&#39;s Database from MariaDB to PostgreSQL</title>
      <link>https://chromic.org/blog/migrating-gitea-database/</link>
      <pubDate>Mon, 03 Oct 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/migrating-gitea-database/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t have anything against MariaDB, and had no problems with it being the&#xA;database for Gitea. Everything else I have runs on PostgreSQL though so I&#xA;figured I&amp;rsquo;d migrate Gitea over to PostgreSQL and be able to free-up some&#xA;resources by getting rid of the MariaDB container I had running.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>LXD Patching Strategy</title>
      <link>https://chromic.org/blog/lxd-patching-strategy/</link>
      <pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/lxd-patching-strategy/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This post describes the way I handle patching with LXD. Nothing too fancy or&#xA;complicated. Should be good-enough for a hobby. Time will tell.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>LXD Backup Strategy</title>
      <link>https://chromic.org/blog/lxd-backup-strategy/</link>
      <pubDate>Sat, 01 Oct 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/lxd-backup-strategy/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;This post describes the way I handle backups with LXD. Nothing too fancy or&#xA;complicated. Should be good-enough for a hobby. Time will tell.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>k3rnel-pan1c</title>
      <link>https://chromic.org/blog/k3rnel-pan1c/</link>
      <pubDate>Fri, 30 Sep 2022 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/k3rnel-pan1c/</guid>
      <description>&lt;p&gt;Hello, friend.&lt;/p&gt;&#xA;&lt;p&gt;Long time no see.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m not good with introductions so let&amp;rsquo;s just dive into it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;shutdown--r&#34;&gt;shutdown -r&lt;/h2&gt;&#xA;&lt;p&gt;Things I&#39;ve done since Apr. 27 2020:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;  &lt;li&gt;&#xA;    Shut everything down except critical services.&lt;br /&gt;&#xA;    The resources I kept running are:&#xA;    &lt;ul&gt;&#xA;      &lt;li&gt;&#xA;        mail (postfix et al.) and webmail (mail.chromic.org)&lt;br /&gt;&#xA;        Last line of communication with the world. Mostly to get reminders&#xA;        about domain expiry, etc.&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        code.chromic.org&lt;br /&gt;&#xA;        On the off-chance my crappy code is of interest to anyone.&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        files.chromic.org&lt;br /&gt;&#xA;        For file storage.&#xA;      &lt;/li&gt;&#xA;    &lt;/ul&gt;&#xA;  &lt;/li&gt;&#xA;  &lt;li&gt;&#xA;    Except for work, stopped doing much of anything computer-related. No&#xA;    development and no sysadmin stuff except `pacman -Syu`.&#xA;  &lt;/li&gt;&#xA;  &lt;li&gt;&#xA;    Stopped initiating contact with people.&#xA;  &lt;/li&gt;&#xA;  &lt;li&gt;&#xA;    Turned off most phone notifications.&#xA;  &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It took a while, but eventually things got really quiet. Things got simpler,&#xA;and I felt like I could focus.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Weathered Chimo</title>
      <link>https://chromic.org/blog/weathered-chimo/</link>
      <pubDate>Mon, 27 Apr 2020 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/weathered-chimo/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;So I haven&amp;rsquo;t been on here for a while, huh?&lt;/p&gt;&#xA;&lt;p&gt;For the most part, I haven&amp;rsquo;t touched this whole &amp;ldquo;*.chromic.org&amp;rdquo; environment&#xA;since my &lt;a href=&#34;https://chromic.org/blog/the-road-to-gtfs/&#34;&gt;last post in September&lt;/a&gt;. I don&amp;rsquo;t think this&#xA;post is indicative of a &amp;ldquo;return to a regular schedule&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;So what am I doing here then? I found a draft post I&amp;rsquo;d started almost a year&#xA;ago, around the time I was messing with weather data and wrote the &lt;a href=&#34;https://chromic.org/blog/weathered-radio/&#34;&gt;Weathered&#xA;Radio&lt;/a&gt; post. I figured I&amp;rsquo;d get it&#xA;done and, who knows, maybe I&amp;rsquo;m wrong and I&amp;rsquo;ll start posting more. So let&amp;rsquo;s cut&#xA;the crap and get to it, shall we?&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Road to GTFS</title>
      <link>https://chromic.org/blog/the-road-to-gtfs/</link>
      <pubDate>Tue, 17 Sep 2019 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/the-road-to-gtfs/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Pretty much every blog post here relates to &lt;a href=&#34;https://chromic.org/blog/project-autonomous/&#34;&gt;Project&#xA;Autonomous&lt;/a&gt; in a way or another. This blog post does&#xA;as well. This time, I&amp;rsquo;m telling the story of how gtfs.chromic.org came about.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Gitea, Drone CI, Hugo and Auto-deployment</title>
      <link>https://chromic.org/blog/gitea-drone-hugo/</link>
      <pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/gitea-drone-hugo/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p class=&#34;notice&#34;&gt;&#xA;  &lt;u&gt;Note&lt;/u&gt;: This is an update to my previous blog post &#34;&lt;a&#xA;  href=&#34;https://chromic.org/blog/git-gogs-jekyll/&#34;&gt;Git, Gogs, Jekyll and&#xA;  Auto-deployment&lt;/a&gt;&#34; since I&#39;ve changed things up in the last four years.&#xA;&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Weathered Radio</title>
      <link>https://chromic.org/blog/weathered-radio/</link>
      <pubDate>Sun, 23 Jun 2019 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/weathered-radio/</guid>
      <description>&lt;p class=&#34;notice&#34;&gt;&#xA;  &lt;u&gt;Note&lt;/u&gt;: This setup was superseded by &lt;a href=&#34;https://chromic.org/blog/airy-tooth/&#34;&gt;Airy Tooth&lt;/a&gt;.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;  A while ago, I wrote about &lt;a href=&#34;https://chromic.org/blog/aqueous-radio/&#34;&gt;listening-in to our&#xA;  wireless water meter with a USB SDR&lt;/a&gt;. A while after that, we received a&#xA;  weather station that includes a wireless sensor to measure the weather&#xA;  outside:&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://chromic.org/images/weathered-radio/acurite.jpg&#34;&#xA;alt=&#34;Acurite weather station and wireless sensor&#34; /&gt;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;  With the excellent &lt;a href=&#34;https://github.com/merbanan/rtl_433&#34;&gt;rtl_433&lt;/a&gt;&#xA;  utility, it was quite easy to get a reading off of the wireless sensor. The&#xA;  following script will launch `rtl_433` for 30 seconds and output the readings&#xA;  in JSON format. We then use `jq` to select only the readings specific to our&#xA;  sensor by filtering by sensor id (there are a couple other wireless sensors&#xA;  around it seems), keep only the last reading, do some calibration with `jq`&#xA;  again and write the final JSON to a file. I then point nginx to that file,&#xA;  serve it with a &#39;application/json&#39; Content-Type and boom: local weather&#xA;  accessible remotely.  Why? No idea, but it&#39;s kind of neat.&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mail</title>
      <link>https://chromic.org/blog/mail/</link>
      <pubDate>Wed, 05 Jun 2019 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/mail/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Once again, I&amp;rsquo;m just documenting part of my setup. It&amp;rsquo;s nothing that hasn&amp;rsquo;t&#xA;been done before (it&amp;rsquo;s just a collection of different utilities, barely&#xA;deviating from the out-of-the-box configuration, really). This time, we&amp;rsquo;re&#xA;talking about mail.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Tripping on LXD</title>
      <link>https://chromic.org/blog/lxd/</link>
      <pubDate>Wed, 29 May 2019 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/lxd/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t mind me; I&amp;rsquo;m just jotting down a couple of issues I ran into while&#xA;messing around with LXD.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Trying Wayland</title>
      <link>https://chromic.org/blog/wayland/</link>
      <pubDate>Thu, 21 Mar 2019 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/wayland/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Let me preface this by saying that I don&amp;rsquo;t particularly dislike X11. I&amp;rsquo;ve used&#xA;it for years, it did a pretty good job of getting out of the way, and most of&#xA;the time I&amp;rsquo;m not really thinking about it.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been stumbling on more and more articles and mentions about&#xA;&lt;a href=&#34;https://wayland.freedesktop.org/&#34;&gt;Wayland&lt;/a&gt;, however, and so I&amp;rsquo;ve decided to&#xA;try to use Wayland, and applications running on Wayland exclusively. For this&#xA;experiment, I consider XWayland cheating, so I disabled it in my Sway configs.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Aqueous Radio</title>
      <link>https://chromic.org/blog/aqueous-radio/</link>
      <pubDate>Fri, 17 Nov 2017 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/aqueous-radio/</guid>
      <description>&lt;figure class=&#34;inline-block&#34;&gt;&#xA;  &lt;img src=&#34;https://chromic.org/images/aqueous-radio/amr-water.png&#34; alt=&#34;&#34; /&gt;&#xA;  &lt;figcaption&gt;Automated Meter Reading (AMR) module&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;&lt;i&gt;&amp;ldquo;I wonder what that thing is…&amp;quot;&lt;/i&gt;&lt;br /&gt;&#xA;Is what I thought when I saw the &amp;ldquo;thing&amp;rdquo; in the picture above stuck to our&#xA;house when we moved in almost four years ago. I then promptly forgot about it&#xA;as I got busy with other things.&lt;/p&gt;&#xA;&lt;p&gt;Last summer however, I was walking around the expanding neighborhood near&#xA;construction sites. I must&amp;rsquo;ve been in a particularly inquisitive mood and my&#xA;eyes happened to focus on one of those &amp;ldquo;things&amp;rdquo; on another house. I decided&#xA;that the mystery needed to be solved so I walked back home and did a bit of&#xA;research (fancy way of saying I ran two or three web searches).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running youtube-dl on Android via Termux</title>
      <link>https://chromic.org/blog/youtube-dl-android-termux/</link>
      <pubDate>Tue, 16 May 2017 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/youtube-dl-android-termux/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I recently got &lt;a href=&#34;https://ytdl-org.github.io/youtube-dl/&#34;&gt;youtube-dl&lt;/a&gt; working on&#xA;LineageOS nightly via &lt;a href=&#34;http://termux.com/&#34;&gt;Termux&lt;/a&gt;. Here are the steps I took:&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Transferred</title>
      <link>https://chromic.org/blog/transferred/</link>
      <pubDate>Tue, 04 Apr 2017 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/transferred/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve transferred the chromic.org domain from Dreamhost to Hover. Mostly because&#xA;of UI/UX reasons.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Renewed</title>
      <link>https://chromic.org/blog/renewed/</link>
      <pubDate>Sat, 04 Mar 2017 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/renewed/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;I just renewed the chromic.org domain for another two years:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Boop! Renewed chromic.org. You guys are stuck with me for at least another&#xA;two years.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The act of renewing the domain kind of felt like the beginning of a new year,&#xA;somehow. A good time to reflect on what I&amp;rsquo;ve done with the domain since last&#xA;time I renewed it, to think about where it&amp;rsquo;s going, what the future projects&#xA;are.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m not going to lay down plans for the next two years in this post because&#xA;frankly, I haven&amp;rsquo;t thought about it that far ahead. But I can try to give an&#xA;overview of the plans I have for the near-future. Maybe publishing those plans&#xA;here is going to give me a reason to get to them faster than I normally would.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Lifestream Architecture</title>
      <link>https://chromic.org/blog/lifestream-architecture/</link>
      <pubDate>Mon, 15 Jun 2015 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/lifestream-architecture/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Recently, the &lt;a href=&#34;https://chromic.org&#34;&gt;homepage of this blog&lt;/a&gt; changed from a&#xA;static list of recent blog posts to a realtime stream of updates (the list of&#xA;blog posts is still there, moved to the sidebar). This post tries to document&#xA;(mostly as a &amp;ldquo;note-to-self&amp;rdquo;, again) how this &amp;ldquo;lifestream&amp;rdquo; works.&lt;/p&gt;&#xA;&lt;p&gt;Note: This is a work-in-progress; I&amp;rsquo;ve already got plans to tweak how some of&#xA;the pieces fit together.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Git, Gogs, Jekyll and Auto-deployment</title>
      <link>https://chromic.org/blog/git-gogs-jekyll/</link>
      <pubDate>Wed, 13 May 2015 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/git-gogs-jekyll/</guid>
      <description>&lt;div class=&#34;notice&#34; style=&#34;margin-top: 12px;&#34;&gt;&#xA;  &lt;u&gt;Note&lt;/u&gt;: This setup was superseded by &lt;a href=&#34;https://chromic.org/blog/gitea-drone-hugo/&#34;&gt;Gitea, Drone CI, Hugo and Auto-deployment&lt;/a&gt;.&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;Since yesterday, this blog deploys automatically when I push changes to its git&#xA;repository. Before that, my workflow was something like:&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>My Android Stack</title>
      <link>https://chromic.org/blog/my-android-stack/</link>
      <pubDate>Sun, 11 May 2014 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/my-android-stack/</guid>
      <description>&lt;h2 id=&#34;apps&#34;&gt;Apps&lt;/h2&gt;&#xA;&lt;dl&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/de.danoeh.antennapod&#34;&gt;AntennaPod&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Podcast Player&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/at.bitfire.davdroid&#34;&gt;DAVdroid&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Contacts (CardDAV) and Calendar (CalDAV) sync.&lt;br /&gt;&#xA;    I have it sync with my &lt;a href=&#34;https://nextcloud.com/&#34;&gt;Nextcloud&lt;/a&gt; instance.&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/&#34;&gt;F-Droid&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;Catalogue of FOSS applications for the Android platform&lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/org.fedorahosted.freeotp&#34;&gt;FreeOTP&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;Two-factor authenticator&lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/com.fsck.k9&#34;&gt;K-9 Mail&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Email client&lt;br /&gt;&#xA;    Supports PGP via &lt;a href=&#34;https://github.com/thialfihar/apg&#34;&gt;APG&lt;/a&gt; or &lt;a href=&#34;http://sufficientlysecure.org/index.php/openpgp-keychain/&#34;&gt;OpenKeychain&lt;/a&gt;.&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/org.xbmc.kore&#34;&gt;Kore&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Remote control for &lt;a href=&#34;http://kodi.tv&#34;&gt;Kodi&lt;/a&gt;&amp;nbsp;&amp;mdash;&amp;nbsp;Open Source Home Theatre&lt;br /&gt;&#xA;    I run Kodi on my &lt;a href=&#34;https://www.raspberrypi.org&#34;&gt;Raspberry Pi&lt;/a&gt;.&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/org.schabi.newpipe&#34;&gt;NewPipe&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Lightweight YouTube frontend. I like the fact that you can send videos to&#xA;    &lt;a href=&#34;https://kodi.tv/&#34;&gt;Kodi&lt;/a&gt; through &lt;a href=&#34;https://f-droid.org/en/packages/org.xbmc.kore&#34;&gt;Kore&lt;/a&gt;&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/org.sufficientlysecure.keychain&#34;&gt;OpenKeychain&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Manage OpenPGP keys&lt;br /&gt;&#xA;    Integrates with &lt;a href=&#34;https://f-droid.org/en/packages/com.fsck.k9&#34;&gt;K-9 Mail&lt;/a&gt;&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/com.nextcloud.client&#34;&gt;Nextcloud&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;View and upload files from/to my &lt;a href=&#34;https://nextcloud.com/&#34;&gt;Nextcloud&lt;/a&gt; instance&lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/com.proch.practicehub&#34;&gt;Practice Hub&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Tools for musicians, including a chromatic tuner, a metronome, and a pitch drone.&lt;br /&gt;&#xA;    I mostly use it to help me tune my guitar.&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/packages/io.mrarm.irc/&#34;&gt;Revolution IRC&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    IRC client.&lt;br /&gt;&#xA;    I use it with &lt;a href=&#34;https://en.wikipedia.org/wiki/ZNC&#34;&gt;ZNC&lt;/a&gt;.&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/en/packages/com.termux&#34;&gt;Termux&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Terminal and SSH client.&#xA;  &lt;/dd&gt;&#xA;  &lt;dt&gt;&lt;a href=&#34;https://f-droid.org/packages/net.fabiszewski.ulogger/&#34;&gt;μlogger&lt;/a&gt;&lt;/dt&gt;&#xA;  &lt;dd&gt;&#xA;    Location tracker.&lt;br /&gt;&#xA;    I use it with my instance of the &lt;a href=&#34;https://github.com/bfabiszewski/ulogger-server&#34;&gt;μlogger server&lt;/a&gt;.&#xA;  &lt;/dd&gt;&#xA;&lt;/dl&gt;</description>
    </item>
    <item>
      <title>The Web and I</title>
      <link>https://chromic.org/blog/the-web-and-i/</link>
      <pubDate>Mon, 16 Dec 2013 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/the-web-and-i/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;h2 id=&#34;and-so-it-begins&#34;&gt;And so it Begins&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always been fascinated by electronics and computers.&lt;/p&gt;&#xA;&lt;p&gt;I remember spending countless hours messing around with one of those&#xA;&amp;ldquo;Electronic Project Kits&amp;rdquo; similar to the one pictured above.&lt;/p&gt;&#xA;&lt;p&gt;I followed every instruction in the book, went off-course and tried new things.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Project Autonomous</title>
      <link>https://chromic.org/blog/project-autonomous/</link>
      <pubDate>Mon, 30 Jan 2012 00:00:00 +0000</pubDate><author>chimo@chromic.org (chimo)</author>
      <guid>https://chromic.org/blog/project-autonomous/</guid>
      <description>&lt;div class=&#34;summary&#34;&gt;&#xA;&lt;p&gt;In an effort to take control of my online presence/data and to become more&#xA;autonomous, I started to migrate away from services hosted by 3rd-parties and&#xA;setup my own instances where possible.&lt;/p&gt;&#xA;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
