<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Thoughts on Nate Schmoll</title>
    <link>https://nat.sh/thoughts/</link>
    <description>Recent content in Thoughts on Nate Schmoll</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Nate Schmoll</copyright>
    <lastBuildDate>Wed, 04 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://nat.sh/thoughts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SCRU128: my new favorite way to do IDs</title>
      <link>https://nat.sh/thoughts/scru128/</link>
      <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/scru128/</guid>
      <description>&lt;p&gt;I’ve recently switched a bunch of my projects over to SCRU128 (Sortable, Clock and Random number-based Unique identifier), replacing UUIDv4 and earlier experiments with ULID and KSUID, and it’s been one of those small changes that quietly improves everything.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;rationale&#34;&gt;&#xA;  Rationale&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#rationale&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Traditional UUIDv4 provides strong uniqueness but lacks temporal ordering, leading to index fragmentation and poor locality for time-based database queries. There are alternatives like ULID which offer millisecond timestamps and basic monotonicity, but their 80-bit randomness can result in non-strict ordering under high-frequency generation. KSUID, originally authored in 2017 by Segment, provides 128 random bits but uses 160 bits altogether, has relatively poor timestamp resolution, and is longer with its 27-character strings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New projects on GitHub</title>
      <link>https://nat.sh/thoughts/new-projects-on-github/</link>
      <pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/new-projects-on-github/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve spent some time on personal coding projects lately and have finally&#xA;brought a few items to some level of completion. Here are some CLI-based&#xA;tools that are now in a &amp;ldquo;1.0&amp;rdquo; state, so I&amp;rsquo;m releasing them on GitHub.&lt;/p&gt;&#xA;&lt;p&gt;Each project provides binary releases for multiple popular operating systems&#xA;with &lt;code&gt;amd64&lt;/code&gt; and &lt;code&gt;arm64&lt;/code&gt; architectures. Everything is written in&#xA;&lt;a href=&#34;https://go.dev&#34;&gt;Go&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;PRs welcome! Here are the projects&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;nateratorlambda-deploy-log-compare&#34;&gt;&#xA;  &lt;a href=&#34;https://github.com/naterator/lambda-deploy-log-compare&#34;&gt;naterator/lambda-deploy-log-compare&lt;/a&gt;&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#nateratorlambda-deploy-log-compare&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Tool for taking snapshots of AWS Lambda logs and comparing them across&#xA;deployments.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Explaining generative AI accuracy</title>
      <link>https://nat.sh/thoughts/explaining-generative-ai-accuracy/</link>
      <pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/explaining-generative-ai-accuracy/</guid>
      <description>&lt;p&gt;Explaining Generative AI (GAI) to people and how it &amp;ldquo;magically&amp;rdquo; produces content/output is sometimes difficult to do in a concise, understandable way, but the best way I&amp;rsquo;ve figured out how to do it is to communicate that &lt;em&gt;everything&lt;/em&gt; produced by GAI is &amp;ldquo;made up&amp;rdquo;. Here&amp;rsquo;s a quick example of how I explain it.&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;hallucinating&#34;&gt;&#xA;  Hallucinating&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#hallucinating&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;GAI, like large language models (LLMs), often produces outputs that may seem true at first glance, but can be completely made up. This is known as &amp;ldquo;hallucinating&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AirPods observation</title>
      <link>https://nat.sh/thoughts/airpods-observation/</link>
      <pubDate>Mon, 12 May 2025 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/airpods-observation/</guid>
      <description>&lt;p&gt;I have a theory about why one AirPod&amp;rsquo;s battery seems to consistently drain&#xA;slightly faster in a given pair of #AirPods. This is in the case of listening&#xA;to music, where the audio processing and output would be fairly balanced&#xA;(ie, unlike a case where only one AirPod is being used for a phone call).&lt;/p&gt;&#xA;&lt;h2 class=&#34;heading&#34; id=&#34;here-it-goes&#34;&gt;&#xA;  Here it goes&amp;hellip;&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#here-it-goes&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Each AirPod is an independent Bluetooth device working in coordination and&#xA;presenting themselves to the source as a single device (MAC address). This&#xA;means that only one of them (&amp;ldquo;primary&amp;rdquo;) is actually transmitting data to and&#xA;from the source device, and is then passing data over to the &amp;ldquo;secondary&amp;rdquo;&#xA;AirPod. This extra overhead means one drains slightly faster than the other.&lt;/p&gt;</description>
    </item>
    <item>
      <title>First thought</title>
      <link>https://nat.sh/thoughts/first-thought/</link>
      <pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://nat.sh/thoughts/first-thought/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Welcome to my new web site&amp;hellip; for the 20th time!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Greetings! I&amp;rsquo;ve gone through dozens of revisions on my web site over the&#xA;years, and this is the latest-yet-greatest one! It uses&#xA;&lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt;, &lt;a href=&#34;https://www.markdownguide.org&#34;&gt;Markdown&lt;/a&gt;, and is&#xA;very easy to maintain, which I&amp;rsquo;m excited about. That is because the&#xA;aforementioned means my web site will be&amp;hellip; &lt;strong&gt;updated regularly&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll see how this goes&amp;hellip;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
