<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title></title>
      <link>https://pcarr.in</link>
      <description></description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://pcarr.in/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Mon, 01 Jun 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>otf2psf: create your own TTY fonts!</title>
          <pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/blog/otf2psf/</link>
          <guid>https://pcarr.in/blog/otf2psf/</guid>
          <description xml:base="https://pcarr.in/blog/otf2psf/">&lt;p&gt;tl;dr: In 2024 &lt;a href=&quot;https:&#x2F;&#x2F;git.sfe.dev&#x2F;pcarr&#x2F;otf2psf&quot;&gt;I made a tool&lt;&#x2F;a&gt; to convert modern fonts for use on the
Linux TTY.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;blog&#x2F;otf2psf&#x2F;otf2psf_showconsolefont.png&quot; alt=&quot;Output of showconsolefont while using a custom TTY font made with this tool&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;It all started with &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;karlstav&#x2F;cava&quot;&gt;CAVA&lt;&#x2F;a&gt;, a terminal audio visualization tool.&lt;&#x2F;p&gt;
&lt;p&gt;CAVA worked great on a bare TTY, but when I tried to run it within tmux, it assumed it was
in a vterm and rendered some Unicode characters that practically no TTY fonts support. I filed an
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;karlstav&#x2F;cava&#x2F;issues&#x2F;577&quot;&gt;issue&lt;&#x2F;a&gt; about it, but they took a little while to
reply. (Dear CAVA devs, sorry for ghosting you.)&lt;&#x2F;p&gt;
&lt;p&gt;The Linux TTY can&#x27;t use modern OpenType&#x2F;TrueType fonts because it is an ancient and
deeply broken piece of technology. It uses an old bitmap format called PC Screen Font (PSF),
which is capped at 512 chars and doesn&#x27;t support antialiasing.&lt;&#x2F;p&gt;
&lt;p&gt;I figured if all existing PSF fonts were missing some cool glyphs, I should simply make a better one,
but I wanted to start with a modern font instead of hand-modifying an old one.&lt;&#x2F;p&gt;
&lt;p&gt;The existing pipeline to get from OTF&#x2F;TTF to PSF went through BDF, and it was very janky.
But PSF is pretty simple, so I wrote a Rust tool that handles the conversion in a single step. You
just specify a font and a Unicode mapping table, and it rasterizes it to PSF for you!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;git.sfe.dev&#x2F;pcarr&#x2F;otf2psf&#x2F;&quot;&gt;The tool is available on GitLab here.&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This was my first time writing a utility to directly stitch together binary files, and I enjoyed the
challenge. I had a bit of prior experience dealing with fonts, which helped.&lt;&#x2F;p&gt;
&lt;p&gt;The version of this tool on GitHub has gotten a few stars, so I hope that people have found it useful.
I certainly have -- CAVA renders beautifully in the TTY now!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;blog&#x2F;otf2psf&#x2F;screenshot_otf2psf.png&quot; alt=&quot;Screenshot of a Linux TTY, with several tmux panes rendering screensavers, graphics, and text.&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;(Font is GNU Unifont, for those wondering.)&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>CSS-only responsive thumbnail galleries with Grid layout</title>
          <pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/blog/thumbnail-gallery/</link>
          <guid>https://pcarr.in/blog/thumbnail-gallery/</guid>
          <description xml:base="https://pcarr.in/blog/thumbnail-gallery/">&lt;p&gt;The frontpage of my site has two simple thumbnail galleries that work very well on mobile, due to some
CSS Grid layout tricks that I just learned.&lt;&#x2F;p&gt;
&lt;p&gt;Each gallery contains five images. On desktop, these images are each about 160px, arranged next to each
other in a row.&lt;&#x2F;p&gt;
&lt;p&gt;When the viewport is shrunk, all five images shrink down to a minimum of 80px each. Then as the viewport
gets even smaller, the fifth image pops off, and the four remaining images expand to fill the full row.
This keeps happening as the viewport gets smaller and smaller.&lt;&#x2F;p&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Thumbnail gallery with 5 thumbnails&quot; src=&quot;gallery-screenshot-5wide.png&quot; style=&quot;display: inline; width: max(60%, 450px);&quot;&gt;
&lt;img alt=&quot;The same gallery, smaller viewport, with only 4 thumbnails&quot; src=&quot;gallery-screenshot-4wide.png&quot; style=&quot;width: max(40%, 250px);&quot;&gt;
&lt;img alt=&quot;The same gallery, smaller viewport, with only 3 thumbnails&quot; src=&quot;gallery-screenshot-3wide.png&quot; style=&quot;width: max(30%, 250px);&quot;&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;This is done via just a few lines of CSS using the Grid layout. Here they are:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;css&quot; style=&quot;background-color:#0f1419;color:#bfbab0;&quot; class=&quot;language-css &quot;&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span style=&quot;color:#59c2ff;&quot;&gt;div&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ffb454;&quot;&gt;.gallery-mini &lt;&#x2F;span&gt;&lt;span&gt;{
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;display&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;grid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;grid-template-columns&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f07178;&quot;&gt;repeat&lt;&#x2F;span&gt;&lt;span&gt;(auto-fit&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f07178;&quot;&gt;minmax&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;80&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;px&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;fr&lt;&#x2F;span&gt;&lt;span&gt;))&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;grid-template-rows&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;fr &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;0 0 0 0&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;overflow&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;hidden&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;    img {
&lt;&#x2F;span&gt;&lt;span&gt;        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;box-sizing&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;border-box&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;width&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;100&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;border-left&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;px &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;white solid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;border-right&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;px &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;white solid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;vertical-align&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;middle&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    }
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;div-styling&quot;&gt;Div styling&lt;&#x2F;h2&gt;
&lt;p&gt;First, the grid columns and rows are built. The &lt;code&gt;grid-template-columns&lt;&#x2F;code&gt; line is the crux of this
problem.&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;css&quot; style=&quot;background-color:#0f1419;color:#bfbab0;&quot; class=&quot;language-css &quot;&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span style=&quot;color:#59c2ff;&quot;&gt;grid-template-columns&lt;&#x2F;span&gt;&lt;span&gt;: repeat(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#59c2ff;&quot;&gt;auto-fit&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span&gt; minmax(80px&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span&gt; 1fr));
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This line builds the grid columns by auto-fitting each element so that the width is 80px minimum and
1 fraction maximum. That &quot;1 fraction&quot; part means that if there are n images, each image expands to
fit 1&#x2F;n of the total space.&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;css&quot; style=&quot;background-color:#0f1419;color:#bfbab0;&quot; class=&quot;language-css &quot;&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span style=&quot;color:#59c2ff;&quot;&gt;grid-template-rows&lt;&#x2F;span&gt;&lt;span&gt;: 1fr 0 0 0 0;
&lt;&#x2F;span&gt;&lt;span&gt;overflow: hidden;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;These two lines allow the grid to span multiple rows, but subsequent rows after the first one are
hidden. This creates the illusion of a variable number of elements. The first row can have any non-zero
height in relative units, as long as subsequent rows have zero height.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;image-styling&quot;&gt;Image styling&lt;&#x2F;h2&gt;
&lt;pre data-lang=&quot;css&quot; style=&quot;background-color:#0f1419;color:#bfbab0;&quot; class=&quot;language-css &quot;&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span style=&quot;color:#59c2ff;&quot;&gt;img &lt;&#x2F;span&gt;&lt;span&gt;{
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;box-sizing&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;border-box&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;width&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;100&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;%&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;border-left&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;px &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;white solid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;border-right&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#f29718;&quot;&gt;1&lt;&#x2F;span&gt;&lt;span style=&quot;color:#ff7733;&quot;&gt;px &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;white solid&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#39bae6;&quot;&gt;vertical-align&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;: &lt;&#x2F;span&gt;&lt;span style=&quot;font-style:italic;color:#f29668;&quot;&gt;middle&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bfbab0cc;&quot;&gt;;
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;I could have used the &lt;code&gt;gap&lt;&#x2F;code&gt; property for spacing between images, but I decided to add
a border and then size around it instead, because it made it easier to exactly fill
the width of the page.&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;css&quot; style=&quot;background-color:#0f1419;color:#bfbab0;&quot; class=&quot;language-css &quot;&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span&gt;width: 100%;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The cell width is already controlled by the &lt;code&gt;grid-template-columns&lt;&#x2F;code&gt; line above, so we can just
set the image width to 100% to fill its cell.&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;css&quot; style=&quot;background-color:#0f1419;color:#bfbab0;&quot; class=&quot;language-css &quot;&gt;&lt;code class=&quot;language-css&quot; data-lang=&quot;css&quot;&gt;&lt;span style=&quot;color:#59c2ff;&quot;&gt;vertical-align&lt;&#x2F;span&gt;&lt;span&gt;: middle;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This line removes wonky spacing underneath each image, where text descenders would go.&lt;&#x2F;p&gt;
&lt;p&gt;And that&#x27;s it! There is also some Zola SSG magic to dynamically populate these galleries with images,
but that&#x27;s for another post. You can check out the source code for my site
&lt;a href=&quot;https:&#x2F;&#x2F;git.sfe.dev&#x2F;pcarr&#x2F;zola-site&quot;&gt;here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Links</title>
          <pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/links/</link>
          <guid>https://pcarr.in/links/</guid>
          <description xml:base="https://pcarr.in/links/">&lt;p&gt;Find me online:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Email: &lt;a href=&quot;mailto:self@pcarr.in&quot;&gt;self@pcarr.in&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Matrix: @theta:sfe.social (I don&#x27;t check Matrix very often)&lt;&#x2F;li&gt;
&lt;li&gt;Self-hosted GitLab: &lt;a href=&quot;https:&#x2F;&#x2F;git.sfe.dev&#x2F;pcarr&quot;&gt;https:&#x2F;&#x2F;git.sfe.dev&#x2F;pcarr&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;GitHub: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;pcarrin2&#x2F;&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;pcarrin2&#x2F;&lt;&#x2F;a&gt; (not active, migrating away)&lt;&#x2F;li&gt;
&lt;li&gt;BugGuide: &lt;a href=&quot;https:&#x2F;&#x2F;www.bugguide.net&#x2F;user&#x2F;view&#x2F;144213&quot;&gt;pcarrington&lt;&#x2F;a&gt; (not very active)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;PGP pubkey: &lt;a href=&quot;https:&#x2F;&#x2F;keys.openpgp.org&#x2F;search?q=ABA9B8B157363835F71305025183B30EAB7596B7&quot;&gt;&lt;code&gt;ABA9 B8B1 5736 3835 F713 0502 5183 B30E AB75 96B7&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;If we know each other, reach out for my Signal contact.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Bugs and Flowers of 2025-2026</title>
          <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/photography/bugs-flowers-2025-2026/</link>
          <guid>https://pcarr.in/photography/bugs-flowers-2025-2026/</guid>
          <description xml:base="https://pcarr.in/photography/bugs-flowers-2025-2026/">&lt;p&gt;I haven&#x27;t taken as many bug photos over the past couple years (and I have a backlog that I haven&#x27;t processed
yet) but here are my favorites so far.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;bugs-flowers-2025-2026&#x2F;2025-robberfly-eating-wasp.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;2025-robberfly-eating-wasp.1d813f08765db42f.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;bugs-flowers-2025-2026&#x2F;2025-weevil-coneflower.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;2025-weevil-coneflower.3337763099a9fa4a.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;bugs-flowers-2025-2026&#x2F;2026_dandelion_stamens.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;2026_dandelion_stamens.71de7b85c02e390d.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Paintings</title>
          <pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/art/paintings/</link>
          <guid>https://pcarr.in/art/paintings/</guid>
          <description xml:base="https://pcarr.in/art/paintings/">&lt;p&gt;Acrylic paintings.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;paintings&#x2F;loon-painting.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;loon-painting.c6c5ee3765a4b11a.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Processing art</title>
          <pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/art/processing/</link>
          <guid>https://pcarr.in/art/processing/</guid>
          <description xml:base="https://pcarr.in/art/processing/">&lt;p&gt;Computational art made with &lt;a href=&quot;https:&#x2F;&#x2F;processing.org&#x2F;&quot;&gt;Processing&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The &quot;flowing&quot; art is a handful of simple explorations of flow fields made with Perlin noise,
inspired by &lt;a href=&quot;https:&#x2F;&#x2F;sighack.com&#x2F;post&#x2F;getting-creative-with-perlin-noise-fields&quot;&gt;this article&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The square subdivisions are a longtime favorite of mine. I use an algorithm where the canvas is
initialized to mid-grey, then recursively divided into quadrants. During each iteration, the color
of each quadrant is randomly shifted. The initial color shifts are large, but their magnitudes
exponentially decay over time.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;processing&#x2F;perlin-paths-blue-white-black.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;perlin-paths-blue-white-black.770f00da6b5dd922.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;processing&#x2F;perlin-paths-green-white-black.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;perlin-paths-green-white-black.c825e1afbf204503.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;processing&#x2F;perlin-paths-rainbow.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;perlin-paths-rainbow.da6099cc712daa9c.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;processing&#x2F;subdiv-square-2.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;subdiv-square-2.07ef3e2f4bd83e4f.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;processing&#x2F;subdiv-square.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;subdiv-square.41c475486fc3f44e.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Excerpts from &#x27;i&#x27;ve never picked a protected flower&#x27;</title>
          <pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/blog/never/</link>
          <guid>https://pcarr.in/blog/never/</guid>
          <description xml:base="https://pcarr.in/blog/never/">&lt;p&gt;One of my favorite works of generative art is everest pipkin&#x27;s book &lt;a href=&quot;https:&#x2F;&#x2F;ifyoulived.org&#x2F;never.pdf&quot;&gt;i&#x27;ve never picked a protected flower&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Here are a few excerpted pages, which I have cleaned up and reformatted slightly.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;blog&#x2F;never&#x2F;never-pg-90.svg&quot; alt=&quot;i&amp;#39;ve never picked a protected flower, page 90&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;blog&#x2F;never&#x2F;never-pg-182.svg&quot; alt=&quot;i&amp;#39;ve never picked a protected flower, page 182&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;blog&#x2F;never&#x2F;never-pg-192.svg&quot; alt=&quot;i&amp;#39;ve never picked a protected flower, page 192&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Mirrorless Camera</title>
          <pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/blog/camera-2/</link>
          <guid>https://pcarr.in/blog/camera-2/</guid>
          <description xml:base="https://pcarr.in/blog/camera-2/">&lt;p&gt;A couple years ago, I bought a cheap used DSLR off of eBay. It was a good starter camera, but I quickly noticed some
problems with the meter&#x2F;sensor. Whenever I tried to use any automatic exposure modes (eg aperture&#x2F;shutter priority
or even auto ISO) the metering was pretty much random, with some images almost pure white and others pure black.&lt;&#x2F;p&gt;
&lt;p&gt;This was good in a way because it forced me to learn manual exposure early on, instead of relying on the camera
to calculate it for me. However it was also a pain in the ass when taking photos on hikes without a flash.
Going between sun and shade, I&#x27;d have to waste a few shots on exposure calibration. Since DSLRs don&#x27;t have
exposure previewing, it was a time-intensive process. My fast-moving subjects often left the scene before I could
get a decent shot. (This wasn&#x27;t all the camera&#x27;s fault; I&#x27;m a beginner and I&#x27;m sure a more experienced person
could have made it work!)&lt;&#x2F;p&gt;
&lt;p&gt;I was still happy to persevere through these issues, until some of my shots started coming out with obviously
distorted colors -- many were extremely green, and while the RAWs could be massaged into a better color-scheme,
they were missing depth in the blue and red channels. It wasn&#x27;t every shot, but maybe 5%, which is terrible when
that 5% includes your favorite shot of the outing. I&#x27;m pretty sure this was a sensor&#x2F;computer issue that
effectively totaled the camera.&lt;&#x2F;p&gt;
&lt;p&gt;At this point, graduation was coming up (May 2024), and I got some financial gifts from relatives! Basking in my
extreme luck and privilege, I decided to get rid of the money fast by purchasing a new camera setup.&lt;&#x2F;p&gt;
&lt;p&gt;My new camera is a Canon EOS R50, which is a mid-range mirrorless that cost me about $500. I also purchased
the RF100mm F2.8 L Macro lens, which was normally $1200, but I found an eBay deal for just under $1000. (Plus an
RF-to-EF adapter for some EF-mount lenses.) In terms of lighting, I found a Canon Speedlite 580EXII for cheap-ish
on eBay (which needed an adapter), and I spent around $150 on an AK Diffuser. In all, this cost about $2000.&lt;&#x2F;p&gt;
&lt;p&gt;Overall, I&#x27;m extremely happy with how everything has performed. The difference in photo quality was noticeable
pretty much immediately after my new gear came in. The RF100mm F2.8 L Macro is one of the best macro lenses on the
market, with a maximum magnification of 1.4x while most macro lenses top out at 1.0x. It has delivered absolutely
stellar photo quality, with virtually no noticeable distortion or chromatic aberration at any distance.&lt;&#x2F;p&gt;
&lt;p&gt;I don&#x27;t mind the R50&#x27;s crop sensor -- it may actually be a plus for macrophotography, since the pixel density
is higher than on a full-frame camera. However, the R50 has some weird design choices when compared to Canon&#x27;s
higher-tier product lines. For example, when the camera is turned off, the R50&#x27;s shutter stays open, meaning that
the sensor gets dusty while changing lenses.&lt;&#x2F;p&gt;
&lt;p&gt;The biggest bang-for-buck increase in photo quality came from the lighting, though. It&#x27;s hard to overstate how
much difference the diffuser made. I&#x27;d been trying out homemade box diffusers, and I was already seeing good
results, but the professionally-made ones really &quot;wrap the light around the lens,&quot; leaving you with beautiful
even lighting. On a casual hike, I&#x27;ll leave the flash setup at home since it&#x27;s hilariously bulky, and I can get
decent photos with quite a bit of detail and color. But nothing really compares to photos taken with a diffused
flash.&lt;&#x2F;p&gt;
&lt;p&gt;If I could go back and spend my money differently, I &lt;em&gt;might&lt;&#x2F;em&gt; go with an Olympus setup instead. They&#x27;re lighter-weight
since the sensors are so small, which means that it could be practical to hold the camera in one hand while stabilizing
a twig&#x2F;leaf&#x2F;whatever with the other hand. They also have decent sensor density, and there&#x27;s a solid ecosystem of
compatible macro lenses, often cheaper than RF-mount ones, including some crazy high-magnification macro lenses.&lt;&#x2F;p&gt;
&lt;p&gt;Overall I&#x27;m very happy with my current camera. At this point, the biggest factor holding me back from even better
photos is my skill level, not my camera, which is a great place to be! It means that I can focus on being out in the
field and taking photos rather than troubleshooting my camera or wishlisting lenses on eBay. I have everything I need.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Arizona Trip 2025</title>
          <pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/photography/az-2025/</link>
          <guid>https://pcarr.in/photography/az-2025/</guid>
          <description xml:base="https://pcarr.in/photography/az-2025/">&lt;p&gt;Some plant and landscape photos taken on a trip to Arizona with friends.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;az-2025&#x2F;az_phoenix_mtn.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;az_phoenix_mtn.71da3234dd3f34b7.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;az-2025&#x2F;barrel_cactus_crown.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;barrel_cactus_crown.e4cddc15131c4176.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;az-2025&#x2F;cholla.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;cholla.611a17fb9b4ccfe3.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;az-2025&#x2F;young_cactus_and_skeleton.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;young_cactus_and_skeleton.db3339903a823b13.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Illinois Insects 2024</title>
          <pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/photography/illinois-insects-2024/</link>
          <guid>https://pcarr.in/photography/illinois-insects-2024/</guid>
          <description xml:base="https://pcarr.in/photography/illinois-insects-2024/">&lt;p&gt;My favorite photos from the 2024 photography season.&lt;&#x2F;p&gt;
&lt;p&gt;I was absolutely floored with how well my diffuser worked for getting studio-quality lighting and detail.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;illinois-insects-2024&#x2F;dolichomitus_irritator.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;dolichomitus_irritator.511ca4e3602e8386.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;illinois-insects-2024&#x2F;holcocephala_eating_gnat.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;holcocephala_eating_gnat.08fca3da925fd143.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;illinois-insects-2024&#x2F;jumping_spider_rattlesnake_master.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;jumping_spider_rattlesnake_master.c8debffa9c4b13bc.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;illinois-insects-2024&#x2F;leafhopper_wider_crop.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;leafhopper_wider_crop.01971104092e9842.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;illinois-insects-2024&#x2F;monarch.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;monarch.8bbbf3d280fae2bb.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;illinois-insects-2024&#x2F;syrphid_macro.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;syrphid_macro.8d78c4d5acaaec55.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;illinois-insects-2024&#x2F;zonitis_vittigera_on_flower.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;zonitis_vittigera_on_flower.fe740ef137e3eabd.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Periodical Cicada Trip, May 2024</title>
          <pubDate>Thu, 30 May 2024 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/photography/cicadas-2024/</link>
          <guid>https://pcarr.in/photography/cicadas-2024/</guid>
          <description xml:base="https://pcarr.in/photography/cicadas-2024/">&lt;p&gt;I went to Allerton Park in May 2024 to capture the periodical cicada emergence.&lt;&#x2F;p&gt;
&lt;p&gt;I ended up being charmed by some non-cicada insects as well!&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;cicadas-2024&#x2F;calico_pennant.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;calico_pennant.3269ca797ba8947a.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;cicadas-2024&#x2F;candy_striped_leafhopper.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;candy_striped_leafhopper.4ef911e727c70e58.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;cicadas-2024&#x2F;chrysopilus_ornatus.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;chrysopilus_ornatus.a4c8b8ee5fe2426c.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;cicadas-2024&#x2F;periodical_cicada.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;periodical_cicada.f3f1029e03db5273.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;cicadas-2024&#x2F;periodical_cicada_eye.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;periodical_cicada_eye.e17e33a6e53e62b2.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Backing Up Data on rsync.net</title>
          <pubDate>Sat, 23 Mar 2024 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/blog/rsync-net/</link>
          <guid>https://pcarr.in/blog/rsync-net/</guid>
          <description xml:base="https://pcarr.in/blog/rsync-net/">&lt;p&gt;After a long stint as a loud and public hypocrite, preaching about off-site backups while not actually having a solid system myself, I finally set up automatic Borg backups through &lt;a href=&quot;https:&#x2F;&#x2F;rsync.net&quot;&gt;rsync.net&lt;&#x2F;a&gt;. I just set this up last week, and I haven&#x27;t needed the backups yet (thank God), but so far my experience has been good. My UNIX account was created very quickly after payment and works as expected. Note that there&#x27;s no complete Bash shell, because they don&#x27;t want people using a bunch of computational resources or using the servers as a proxy or whatever, but there are a whole bunch of individual shell commands you can use, as well as many backup&#x2F;data transfer programs. Up and down speed are sufficient for daily backups (though probably not for more time-sensitive things). I had a dumb question about their Borg server that was nevertheless answered courteously and promptly.&lt;&#x2F;p&gt;
&lt;p&gt;Now I have peace of mind about my laptop suddenly dying, which is pretty great.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>New Camera</title>
          <pubDate>Fri, 22 Mar 2024 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/blog/camera/</link>
          <guid>https://pcarr.in/blog/camera/</guid>
          <description xml:base="https://pcarr.in/blog/camera/">&lt;p&gt;My main camera for the past few years has been a tiny little point-and-shoot that happens to have great macro capabilities. It&#x27;s rugged, waterproof, and can focus as close as 1cm from the lens, which is great for taking pictures of moss, snowflakes, and insects. But after trying a friend&#x27;s fancy mirrorless camera while on vacation, I&#x27;d been itching to get my hands on a &quot;real&quot; camera.&lt;&#x2F;p&gt;
&lt;p&gt;Unfortunately, &quot;real&quot; cameras are expensive, so I bought mine off eBay. It&#x27;s a Canon EOS 5D Mark II, which is a full-frame 21-megapixel DSLR released in 2008. It was all the rage back then due to being a compact DSLR that could take video. Now, it sells for around $250 secondhand.&lt;&#x2F;p&gt;
&lt;p&gt;My only lens at the moment is a 100mm Canon macro lens, which also cost roughly $250 on eBay. It works well, even though it lacks the crazy-close-to-the-lens focus of my point-and-shoot. I enjoy the fact that the focus adjustment is a whole big piece of the lens that you spin -- my point-and-shoot has a manual focus setting, but you have to use some buttons on the camera body and it&#x27;s pretty frustrating.&lt;&#x2F;p&gt;
&lt;p&gt;My biggest gripe with the camera and lens is that neither have image stabilization, which is a big deal when you&#x27;re holding the camera at an awkward angle because you saw a cool spider in the underbrush. If I want to spend more money in the future, I&#x27;ll buy a lens with IS. Still, I&#x27;m happy about this setup for $500.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>My Favorite Terminal Colors</title>
          <pubDate>Sun, 03 Sep 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/blog/colorscheme/</link>
          <guid>https://pcarr.in/blog/colorscheme/</guid>
          <description xml:base="https://pcarr.in/blog/colorscheme/">&lt;p&gt;This is my current colorscheme on my laptop&#x27;s xfce terminal. I think it looks pretty -- it has an organic feel, very heavy on blues and greens, with a background color that looks like a chalkboard.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s very similar to Solarized Dark, but it brightens a couple of colors and shifts them closer to the &quot;canonical&quot; primary&#x2F;tertiary colors they should resemble.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;blog&#x2F;colorscheme&#x2F;terminal-neofetch.png&quot; alt=&quot;A screenshot of neofetch with this terminal colorscheme.&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Here are the colors; I should really port these into config files for various applications, but I&#x27;m too lazy right now.&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#0f1419;color:#bfbab0;&quot;&gt;&lt;code&gt;&lt;span&gt;text color: #fffbee
&lt;&#x2F;span&gt;&lt;span&gt;background color: #002b36
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;                normal  bright
&lt;&#x2F;span&gt;&lt;span&gt;                ------  ------
&lt;&#x2F;span&gt;&lt;span&gt;black:          #073642 #736f62
&lt;&#x2F;span&gt;&lt;span&gt;red:            #bc2c29 #ed3411
&lt;&#x2F;span&gt;&lt;span&gt;green:          #63b64e #83e357
&lt;&#x2F;span&gt;&lt;span&gt;yellow:         #b5835a #ded176
&lt;&#x2F;span&gt;&lt;span&gt;blue:           #328ac9 #4ab1fa
&lt;&#x2F;span&gt;&lt;span&gt;pink:           #d33682 #f671b1
&lt;&#x2F;span&gt;&lt;span&gt;cyan:           #2aa198 #5dd4cb
&lt;&#x2F;span&gt;&lt;span&gt;grey:           #c3beb1 #fffbee
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
</description>
      </item>
      <item>
          <title>Boston Trip 2023</title>
          <pubDate>Fri, 30 Jun 2023 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/photography/boston-trip/</link>
          <guid>https://pcarr.in/photography/boston-trip/</guid>
          <description xml:base="https://pcarr.in/photography/boston-trip/">&lt;p&gt;Some photos I took on a friend&#x27;s mirrorless camera while visiting Boston.
This was the first time I got to try a camera that wasn&#x27;t a point-and-shoot.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;boston-trip&#x2F;dragonfly_1.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;dragonfly_1.41002a20ec9efc3e.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;boston-trip&#x2F;dragonfly_2.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;dragonfly_2.e65adca2f2e662e5.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;boston-trip&#x2F;dragonfly_3.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;dragonfly_3.950a485b4e94fbc1.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;boston-trip&#x2F;hoverfly.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;hoverfly.1e3cf27a78aa5c97.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;boston-trip&#x2F;robberfly_1.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;robberfly_1.e2fcb34a3225d1c5.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;boston-trip&#x2F;wasp_1.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;wasp_1.5c3a9225f2b2766a.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Snowflakes 2022</title>
          <pubDate>Sun, 25 Dec 2022 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/photography/snowflakes/</link>
          <guid>https://pcarr.in/photography/snowflakes/</guid>
          <description xml:base="https://pcarr.in/photography/snowflakes/">&lt;p&gt;Photos of individual snowflakes taken with an Olympus Tough TG5.&lt;&#x2F;p&gt;
&lt;p&gt;This camera is amazing for what it is (small rugged fixed-lens camera with great macro).
Some of these photos made it into a UIUC Atmospheric Science class&#x27;s lecture slides.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;snowflakes&#x2F;etched_plate_snowflake.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;etched_plate_snowflake.7e4b11071c675be8.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;snowflakes&#x2F;thin_snowflake.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;thin_snowflake.5625e0d6ad7c124c.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;photography&#x2F;snowflakes&#x2F;twin_snowflakes.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;twin_snowflakes.e117518edeb20e64.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
      <item>
          <title>Myoats.com art</title>
          <pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://pcarr.in/art/myoats/</link>
          <guid>https://pcarr.in/art/myoats/</guid>
          <description xml:base="https://pcarr.in/art/myoats/">&lt;p&gt;Fun symmetric art made on &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;myoats&#x2F;myoats.com&quot;&gt;Myoats&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;div class=&quot;gallery-fullwidth&quot;&gt;

    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;myoats&#x2F;blue_symmetric_art.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;blue_symmetric_art.1720da1aac6c54de.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;myoats&#x2F;purple_symmetric_art.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;purple_symmetric_art.63c7d2392f9336a6.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;myoats&#x2F;red_symmetric_art.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;red_symmetric_art.e7e15cae03b0bf45.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;myoats&#x2F;white_symmetric_art.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;white_symmetric_art.033b566674d4017c.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
    &lt;a href=&quot;https:&#x2F;&#x2F;pcarr.in&#x2F;art&#x2F;myoats&#x2F;yellow_symmetric_art.jpg&quot; target=&quot;_blank&quot;&gt;
      &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;pcarr.in&amp;#x2F;processed_images&amp;#x2F;yellow_symmetric_art.989fbefe86bd538c.jpg&quot; &#x2F;&gt;
    &lt;&#x2F;a&gt;&lt;br&gt;
&lt;&#x2F;div&gt;

</description>
      </item>
    </channel>
</rss>
