<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>lost in tab</title><link>https://teotl.dev/</link><description>Recent content on lost in tab</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 03 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://teotl.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>(Re)Making Cirrus: Three lessons learned</title><link>https://teotl.dev/posts/2026/03/18/remaking-cirrus-three-lessons-learned/</link><pubDate>Wed, 18 Mar 2026 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2026/03/18/remaking-cirrus-three-lessons-learned/</guid><description>Reflecting on five-plus years of building Cirrus, Element 84&amp;rsquo;s data
orchestration framework, three core lessons emerge that apply to software
projects generally: follow the money to understand what drives development,
expect the pendulum of overcorrection and iteration, and hold fast to an
unchanging vision. Part 2 of 2.</description></item><item><title>(Re)Making Cirrus: Reflections on five years spent building an open-source data orchestrator</title><link>https://teotl.dev/posts/2026/02/23/remaking-cirrus-reflections-on-five-years-spent-building-an-open-source-data-orchestrator/</link><pubDate>Mon, 23 Feb 2026 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2026/02/23/remaking-cirrus-reflections-on-five-years-spent-building-an-open-source-data-orchestrator/</guid><description>Cirrus, Element 84&amp;rsquo;s open-source data orchestration framework, recently turned
five years old — and we&amp;rsquo;ve rebuilt it at least three times along the way. This
is a retrospective on where Cirrus came from, from its origins in NASA&amp;rsquo;s
Cumulus through the STAC Workflows idea, the project CLI, the SWOOP detour, and
finally the v1.0.0 release, plus a look at where it&amp;rsquo;s headed next.</description></item><item><title>Metadata makes the data format: metadata storage and representation across array formats</title><link>https://teotl.dev/posts/2025/11/04/metadata-makes-the-data-format-metadata-storage-and-representation-across-array-formats/</link><pubDate>Tue, 04 Nov 2025 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2025/11/04/metadata-makes-the-data-format-metadata-storage-and-representation-across-array-formats/</guid><description>When configured equivalently, COG and Zarr store the exact same data bytes.
So what actually distinguishes one raster format from another? Metadata. We
get philosophical about what metadata even is, examine how TIFF and Zarr each
represent it, tour the various ways geospatial coordinate information is
encoded across formats, ask where metadata should live, and make the case that
formal, versioned conventions are what truly enable interoperability.</description></item><item><title>Redefining cloud native with the Coalesced Chunk Retrieval Protocol</title><link>https://teotl.dev/posts/2025/09/23/redefining-cloud-native-with-the-coalesced-chunk-retrieval-protocol/</link><pubDate>Tue, 23 Sep 2025 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2025/09/23/redefining-cloud-native-with-the-coalesced-chunk-retrieval-protocol/</guid><description>What happens if we question current assumptions around Cloud-Native
Geospatial (CNG) and imagine what it could be if we were to redefine it with
new technologies? The Coalesced Chunk Retrieval Protocol (CCRP) is one idea
born of this thinking, aiming to help make CNG more efficient and easier for
both data consumers and producers.</description></item><item><title>A new look, a new domain, a new start</title><link>https://teotl.dev/posts/2025/08/23/a-new-look-a-new-domain-a-new-start/</link><pubDate>Sat, 23 Aug 2025 08:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2025/08/23/a-new-look-a-new-domain-a-new-start/</guid><description>Back from the dead with a new look and a new domain!</description></item><item><title>Beyond the default: a modern guide to raster compression</title><link>https://teotl.dev/posts/2025/08/06/beyond-the-default-a-modern-guide-to-raster-compression/</link><pubDate>Wed, 06 Aug 2025 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2025/08/06/beyond-the-default-a-modern-guide-to-raster-compression/</guid><description>Compression is a fundamental and increasingly critical part of modern data
storage and processing. But compression is often naively miscategorized as a
single processing step. A better understanding of the steps in compression
pipelines, the priciples behind them, and how to measure their effectiveness
will enable us to move beyond the default compression settings and realize
gains from more effective compression techniques.</description></item><item><title>Chunks and chunkability: an origin story</title><link>https://teotl.dev/posts/2025/07/09/chunks-and-chunkability-an-origin-story/</link><pubDate>Wed, 09 Jul 2025 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2025/07/09/chunks-and-chunkability-an-origin-story/</guid><description>Raster data formats are chunked internally, but the cloud has exposed these
internal implementation details. We dig into the finer details of chunking to
understand how chunking has become something tyrannical, dictating how we can
and can&amp;rsquo;t access data efficiently. Part 2 of 2.</description></item><item><title>Chunks and chunkability: tyranny of the chunk</title><link>https://teotl.dev/posts/2025/07/09/chunks-and-chunkability-tyranny-of-the-chunk/</link><pubDate>Wed, 09 Jul 2025 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2025/07/09/chunks-and-chunkability-tyranny-of-the-chunk/</guid><description>Raster data formats are chunked internally, but the cloud has exposed these
internal implementation details. We dig into the finer details of chunking to
understand how chunking has become something tyrannical, dictating how we can
and can&amp;rsquo;t access data efficiently. Part 1 of 2.</description></item><item><title>Is Zarr the new COG?</title><link>https://teotl.dev/posts/2025/05/22/is-zarr-the-new-cog/</link><pubDate>Thu, 22 May 2025 12:00:00 +0000</pubDate><guid>https://teotl.dev/posts/2025/05/22/is-zarr-the-new-cog/</guid><description>We dig into the Zarr and COG raster formats to see if
Zarr can and should now be a replacement for COG, and
find a surprising answer.</description></item><item><title>QEMU services with socat</title><link>https://teotl.dev/posts/2020/06/19/qemu-services-with-socat/</link><pubDate>Fri, 19 Jun 2020 12:00:39 -0700</pubDate><guid>https://teotl.dev/posts/2020/06/19/qemu-services-with-socat/</guid><description>&lt;h2 id="qemu-services">QEMU Services?&lt;/h2>
&lt;p>I&amp;rsquo;ve been working on an integration testing environment for a few
interconnected services. Such a thing would be easy with containers, but I am
modeling an environment of bare metal hosts running these services, leaving
little choice but VMs. It&amp;rsquo;s been easy testing the VMs in isolation using QEMU,
which by default with &lt;code>-nographic&lt;/code> drops one into the console.&lt;/p>
&lt;p>But when one wants to kick off several VMs at once, it&amp;rsquo;s much easier if they
can be started as services in the background. Any number of service
supervisiors can run them, that&amp;rsquo;s no problem. QEMU even has the &lt;code>-daemonize&lt;/code>
option to background itself.&lt;/p></description></item><item><title>Serial with socat</title><link>https://teotl.dev/posts/2020/05/20/serial-with-socat/</link><pubDate>Wed, 20 May 2020 23:00:39 -0700</pubDate><guid>https://teotl.dev/posts/2020/05/20/serial-with-socat/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>I do a lot of work with network devices, which are often headless and require
the use of serial consoles for out-of-band access. My go-to on MacOS and Linux
has been screen, but various little issues over the years have led me to
consider other options. I tried minicom on the recommendation of a colleague,
but that didn&amp;rsquo;t work for me either.&lt;/p>
&lt;p>I&amp;rsquo;ve struggled to pinpoint my problem with the aforementioned tools; I think I
just want something &lt;em>less&lt;/em> featurful, something that literally only gives me a
tty via serial and doesn&amp;rsquo;t have anything unnecessary between my terminal and
the remote shell. Over the weekend, I randomly happened upon &lt;a href="https://bloggerbust.ca/post/let-socket-cat-be-thy-glue-over-serial/">an article about
using socat for
serial&lt;/a> on
&lt;a href="https://news.ycombinator.com/">Hacker News&lt;/a>, and thought it might be just what
I have been searching for. So I tried out the example and it failed miserably
with the socat from Homebrew (MacOS being the OS on my daily driver).&lt;/p></description></item><item><title>Create a static site with Hugo and GitHub pages</title><link>https://teotl.dev/posts/2020/02/11/create-a-static-site-with-hugo-and-github-pages/</link><pubDate>Tue, 11 Feb 2020 12:52:22 -0800</pubDate><guid>https://teotl.dev/posts/2020/02/11/create-a-static-site-with-hugo-and-github-pages/</guid><description>&lt;p>As I mentioned in my first post, much of my resistance to blogging has been a
blend of prefectionism and an abhorrence to any chance of having to deal with
yet more infrastructure issue. That is, I deal with broken crap at my day job;
I really don&amp;rsquo;t want to have to worry about that for my blog. In that vein, I
pursued the simplest practical stack with the quickest startup time, ending up
with a static site generated with &lt;a href="https://gohugo.io/">Hugo&lt;/a> hosted as a GitHub
page.&lt;/p></description></item><item><title>Introduction</title><link>https://teotl.dev/posts/2020/02/10/introduction/</link><pubDate>Mon, 10 Feb 2020 22:12:06 -0800</pubDate><guid>https://teotl.dev/posts/2020/02/10/introduction/</guid><description>&lt;p>Hello. I am a software engineer from Portland hoping to spread some knowledge
when I have something possibly interesting to share.&lt;/p>
&lt;p>This is a new thing for me, technical blogging, so it might take me a little
time to get started, but I hope I can start to churn out a regular stream of
meaningful content quickly.&lt;/p>
&lt;h2 id="why-do-this">Why do this?&lt;/h2>
&lt;p>I have increasingly been feeling the pressure to start a technical blog. I
tend to dig into weird, obscure issues fairly frequently, and have often
thought my notes could be of interest and/or help to others. But setting up a
blog and writing content takes time, and I just haven&amp;rsquo;t been able to convince
myself to make it happen.&lt;/p></description></item></channel></rss>