<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Against-Entropy on Andrew Quinn&#39;s TILs</title>
    <link>https://til.andrew-quinn.me/tags/against-entropy/</link>
    <description>Recent content in Against-Entropy on Andrew Quinn&#39;s TILs</description>
    <image>
      <title>Andrew Quinn&#39;s TILs</title>
      <url>https://til.andrew-quinn.me/papermod-cover.png</url>
      <link>https://til.andrew-quinn.me/papermod-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 20 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://til.andrew-quinn.me/tags/against-entropy/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Back up your TOTP codes by just printing them</title>
      <link>https://til.andrew-quinn.me/posts/back-up-your-totp-codes-by-just-printing-them/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/back-up-your-totp-codes-by-just-printing-them/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://til.andrew-quinn.me/img/totp-example-01.png&#34; alt=&#34;PNG of the TOTP code for JBSWY3DPEHPK3PXP.&#34;  /&gt;
&lt;/p&gt;
&lt;p&gt;Scan the Quick Response (QR) code above with your favorite Two-Factor Authentication (2FA) app.
You should get a six digit number, rotating every
30 seconds, that looks something like&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;
&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34; id=&#34;hl-0-1&#34;&gt;&lt;a style=&#34;outline:none;text-decoration:none;color:inherit&#34; href=&#34;#hl-0-1&#34;&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34; id=&#34;hl-0-2&#34;&gt;&lt;a style=&#34;outline:none;text-decoration:none;color:inherit&#34; href=&#34;#hl-0-2&#34;&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;
&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;237601
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# as of Wed May 20 09:44:53 AM EEST 2026
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you then take the secret key that QR code maps to,
say&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Replacing a 3 GB SQLite database with a 10 MB FST (finite state transducer) binary</title>
      <link>https://til.andrew-quinn.me/posts/replacing-a-3-gb-sqlite-database-with-a-7-mb-fst-finite-state-trandsucer-binary/</link>
      <pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/replacing-a-3-gb-sqlite-database-with-a-7-mb-fst-finite-state-trandsucer-binary/</guid>
      <description>&lt;p&gt;&lt;em&gt;Note for
&lt;a href=&#34;https://www.youtube.com/watch?v=aOJOfh2_4PE&#34;&gt;numberphiles&lt;/a&gt;:
all numbers have been rounded to their first significant
digit, because I&amp;rsquo;m a fan of Rob Eastaway&amp;rsquo;s
&lt;a href=&#34;https://robeastaway.com/blog/introducing-zequals&#34;&gt;&amp;ldquo;zequals&amp;rdquo; method&lt;/a&gt;
of getting to the point when it comes to estimation. It&amp;rsquo;s much
more valuable to walk away with the heuristic &amp;ldquo;some dude got
a 300x memory reduction by swapping out a database he hacked
together for a tiny, static, specialized data structure that
does exactly what he needs it to and no more.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>I still like Jenkins</title>
      <link>https://til.andrew-quinn.me/posts/i-still-like-jenkins/</link>
      <pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/i-still-like-jenkins/</guid>
      <description>&lt;p&gt;Before &lt;a href=&#34;https://github.com/features/actions&#34;&gt;GitHub Actions&lt;/a&gt;,
before &lt;a href=&#34;https://docs.gitlab.com/ee/ci/&#34;&gt;GitLab CI/CD&lt;/a&gt;,
and before the panoply of startups all promising
to help you build your software faster and with
less hassle, there was the humble,
open source
&lt;a href=&#34;https://www.jenkins.io/&#34;&gt;Jenkins&lt;/a&gt;.
Or perhaps I should say is: Jenkins is still actively
maintained to this day, and has actually been in use
in basically every single place I have worked since
graduating from high school, although not everyone
who was using it was exactly happy with it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>LLM tutored writing practice for secondary language acquisition</title>
      <link>https://til.andrew-quinn.me/posts/llm-tutored-writing-practice-for-secondary-language-acquisition/</link>
      <pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/llm-tutored-writing-practice-for-secondary-language-acquisition/</guid>
      <description>&lt;p&gt;Language learning for the contemporary adult learner can be broken down roughly
into four highly correlated, but distinct, skillsets.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;Passive understanding&lt;/th&gt;
          &lt;th&gt;Active production&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;The written word&lt;/td&gt;
          &lt;td&gt;Reading&lt;/td&gt;
          &lt;td&gt;Writing&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;The spoken word&lt;/td&gt;
          &lt;td&gt;Listening&lt;/td&gt;
          &lt;td&gt;Speaking&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;You may know from &lt;a href=&#34;https://finbug.xyz/&#34;&gt;my FOSS software&lt;/a&gt; that I have been
learning Finnish for the past 4 years or so. For the first few years I pretty
much focused exclusively on reading comprehension, as I consider that to be the
easiest quadrant to skill up in first. This focus put me in the interesting
position for some time of being able to read most YA fiction and tax documents
while being unable to order a pizza for myself on the phone.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cross-platform TUIs are easier than cross-platform GUIs</title>
      <link>https://til.andrew-quinn.me/posts/cross-platform-tuis-are-easier-than-cross-platform-guis/</link>
      <pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/cross-platform-tuis-are-easier-than-cross-platform-guis/</guid>
      <description>&lt;p&gt;Below is a GIF of
&lt;a href=&#34;https://github.com/hiAndrewQuinn/tsk&#34;&gt;&lt;code&gt;tsk&lt;/code&gt;, my pocket Finnish-to-English dictionary&lt;/a&gt;,
running in my terminal emulator of choice under Linux.
It&amp;rsquo;s what the kids call a
&lt;a href=&#34;https://github.com/rothgar/awesome-tuis&#34;&gt;TUI&lt;/a&gt;,
a graphical program that just happens to drive its graphics
using terminal graphics instead of graphics-graphics.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Insert GIF here.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You can probably tell that this program fits neatly into the
&lt;a href=&#34;https://bradfrost.com/blog/link/an-app-can-be-a-home-cooked-meal/&#34;&gt;&amp;ldquo;home-cooked meal&amp;rdquo;&lt;/a&gt;
clade of programs. There is a very straightforward problem I want solved -
fast, single-executable-portable dictionary lookup, with a few conveniences
for the busy language learner layered on top. I am quite happy with &lt;code&gt;tsk&lt;/code&gt; in
its current iteration and don&amp;rsquo;t plan to add much more to it anytime soon.
It would still save me a lot of time and hassle if I were the only person who
could use it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The highest personal ROI program I have written so far</title>
      <link>https://til.andrew-quinn.me/posts/the-highest-personal-roi-program-i-have-written-so-far/</link>
      <pubDate>Tue, 30 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/the-highest-personal-roi-program-i-have-written-so-far/</guid>
      <description>&lt;p&gt;It would have to be
&lt;a href=&#34;https://github.com/hiAndrewQuinn/finstem&#34;&gt;finstem&lt;/a&gt;,
a simple command-line program I wrote to
reduce Finnish words down to their root form.&lt;/p&gt;
&lt;p&gt;Finnish is a lot like Latin or Russian in that its words
often become lumbering behemoths of rewritten consonants,
suffixes upon suffixes, and this makes it hard to look up
in a dictionary &amp;ndash; that is, until you factor in its
very regular orthography and the phenomenal
efforts of the Finnish programming industry: &lt;code&gt;finstem&lt;/code&gt; is
basically a very specialized UI for
&lt;a href=&#34;https://voikko.puimula.org/&#34;&gt;the OpenOffice spell checker&lt;/a&gt;,
and I have no shame in admitting that.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My pet theory of how great software gets started</title>
      <link>https://til.andrew-quinn.me/posts/my-pet-theory-of-how-great-software-gets-started/</link>
      <pubDate>Tue, 16 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/my-pet-theory-of-how-great-software-gets-started/</guid>
      <description>&lt;p&gt;(Inspired by
&lt;a href=&#34;https://news.ycombinator.com/item?id=40974768&#34;&gt;yungporko&amp;rsquo;s Ask HN post&lt;/a&gt;,
which got me thinking.)&lt;/p&gt;
&lt;p&gt;Pretty much every community, dojo, workplace, subculture, scene you can imagine
in the modern day had a software sub-scene embedded within it. It can be as
small as &amp;ldquo;that guy who does our Excel&amp;rdquo;, or as large as
&lt;a href=&#34;https://www.pouet.net/&#34;&gt;the scene itself&lt;/a&gt;
. This is owing to the fantastic generality of software as a way to make almost
anything more efficient, but we won&amp;rsquo;t go on that tangent now.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Trackballs are great for the mostly-mouseless</title>
      <link>https://til.andrew-quinn.me/posts/trackballs-are-great-for-the-mostly-mouseless/</link>
      <pubDate>Sun, 26 May 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/trackballs-are-great-for-the-mostly-mouseless/</guid>
      <description>&lt;p&gt;I was 100% mouseless back before it was cool.
Between dropping out of high school and enrolling
in community college, I replaced my laptop with a
$80 HP EliteBook I found on eBay; when I discovered its
trackpad didn&amp;rsquo;t work anyway, I went all in on a no-X
setup.
I eventually concluded that going 90% mouseless got me almost
all of the benefits, with almost none of the downsides.
It&amp;rsquo;s almost as if
&lt;a href=&#34;https://stevenshang.com/things-i-learned-today-april-25-2020&#34;&gt;returns are usually diminishing&lt;/a&gt;!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Disable your browser history to write better internal docs</title>
      <link>https://til.andrew-quinn.me/posts/disable-your-browser-history-to-write-better-internal-docs/</link>
      <pubDate>Tue, 14 May 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/disable-your-browser-history-to-write-better-internal-docs/</guid>
      <description>&lt;p&gt;Most of us work in companies with something approximating a shared
online
internal wiki, be it
&lt;a href=&#34;https://www.atlassian.com/software/confluence&#34;&gt;Confluence&lt;/a&gt;
or
&lt;a href=&#34;https://www.mediawiki.org/wiki/MediaWiki&#34;&gt;MediaWiki&lt;/a&gt;
or even
&lt;a href=&#34;https://docs.readthedocs.io/en/stable/&#34;&gt;a searchable, static website custom built for the task&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A common problem with these sites is &lt;em&gt;making what you write discoverable&lt;/em&gt; to
other people on the site. &lt;em&gt;Your&lt;/em&gt; chosen title might tell you, a person fully in
the weeds of whatever you were just doing, exactly enough to know this is the
article you were looking for. Another human being, who might be searching for help
on how to do this for the first time? Not so much.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
