<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Published</title>
  <id>https://waylonwalker.com/published/atom.xml</id>
  <updated>2026-03-17T20:22:07Z</updated>
  <subtitle>All published posts</subtitle>
  <link href="https://waylonwalker.com/published/" rel="alternate" type="text/html"></link>
  <link href="https://waylonwalker.com/published/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Waylon Walker</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>trailmakers pioneers second run - Its A Trap</title>
    <id>https://waylonwalker.com/shots/its-a-trap/</id>
    <updated>2026-03-17T20:22:07Z</updated>
    <published>2026-03-17T20:22:07Z</published>
    <link href="https://waylonwalker.com/shots/its-a-trap/" rel="alternate" type="text/html"></link>
    <summary type="text">Its A Trap</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4&#34; class=&#34;glightbox-link&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4&#34; type=&#34;video/mp4&#34;&gt;Its A Trap&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Its A Trap, abmush with Adiral Leadhead, During my second trailmakers pioneers run.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>trailmakers pioneers second run - Collection Party Balloon</title>
    <id>https://waylonwalker.com/shots/collection-party-balloon/</id>
    <updated>2026-03-17T20:21:30Z</updated>
    <published>2026-03-17T20:21:30Z</published>
    <link href="https://waylonwalker.com/shots/collection-party-balloon/" rel="alternate" type="text/html"></link>
    <summary type="text">Collection Party Balloon</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4&#34; class=&#34;glightbox-link&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4&#34; type=&#34;video/mp4&#34;&gt;Collection Party Balloon&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Collecting Party Balloon, During my second trailmakers pioneers run.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>trailmakers pioneers second run - Collection L Bracket</title>
    <id>https://waylonwalker.com/shots/collection-l-bracket/</id>
    <updated>2026-03-17T20:20:14Z</updated>
    <published>2026-03-17T20:20:14Z</published>
    <link href="https://waylonwalker.com/shots/collection-l-bracket/" rel="alternate" type="text/html"></link>
    <summary type="text">Collection L Bracket</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4&#34; class=&#34;glightbox-link&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4&#34; type=&#34;video/mp4&#34;&gt;Collection L Bracket&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Collecting the L Bracket, During my second trailmakers pioneers run.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>trailmakers pioneers second run - Wyatt Hits The Gap</title>
    <id>https://waylonwalker.com/shots/wyatt-hits-the-gap/</id>
    <updated>2026-03-17T20:19:24Z</updated>
    <published>2026-03-17T20:19:24Z</published>
    <link href="https://waylonwalker.com/shots/wyatt-hits-the-gap/" rel="alternate" type="text/html"></link>
    <summary type="text">Wyatt Hits The Gap</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4&#34; class=&#34;glightbox-link&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4&#34; type=&#34;video/mp4&#34;&gt;Wyatt Hits The Gap&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Wyatt Hits The Gap, During my second trailmakers pioneers run.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Dummy13 On A Skateboard</title>
    <id>https://waylonwalker.com/shots/dummy13-on-a-skateboard/</id>
    <updated>2026-03-16T20:53:56Z</updated>
    <published>2026-03-16T20:53:56Z</published>
    <link href="https://waylonwalker.com/shots/dummy13-on-a-skateboard/" rel="alternate" type="text/html"></link>
    <summary type="text">Tonight Wyatt gave me a dummy13 that he printed, assembled, and posed all on his own. He&#39;s printed quite a few of these in the past, and none came to this level of completion. I&#39;m so proud of him. This one was a near flawless build with only a few mistakes, that I&#39;d argue were poor design, small vertical pins. More importantly he was able to problem solve and use resin to fix these mistakes.</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp&#34; alt=&#34;dummy13 on a skateboard&#34;/ data-glightbox=&#34;description: dummy13 on a skateboard&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Tonight Wyatt gave me a dummy13 that he printed, assembled, and posed all on his own.  He’s printed quite a few of these in the past, and none came to this level of completion.  I’m so proud of him.  This one was a near flawless build with only a few mistakes, that I’d argue were poor design, small vertical pins.  More importantly he was able to problem solve and use resin to fix these mistakes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Waylon Walker</title>
    <id>https://waylonwalker.com/</id>
    <updated>2026-02-28T00:00:00Z</updated>
    <published>2026-02-28T00:00:00Z</published>
    <link href="https://waylonwalker.com/" rel="alternate" type="text/html"></link>
    <summary type="text">Software, automation, and building things on the web.</summary>
    <content type="html">&lt;div class=&#34;home-shots-section&#34;&gt;&#xA;&lt;h2 id=&#34;latest-shotsshots&#34;&gt;Latest &lt;a href=&#34;/shots/&#34;&gt;Shots&lt;/a&gt; &lt;a href=&#34;#latest-shotsshots&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;feed h-feed&#34;&gt;&#xA;&lt;div class=&#34;posts posts-list&#34;&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/its-a-trap/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;video class=&#34;u-video&#34; autoplay=&#34;&#34; muted=&#34;&#34; loop=&#34;&#34; playsinline=&#34;&#34; poster=&#34;https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.webp?w=600&#34;&gt;&#xA;&lt;source src=&#34;https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4?w=600&#34; type=&#34;video/mp4&#34;/&gt;&#xA;&lt;/video&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;Its A Trap&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/collection-party-balloon/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;video class=&#34;u-video&#34; autoplay=&#34;&#34; muted=&#34;&#34; loop=&#34;&#34; playsinline=&#34;&#34; poster=&#34;https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.webp?w=600&#34;&gt;&#xA;&lt;source src=&#34;https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4?w=600&#34; type=&#34;video/mp4&#34;/&gt;&#xA;&lt;/video&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;Collection Party Balloon&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/collection-l-bracket/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;video class=&#34;u-video&#34; autoplay=&#34;&#34; muted=&#34;&#34; loop=&#34;&#34; playsinline=&#34;&#34; poster=&#34;https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.webp?w=600&#34;&gt;&#xA;&lt;source src=&#34;https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4?w=600&#34; type=&#34;video/mp4&#34;/&gt;&#xA;&lt;/video&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;Collection L Bracket&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/wyatt-hits-the-gap/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;video class=&#34;u-video&#34; autoplay=&#34;&#34; muted=&#34;&#34; loop=&#34;&#34; playsinline=&#34;&#34; poster=&#34;https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.webp?w=600&#34;&gt;&#xA;&lt;source src=&#34;https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4?w=600&#34; type=&#34;video/mp4&#34;/&gt;&#xA;&lt;/video&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;Wyatt Hits The Gap&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;row-span-2 col-span-2&#34;&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/dummy13-on-a-skateboard/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;img src=&#34;https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp?w=600&#34; alt=&#34;Dummy13 On A Skateboard&#34; class=&#34;u-photo glightbox&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Dummy13 On A Skateboard&#34;&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;Tonight Wyatt gave me a dummy13 that he printed, assembled, and posed all on his own. He&amp;#39;s printed quite a few of these in the past, and none came to this level of completion. I&amp;#39;m so proud of him. This one was a near flawless build with only a few mistakes, that I&amp;#39;d argue were poor design, small vertical pins. More importantly he was able to problem solve and use resin to fix these mistakes.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;col-span-2&#34;&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/gradient-keycap-results/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;img src=&#34;https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp?w=600&#34; alt=&#34;Gradient Keycap Results&#34; class=&#34;u-photo glightbox&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Gradient Keycap Results&#34;&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;The gradient keycaps turned out pretty good, but I&amp;#39;m not sure what I did wrong with the interface between the raft and the caps, that came out ** rough, but the effect works.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/camp-rock-sign/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;img src=&#34;https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp?w=600&#34; alt=&#34;Camp Rock Sign&#34; class=&#34;u-photo glightbox&#34; loading=&#34;lazy&#34;/ data-glightbox=&#34;description: Camp Rock Sign&#34;&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;Camp Rock Sign all put together, by the fabulous Rhiannon, the letters came out great, her work on the built is amazing, cant wait to see it lit up.&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;figure class=&#34;photo-figure h-entry&#34;&gt;&#xA;&lt;a href=&#34;/shots/trobio-full/&#34; class=&#34;u-url&#34;&gt;&#xA;&lt;video class=&#34;u-video&#34; autoplay=&#34;&#34; muted=&#34;&#34; loop=&#34;&#34; playsinline=&#34;&#34; poster=&#34;https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.webp?w=600&#34;&gt;&#xA;&lt;source src=&#34;https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4?w=600&#34; type=&#34;video/mp4&#34;/&gt;&#xA;&lt;/video&gt;&#xA;&lt;/a&gt;&#xA;&lt;figcaption class=&#34;p-summary&#34;&gt;Trobio Full&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/shots/&#34; class=&#34;home-see-more&#34;&gt;See all shots →&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;home-feeds-grid&#34;&gt;&#xA;&lt;div class=&#34;home-feeds-grid__col&#34;&gt;&#xA;&lt;h2 id=&#34;latest-blog-postsblog&#34;&gt;Latest &lt;a href=&#34;/blog/&#34;&gt;Blog Posts&lt;/a&gt; &lt;a href=&#34;#latest-blog-postsblog&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;feed h-feed&#34;&gt;&#xA;&lt;div class=&#34;posts posts-list&#34;&gt;&#xA;&lt;article class=&#34;card card-article h-entry&#34;&gt;&#xA;&lt;div class=&#34;card-content&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;h2 id=&#34;verify&#34; class=&#34;card-title p-name&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;/verify/&#34;&gt;/verify&lt;/a&gt; &lt;a href=&#34;#verify&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;Inspired by @mollywhite’s &lt;a href=&#34;https://mollywhite.net/verify/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/mollywhite.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/mollywhite.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;verify&lt;/a&gt; &lt;a href=&#34;https://slashpages.net&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;slashpage&lt;/a&gt;. This page serves as the system of record for my online identity. The best places to follow me are:&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;time class=&#34;dt-published&#34; datetime=&#34;2026-02-24T10:36:57Z&#34;&gt;February 24, 2026&lt;/time&gt;&#xA;&lt;span class=&#34;reading-time&#34;&gt;1 min read&lt;/span&gt;&#xA;&lt;span class=&#34;webmention-counts&#34;&gt;&#xA;&lt;p&gt;&lt;span class=&#34;wm-count wm-likes&#34; title=&#34;1 like&#34;&gt;❤ 1&lt;/span&gt;&lt;/p&gt;&#xA;&lt;/span&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&lt;a href=&#34;/tags/slash/&#34; class=&#34;tag p-category&#34;&gt;slash&lt;/a&gt;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/div&gt;&#xA;&lt;/article&gt;&#xA;&lt;article class=&#34;card card-article h-entry&#34;&gt;&#xA;&lt;div class=&#34;card-content&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;h2 id=&#34;top4&#34; class=&#34;card-title p-name&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;/top4/&#34;&gt;/top4&lt;/a&gt; &lt;a href=&#34;#top4&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;Definitive ranked lists of my top 3 favorites plus an honorable mention.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Honorable mention:&lt;/strong&gt; &lt;a href=&#34;https://ipython.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/ipython.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/ipython.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;ipython&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Honorable mention:&lt;/strong&gt; &lt;a href=&#34;https://typer.tiangolo.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/typer.tiangolo.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/typer.tiangolo.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;typer&lt;/a&gt; - fast cli apps&lt;/p&gt;&#xA;&lt;p&gt;...&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;time class=&#34;dt-published&#34; datetime=&#34;2026-02-11T14:00:00Z&#34;&gt;February 11, 2026&lt;/time&gt;&#xA;&lt;span class=&#34;reading-time&#34;&gt;1 min read&lt;/span&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&lt;a href=&#34;/tags/slash/&#34; class=&#34;tag p-category&#34;&gt;slash&lt;/a&gt;&lt;a href=&#34;/tags/favorites/&#34; class=&#34;tag p-category&#34;&gt;favorites&lt;/a&gt;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/div&gt;&#xA;&lt;/article&gt;&#xA;&lt;article class=&#34;card card-article h-entry&#34;&gt;&#xA;&lt;div class=&#34;card-content&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;h2 id=&#34;yep&#34; class=&#34;card-title p-name&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;/yep/&#34;&gt;/yep&lt;/a&gt; &lt;a href=&#34;#yep&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;Inspired by @fyrio’s &lt;a href=&#34;https://fyr.io/yep&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/fyr.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/fyr.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;yep&lt;/a&gt; &lt;a href=&#34;https://slashpages.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;slashpage&lt;/a&gt;, a list of &lt;strong&gt;S tier&lt;/strong&gt; things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I think about it.&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;time class=&#34;dt-published&#34; datetime=&#34;2026-02-11T12:00:00Z&#34;&gt;February 11, 2026&lt;/time&gt;&#xA;&lt;span class=&#34;reading-time&#34;&gt;1 min read&lt;/span&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&lt;a href=&#34;/tags/slash/&#34; class=&#34;tag p-category&#34;&gt;slash&lt;/a&gt;&lt;a href=&#34;/tags/opinions/&#34; class=&#34;tag p-category&#34;&gt;opinions&lt;/a&gt;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/div&gt;&#xA;&lt;/article&gt;&#xA;&lt;article class=&#34;card card-article h-entry&#34;&gt;&#xA;&lt;div class=&#34;card-content&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;h2 id=&#34;nope&#34; class=&#34;card-title p-name&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;/nope/&#34;&gt;/nope&lt;/a&gt; &lt;a href=&#34;#nope&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;Inspired by @baty’s &lt;a href=&#34;https://baty.net/nope/&#34;&gt;nope&lt;/a&gt; &lt;a href=&#34;https://slashpages.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;slashpage&lt;/a&gt;, a list of &lt;strong&gt;F tier&lt;/strong&gt; things I don’t like, don’t care, avoid, overhyped, or won’t do in no particular order, updated as I think about it.&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;time class=&#34;dt-published&#34; datetime=&#34;2026-02-11T12:00:00Z&#34;&gt;February 11, 2026&lt;/time&gt;&#xA;&lt;span class=&#34;reading-time&#34;&gt;1 min read&lt;/span&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&lt;a href=&#34;/tags/slash/&#34; class=&#34;tag p-category&#34;&gt;slash&lt;/a&gt;&lt;a href=&#34;/tags/opinions/&#34; class=&#34;tag p-category&#34;&gt;opinions&lt;/a&gt;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/div&gt;&#xA;&lt;/article&gt;&#xA;&lt;article class=&#34;card card-article h-entry&#34;&gt;&#xA;&lt;div class=&#34;card-content&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;h2 id=&#34;ai&#34; class=&#34;card-title p-name&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;/ai/&#34;&gt;Ai&lt;/a&gt; &lt;a href=&#34;#ai&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;Last updated Jan 2026.&lt;/p&gt;&#xA;&lt;p&gt;Ai is a tool I use a lot for code generation, research, image generation, and debugging. The words I publish on this site are my own unless explicitly stated from the top. There’s only one or two posts in this category.&lt;/p&gt;&#xA;&lt;p&gt;The core of what this blog is, is my thoughts ideas, sharing experiences. The words are the important part. They are not perfect, I often do not spell or grammer check, and what is here is from a flow state of writing and very often not refactored.&lt;/p&gt;&#xA;&lt;p&gt;...&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;time class=&#34;dt-published&#34; datetime=&#34;2026-01-11T13:48:43Z&#34;&gt;January 11, 2026&lt;/time&gt;&#xA;&lt;span class=&#34;reading-time&#34;&gt;3 min read&lt;/span&gt;&#xA;&lt;span class=&#34;webmention-counts&#34;&gt;&#xA;&lt;/span&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&lt;a href=&#34;/tags/slash/&#34; class=&#34;tag p-category&#34;&gt;slash&lt;/a&gt;&lt;a href=&#34;/tags/ai/&#34; class=&#34;tag p-category&#34;&gt;ai&lt;/a&gt;&lt;a href=&#34;/tags/llm/&#34; class=&#34;tag p-category&#34;&gt;llm&lt;/a&gt;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/div&gt;&#xA;&lt;/article&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/blog/&#34; class=&#34;home-see-more&#34;&gt;See all blog posts →&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;home-feeds-grid__col&#34;&gt;&#xA;&lt;h2 id=&#34;recent-tiltil&#34;&gt;Recent &lt;a href=&#34;/til/&#34;&gt;TIL&lt;/a&gt; &lt;a href=&#34;#recent-tiltil&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;feed h-feed&#34;&gt;&#xA;&lt;div class=&#34;posts posts-list&#34;&gt;&#xA;&lt;article class=&#34;card card-link h-entry&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;div class=&#34;card-link-wrapper&#34;&gt;&#xA;&lt;div class=&#34;card-link-content&#34;&gt;&#xA;&lt;a href=&#34;/vim-gq/&#34; class=&#34;card-title p-name u-url&#34;&gt;Vim-gq&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;Vim has a handy feature to format text with &lt;code&gt;gq&lt;/code&gt;. You can use it in visual mode, give it a motion, or if you give it &lt;code&gt;gqq&lt;/code&gt; it will format the current line. I use this quite often while writing in markdown, I do not use softwraps in vim, so &lt;code&gt;gqq&lt;/code&gt; quickly formats my current line into a paragraph. Once I have done this for a single line one time I typically switch to the motion for around paragraph &lt;code&gt;gqap&lt;/code&gt; to format the whole paragraph and not just the current line.&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;p&gt;&lt;time class=&#34;dt-published&#34; datetime=&#34;2024-08-05T12:22:00Z&#34;&gt;August 5, 2024&lt;/time&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/vim/&#34; class=&#34;tag p-category&#34;&gt;vim&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/neovim/&#34; class=&#34;tag p-category&#34;&gt;neovim&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/article&gt;&#xA;&lt;article class=&#34;card card-link h-entry&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;div class=&#34;card-link-wrapper&#34;&gt;&#xA;&lt;div class=&#34;card-link-content&#34;&gt;&#xA;&lt;a href=&#34;/am-i-vulnerable-to-the-xz-backdoor/&#34; class=&#34;card-title p-name u-url&#34;&gt;Am I vulnerable to the xz backdoor?&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;The main system that I am concerned about is my arch BTW machine. I found a great &lt;a href=&#34;https://archlinux.org/news/the-xz-package-has-been-backdoored/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/archlinux.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/archlinux.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;article&lt;/a&gt; from the official archlinux site covering it.&lt;/p&gt;&#xA;&lt;p&gt;For my machine I am concerned with this line.&lt;/p&gt;&#xA;&lt;p&gt;The xz packages prior to version 5.6.1-2 (specifically 5.6.0-1 and 5.6.1-1) contain this backdoor.&lt;/p&gt;&#xA;&lt;p&gt;I checked my xz package with paru, and I am good.&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;p&gt;&lt;time class=&#34;dt-published&#34; datetime=&#34;2024-04-21T07:53:54Z&#34;&gt;April 21, 2024&lt;/time&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/linux/&#34; class=&#34;tag p-category&#34;&gt;linux&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/article&gt;&#xA;&lt;article class=&#34;card card-link h-entry&#34;&gt;&#xA;&lt;header class=&#34;card-header&#34;&gt;&#xA;&lt;div class=&#34;card-link-wrapper&#34;&gt;&#xA;&lt;div class=&#34;card-link-content&#34;&gt;&#xA;&lt;a href=&#34;/get-python-package-versions/&#34; class=&#34;card-title p-name u-url&#34;&gt;get the version of any python package | python api&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/header&gt;&#xA;&lt;div class=&#34;card-body&#34;&gt;&#xA;&lt;div class=&#34;card-excerpt p-summary&#34;&gt;&lt;p&gt;A common meta thing that I need in python is to find the version of a package. Most of the time I reach for &lt;code&gt;package_name.__version__&lt;/code&gt;, but that does not always work.&lt;/p&gt;&#xA;&lt;p&gt;In searching the internet for an answer nearly every one of them pointed me to &lt;code&gt;__version__&lt;/code&gt;. This works for most projects, but is simply a convention, its not required. Not all projects implement a &lt;code&gt;__version__&lt;/code&gt;, but most do. I’ve never seen it lie to me, but there is nothing stopping someone from shipping mismatched versions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;I appreciate it&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;While its not required its super handy and easy for anyone to remember off the top of their head. It makes it easy to start debugging differences between what you have vs what you see somewhere else. You can do this by dropping a &lt;code&gt;__version__&lt;/code&gt; variable inside your &lt;code&gt;__init__.py&lt;/code&gt; file.&lt;/p&gt;&#xA;&lt;p&gt;...&lt;/p&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;footer class=&#34;card-meta&#34;&gt;&#xA;&lt;p&gt;&lt;time class=&#34;dt-published&#34; datetime=&#34;2022-07-29T15:48:36Z&#34;&gt;July 29, 2022&lt;/time&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;card-tags&#34;&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tags/python/&#34; class=&#34;tag p-category&#34;&gt;python&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/footer&gt;&#xA;&lt;/article&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/til/&#34; class=&#34;home-see-more&#34;&gt;See all TIL posts →&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>/verify</title>
    <id>https://waylonwalker.com/verify/</id>
    <updated>2026-02-24T10:36:57Z</updated>
    <published>2026-02-24T10:36:57Z</published>
    <link href="https://waylonwalker.com/verify/" rel="alternate" type="text/html"></link>
    <summary type="text">Inspired by @mollywhite&#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:</summary>
    <content type="html">&lt;p&gt;Inspired by @mollywhite’s&#xA;&lt;a href=&#34;https://mollywhite.net/verify/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/mollywhite.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/mollywhite.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;verify&lt;/a&gt; &lt;a href=&#34;https://slashpages.net&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;slashpage&lt;/a&gt;.&#xA;This page serves as the system of record for my online identity. The best&#xA;places to follow me are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;My Website: &lt;a href=&#34;https://waylonwalker.com&#34;&gt;waylonwalker.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;YouTube: &lt;a href=&#34;https://youtube.com/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Waylon Walker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;YouTube Gaming: &lt;a href=&#34;https://www.youtube.com/channel/UCHuxc1HRsd3aRjvL6C817tQ&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Waylon Walker Gaming&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Twitch: &lt;a href=&#34;https://www.twitch.tv/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.twitch.tv.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.twitch.tv.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Waylon Walker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Twitter: &lt;a href=&#34;https://twitter.com/_WaylonWalker&#34;&gt;@_WaylonWalker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LinkedIn: &lt;a href=&#34;https://www.linkedin.com/in/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.linkedin.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.linkedin.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Waylon Walker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;GitHub: &lt;a href=&#34;https://github.com/WaylonWalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;WaylonWalker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Dev.to: &lt;a href=&#34;https://dev.to/waylonwalker&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/dev.to.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/dev.to.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Waylon Walker&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Bluesky: &lt;a href=&#34;https://bsky.app/profile/waylonwalker.com&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/bsky.app.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/bsky.app.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;@waylonwalker.com&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>/top4</title>
    <id>https://waylonwalker.com/top4/</id>
    <updated>2026-02-11T14:00:00Z</updated>
    <published>2026-02-11T14:00:00Z</published>
    <link href="https://waylonwalker.com/top4/" rel="alternate" type="text/html"></link>
    <summary type="text">Definitive ranked lists of my top 3 favorites plus an honorable mention.</summary>
    <content type="html">&lt;p&gt;Definitive ranked lists of my top 3 favorites plus an honorable mention.&lt;/p&gt;&#xA;&lt;h2 id=&#34;terminal-tools&#34;&gt;Terminal Tools &lt;a href=&#34;#terminal-tools&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://neovim.io/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/neovim.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/neovim.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;neovim&lt;/a&gt;&lt;/strong&gt; - modal editing changed how I think about text&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://tmux.github.io/&#34;&gt;tmux&lt;/a&gt;&lt;/strong&gt; - terminal sessions that survive disconnects and allow me to hop between projects at the speed of thought.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://k9scli.io/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/k9scli.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/k9scli.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;k9s&lt;/a&gt;&lt;/strong&gt; - S tier tui interface that all tuis should strive for&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Honorable mention:&lt;/strong&gt; &lt;a href=&#34;https://ipython.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/ipython.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/ipython.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;ipython&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;python-tools&#34;&gt;Python Tools &lt;a href=&#34;#python-tools&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://pandas.pydata.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/pandas.pydata.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/pandas.pydata.org.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;pandas&lt;/a&gt;&lt;/strong&gt; - This is what got me out of corporate spreadsheets and back into code/software.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://kedro.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/kedro.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/kedro.org.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;kedro&lt;/a&gt;&lt;/strong&gt; - data pipelines with opinions I agree with&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://fastapi.tiangolo.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/fastapi.tiangolo.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/fastapi.tiangolo.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;fastapi&lt;/a&gt;&lt;/strong&gt; - my favorite python web framework&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Honorable mention:&lt;/strong&gt; &lt;a href=&#34;https://typer.tiangolo.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/typer.tiangolo.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/typer.tiangolo.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;typer&lt;/a&gt; - fast cli apps&lt;/p&gt;&#xA;&lt;h2 id=&#34;games-to-play-with-kids&#34;&gt;Games to Play with Kids &lt;a href=&#34;#games-to-play-with-kids&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;multiplayer&lt;/em&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://minecraft.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/minecraft.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/minecraft.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Minecraft&lt;/a&gt;&lt;/strong&gt; - infinite creativity, modding potential&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://store.steampowered.com/app/1211020/Wobbly_Life/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/store.steampowered.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/store.steampowered.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Wobbly Life&lt;/a&gt;&lt;/strong&gt; - Open World Co-op&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://www.stardewvalley.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.stardewvalley.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.stardewvalley.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Stardew Valley&lt;/a&gt;&lt;/strong&gt; - cozy, collaborative farming&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Honorable mention:&lt;/strong&gt; &lt;a href=&#34;https://www.terraria.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.terraria.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.terraria.org.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Terraria&lt;/a&gt; - 2d world builder&lt;/p&gt;&#xA;&lt;h2 id=&#34;games-to-play-alone&#34;&gt;Games to Play Alone &lt;a href=&#34;#games-to-play-alone&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;singleplayer&lt;/em&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://www.hollowknight.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.hollowknight.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.hollowknight.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Hollow Knight&lt;/a&gt;/&lt;a href=&#34;https://hollowknightsilksong.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/hollowknightsilksong.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/hollowknightsilksong.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Hollow Knight Silksong&lt;/a&gt;&lt;/strong&gt; - S tier 2d platformer with adventure, mystery, lore, boss fights.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://store.steampowered.com/app/861650/Session_Skate_Sim/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/store.steampowered.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/store.steampowered.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Session Skate Sim&lt;/a&gt;&lt;/strong&gt; - The best skate sim&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://www.animalwell.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.animalwell.net.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.animalwell.net.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Animal Well&lt;/a&gt;&lt;/strong&gt; - epic 2d platformer with the most incredible graphics at 320p ever created and the deepest puzzles Ive seen&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;Honorable mention:&lt;/strong&gt; &lt;a href=&#34;https://store.steampowered.com/app/400/Portal/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/store.steampowered.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/store.steampowered.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Portal&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Inspired by &lt;a href=&#34;https://topfour.net&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/topfour.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/topfour.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;topfour.net&lt;/a&gt; and &lt;a href=&#34;https://slashpages.net&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;slashpages.net&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>/yep</title>
    <id>https://waylonwalker.com/yep/</id>
    <updated>2026-02-11T12:00:00Z</updated>
    <published>2026-02-11T12:00:00Z</published>
    <link href="https://waylonwalker.com/yep/" rel="alternate" type="text/html"></link>
    <summary type="text">Inspired by @fyrio&#39;s yep slashpage, a list of ** things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I...</summary>
    <content type="html">&lt;p&gt;Inspired by @fyrio’s &lt;a href=&#34;https://fyr.io/yep&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/fyr.io.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/fyr.io.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;yep&lt;/a&gt;&#xA;&lt;a href=&#34;https://slashpages.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;slashpage&lt;/a&gt;, a list of &lt;strong&gt;S tier&lt;/strong&gt; things I enjoy, use,&#xA;recommend, want to know more about, or seek out in no particular order, updated as I think about it.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition seealso&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Seealso&lt;/p&gt;&#xA;&lt;div class=&#34;embed-card&#34;&gt;&#xA;&lt;/div&gt;&#xA;  &lt;a href=&#34;/nope/&#34; class=&#34;embed-card-link&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;/nope&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Inspired by @baty&amp;#39;s nope slashpage, a list of ** things I don&amp;#39;t like, don&amp;#39;t care, avoid, overhyped, or won&amp;#39;t do in no particular order, updated as I think...&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Feb 11, 2026&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;yep&#34;&gt;/yep &lt;a href=&#34;#yep&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;coffee&lt;/li&gt;&#xA;&lt;li&gt;small web 1.0&lt;/li&gt;&#xA;&lt;li&gt;RSS&lt;/li&gt;&#xA;&lt;li&gt;minecraft&lt;/li&gt;&#xA;&lt;li&gt;Hollow Knight&lt;/li&gt;&#xA;&lt;li&gt;Silksong&lt;/li&gt;&#xA;&lt;li&gt;terminals&lt;/li&gt;&#xA;&lt;li&gt;python&lt;/li&gt;&#xA;&lt;li&gt;vim keybindings&lt;/li&gt;&#xA;&lt;li&gt;self-hosting&lt;/li&gt;&#xA;&lt;li&gt;open source&lt;/li&gt;&#xA;&lt;li&gt;running kubernetes in my basement&lt;/li&gt;&#xA;&lt;li&gt;mechanical keyboards&lt;/li&gt;&#xA;&lt;li&gt;markdown&lt;/li&gt;&#xA;&lt;li&gt;data engineering&lt;/li&gt;&#xA;&lt;li&gt;Woodworking&lt;/li&gt;&#xA;&lt;li&gt;Fingerboarding&lt;/li&gt;&#xA;&lt;li&gt;Darts&lt;/li&gt;&#xA;&lt;li&gt;Skateboarding&lt;/li&gt;&#xA;&lt;li&gt;Biking&lt;/li&gt;&#xA;&lt;li&gt;Trampoline&lt;/li&gt;&#xA;&lt;li&gt;3d printing&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>/nope</title>
    <id>https://waylonwalker.com/nope/</id>
    <updated>2026-02-11T12:00:00Z</updated>
    <published>2026-02-11T12:00:00Z</published>
    <link href="https://waylonwalker.com/nope/" rel="alternate" type="text/html"></link>
    <summary type="text">Inspired by @baty&#39;s nope slashpage, a list of ** things I don&#39;t like, don&#39;t care, avoid, overhyped, or won&#39;t do in no particular order, updated as I think...</summary>
    <content type="html">&lt;p&gt;Inspired by @baty’s &lt;a href=&#34;https://baty.net/nope/&#34;&gt;nope&lt;/a&gt;&#xA;&lt;a href=&#34;https://slashpages.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;slashpage&lt;/a&gt;, a list of &lt;strong&gt;F tier&lt;/strong&gt; things I don’t like,&#xA;don’t care, avoid, overhyped, or won’t do in no particular order, updated as I&#xA;think about it.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition seealso&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Seealso&lt;/p&gt;&#xA;&lt;div class=&#34;embed-card&#34;&gt;&#xA;&lt;/div&gt;&#xA;  &lt;a href=&#34;/yep/&#34; class=&#34;embed-card-link&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;/yep&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;Inspired by @fyrio&amp;#39;s yep slashpage, a list of ** things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I...&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Feb 11, 2026&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;nope&#34;&gt;/nope &lt;a href=&#34;#nope&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;roblox&lt;/li&gt;&#xA;&lt;li&gt;mobile games&lt;/li&gt;&#xA;&lt;li&gt;telemetry&lt;/li&gt;&#xA;&lt;li&gt;Windows&lt;/li&gt;&#xA;&lt;li&gt;VSCode&lt;/li&gt;&#xA;&lt;li&gt;allow notifications&lt;/li&gt;&#xA;&lt;li&gt;subscription hell&lt;/li&gt;&#xA;&lt;li&gt;ads&lt;/li&gt;&#xA;&lt;li&gt;social media&lt;/li&gt;&#xA;&lt;li&gt;clickbait&lt;/li&gt;&#xA;&lt;li&gt;WYSIWYG editors particularly ones that use proprietary non text formats&lt;/li&gt;&#xA;&lt;li&gt;politics&lt;/li&gt;&#xA;&lt;li&gt;short form video&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Gradient Keycap Results</title>
    <id>https://waylonwalker.com/shots/gradient-keycap-results/</id>
    <updated>2026-02-07T19:55:55Z</updated>
    <published>2026-02-07T19:55:55Z</published>
    <link href="https://waylonwalker.com/shots/gradient-keycap-results/" rel="alternate" type="text/html"></link>
    <summary type="text">The gradient keycaps turned out pretty good, but I&#39;m not sure what I did wrong with the interface between the raft and the caps, that came out ** rough, but the effect works.</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp&#34; alt=&#34;gradient keycap results&#34;/ data-glightbox=&#34;description: gradient keycap results&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The gradient keycaps turned out pretty good, but I’m not sure what I did wrong with the interface between the raft and the caps, that came out &lt;strong&gt;very&lt;/strong&gt; rough, but the effect works.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Camp Rock Sign</title>
    <id>https://waylonwalker.com/shots/camp-rock-sign/</id>
    <updated>2026-02-07T19:51:35Z</updated>
    <published>2026-02-07T19:51:35Z</published>
    <link href="https://waylonwalker.com/shots/camp-rock-sign/" rel="alternate" type="text/html"></link>
    <summary type="text">Camp Rock Sign all put together, by the fabulous Rhiannon, the letters came out great, her work on the built is amazing, cant wait to see it lit up.</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp&#34; alt=&#34;Camp Rock Sign&#34;/ data-glightbox=&#34;description: Camp Rock Sign&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Camp Rock Sign all put together, by the fabulous Rhiannon, the letters came out great, her work on the built is amazing, cant wait to see it lit up.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Trobio Full</title>
    <id>https://waylonwalker.com/shots/trobio-full/</id>
    <updated>2026-01-15T19:10:33Z</updated>
    <published>2026-01-15T19:10:33Z</published>
    <link href="https://waylonwalker.com/shots/trobio-full/" rel="alternate" type="text/html"></link>
    <summary type="text">Trobio Full</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4&#34; class=&#34;glightbox-link&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4&#34; type=&#34;video/mp4&#34;&gt;Trobio Full&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Trobio Full&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Ai</title>
    <id>https://waylonwalker.com/ai/</id>
    <updated>2026-01-11T13:48:43Z</updated>
    <published>2026-01-11T13:48:43Z</published>
    <link href="https://waylonwalker.com/ai/" rel="alternate" type="text/html"></link>
    <summary type="text">Last updated Jan 2026.</summary>
    <content type="html">&lt;p&gt;Last updated Jan 2026.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition seealso&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Seealso&lt;/p&gt;&#xA;&lt;p&gt;Looking for all posts tagged with ai see [[ tag/ai ]]&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Ai is a tool I use a lot for code generation, research, image generation, and&#xA;debugging.  The words I publish on this site are my own unless explicitly&#xA;stated from the top.  There’s only one or two posts in this category.&lt;/p&gt;&#xA;&lt;h2 id=&#34;words-are-mine&#34;&gt;Words are mine &lt;a href=&#34;#words-are-mine&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The core of what this blog is, is my thoughts ideas, sharing experiences.  The&#xA;words are the important part.  They are not perfect, I often do not spell or&#xA;grammer check, and what is here is from a flow state of writing and very often&#xA;not refactored.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;No AI unless explicitly stated&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;code-gen&#34;&gt;code gen &lt;a href=&#34;#code-gen&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Up till around 2023 all of the code to create the site was hand written by me.&#xA;I have my own site generator that I maintain [[ markata ]].&lt;/p&gt;&#xA;&lt;p&gt;From 2023 through 2025 snippets of code, sometimes entire plugins or modules&#xA;were created in chat apps like chatgpt.  There was no agentic coding, windsurf,&#xA;cursor, claude code, opencode, none of it.  It was all integrated into the site&#xA;by hand.&lt;/p&gt;&#xA;&lt;p&gt;Starting around Dec 2025 I was finding freely available agents through tools&#xA;like opencode to be more and more useful, making less mistakes, doing better at&#xA;getting context and making changes.  The flow is relying on heavy planning and&#xA;issue reporting.&lt;/p&gt;&#xA;&lt;h2 id=&#34;image-gen&#34;&gt;image gen &lt;a href=&#34;#image-gen&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I really got into stable diffusion as it came out.  I thought it was&#xA;fascinating to generate different kinds of images of things that I would&#xA;otherwise have no ability to create, for a long time I was generating images&#xA;for every post.  I’ve moved on from doing it for every post, but still do it&#xA;occasionally.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I’m not an artist, sometimes I like to include art that I would not otherwise&#xA;be able to.  Most of the art you see on a post is AI generated, and may not&#xA;be called out.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;-techbrophobic-&#34;&gt;[[ Techbrophobic ]] &lt;a href=&#34;#-techbrophobic-&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I feel this term strongly.  I find ai tooling useful, but the industry and hype bros bring a bad taste.&lt;/p&gt;&#xA;&lt;p&gt;The tools do not not do everything right, you still have to think, watch its output.  You have to put the work in to do proper software engineering.  Its not a magic pill, but it has the ability to implement ideas, plans, very quickly.&lt;/p&gt;&#xA;&lt;p&gt;Also the whole industry creeps me out.  The theft that happened to get here was wrong.  AI shovoled into everything as slop sucks.  The stock market pump is sus.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>fast changing dev server today</title>
    <id>https://waylonwalker.com/fast-changing-dev-server-today/</id>
    <updated>2025-12-10T13:45:49Z</updated>
    <published>2025-12-10T13:45:49Z</published>
    <link href="https://waylonwalker.com/fast-changing-dev-server-today/" rel="alternate" type="text/html"></link>
    <summary type="text">The dev server is cooking today, I&#39;ve dropped markata builds from 2m40s (hot cache) in prod to 15s (hot cache) in dev. Currently building 2745 posts and 274...</summary>
    <content type="html">&lt;p&gt;The dev server is cooking today, I’ve dropped markata builds from 2m40s (hot cache) in prod&#xA;to 15s (hot cache) in dev. Currently building 2745 posts and 274 feeds.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/c3e8b9de-d4be-4c7c-ab9b-a13a25c7673c.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/c3e8b9de-d4be-4c7c-ab9b-a13a25c7673c.webp&#34; alt=&#34;screenshot of the dev builds from k9s&#34;/ data-glightbox=&#34;description: screenshot of the dev builds from k9s&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>git worktrees are needed</title>
    <id>https://waylonwalker.com/git-worktrees-are-needed/</id>
    <updated>2025-12-06T09:58:06Z</updated>
    <published>2025-12-06T09:58:06Z</published>
    <link href="https://waylonwalker.com/git-worktrees-are-needed/" rel="alternate" type="text/html"></link>
    <summary type="text">git worktrees are goated, and must be leaned on moving forward.</summary>
    <content type="html">&lt;p&gt;git worktrees are goated, and must be leaned on moving forward.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>gpus are awesome</title>
    <id>https://waylonwalker.com/gpus-are-awesome/</id>
    <updated>2025-12-03T20:21:14Z</updated>
    <published>2025-12-03T20:21:14Z</published>
    <link href="https://waylonwalker.com/gpus-are-awesome/" rel="alternate" type="text/html"></link>
    <summary type="text">GPU&#39;s are awesome. I just added gpu support to my bambu-studio distrobox and its flying! On my wayland based system the native package has never worked,...</summary>
    <content type="html">&lt;p&gt;GPU’s are awesome.  I just added gpu support to my bambu-studio distrobox and&#xA;its flying!  On my wayland based system the native package has never worked,&#xA;(arch or bazzite), but running in a distrobox does. Outside of distrobox the 3d&#xA;rendering canvas is black, no output.  It used to work fine without gpu&#xA;support, was snappy enough, complex models were a bit sluggish, but fine.&#xA;Lately something happened and simple models bring it to its knees.  It got&#xA;unusable!&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/a06bbf8b-abea-472e-8d96-4255d522444d.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/a06bbf8b-abea-472e-8d96-4255d522444d.webp&#34; alt=&#34;&#34;/ data-glightbox=&#34;description: &#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The print I happen to be working on is some custom designed gumdrops for a&#xA;theater set.  The ui is working and not lagging 30s between clicks causing&#xA;clicks to happen on the wrong ui element.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>analytics</title>
    <id>https://waylonwalker.com/analytics/</id>
    <updated>2025-01-22T08:36:27Z</updated>
    <published>2025-01-22T08:36:27Z</published>
    <link href="https://waylonwalker.com/analytics/" rel="alternate" type="text/html"></link>
    <summary type="text">I&#39;ve been posting on this site since 2016, when the company I worked for went through a large round of layoffs. I was worried about being laid off, so I...</summary>
    <content type="html">&lt;p&gt;I’ve been posting on this site since 2016, when the company I worked for went&#xA;through a large round of layoffs. I was worried about being laid off, so I&#xA;started looking at what I needed to do to build my resume. A personal blog and&#xA;side projects were at the top of the list, so off I went. This site is built on&#xA;[[ markata ]]. You can read more about that in the &lt;a href=&#34;/colophon/&#34; class=&#34;wikilink&#34; data-title=&#34;/colophon&#34; data-description=&#34;Colophon a page that describes how the site &amp;gt; is made, with what tools, supporting what technologies&#34; data-date=&#34;2025-01-02&#34; data-preview=&#34;Colophon a page that describes how the site &amp;gt; is made, with what tools, supporting what technologies&#34;&gt;/colophon&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/7b6cf2c2-2299-4320-b58f-b0bebf2d0504.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/7b6cf2c2-2299-4320-b58f-b0bebf2d0504.png&#34; alt=&#34;screenshot-2025-01-31T21-23-13-643Z.png&#34;/ data-glightbox=&#34;description: screenshot-2025-01-31T21-23-13-643Z.png&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;total-posts-over-time&#34;&gt;Total Posts over time &lt;a href=&#34;#total-posts-over-time&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;/total_posts_over_time.svg&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;/total_posts_over_time.svg&#34; alt=&#34;Total Cumulative Posts Over Time&#34;/ data-glightbox=&#34;description: Total Cumulative Posts Over Time&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2025&#34;&gt;Post Contributions in 2025 &lt;a href=&#34;#post-contributions-in-2025&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-1&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2024&#34;&gt;Post Contributions in 2024 &lt;a href=&#34;#post-contributions-in-2024&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-2&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2023&#34;&gt;Post Contributions in 2023 &lt;a href=&#34;#post-contributions-in-2023&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;2023 was a very busy year, and I started slowing down. About halfway through&#xA;the year, I felt like I had a lot I wanted to get out, but not enough time to&#xA;turn every idea into a full blog post. I added [[ thoughts ]] on 7/22/2023,&#xA;starting with this &lt;a href=&#34;https://waylonwalker.com/thoughts-2/&#34;&gt;first thought&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-3&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Notice the huge uptick that starts right after I added [[ thoughts ]].&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2022&#34;&gt;Post Contributions in 2022 &lt;a href=&#34;#post-contributions-in-2022&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-4&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2021&#34;&gt;Post Contributions in 2021 &lt;a href=&#34;#post-contributions-in-2021&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;At the end of 2021, I started posting [[ til ]]s daily for a few months. This&#xA;is the point when I really started lowering the barrier to entry for publishing.&#xA;A post did not need to be a long essay. It could be the size of a tweet.&lt;/p&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-5&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2020&#34;&gt;Post Contributions in 2020 &lt;a href=&#34;#post-contributions-in-2020&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-6&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2019&#34;&gt;Post Contributions in 2019 &lt;a href=&#34;#post-contributions-in-2019&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;2019 was a huge learning year for me. I was busy leading a migration to the&#xA;cloud, working on containerized data pipeline orchestration, and setting up new&#xA;projects and templates with [[ kedro ]].&lt;/p&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-7&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2018&#34;&gt;Post Contributions in 2018 &lt;a href=&#34;#post-contributions-in-2018&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;This was the year I really started reaching for the terminal, kicking off the&#xA;year with [[vim-notes]] and rounding it out with [[bash]]. I had been watching&#xA;Luke Smith for a while, and I started managing my first Linux server at work. I&#xA;was stuck with Windows at the time, but WSL was new and let me run Linux in the&#xA;terminal.&lt;/p&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-8&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2017&#34;&gt;Post Contributions in 2017 &lt;a href=&#34;#post-contributions-in-2017&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;2017 was the year of getting started. I was coming up on five years in my&#xA;career, and layoffs were hitting hard. I remember first landing the job five&#xA;years earlier and being told that, in the company’s long history, they had&#xA;never laid off engineers. It felt like a very safe place to be. This was a wake&#xA;up call that things could turn around and I might take nothing with me.&#xA;Blogging became my way to document what I was learning. It made me better at&#xA;communicating and gave me a reason to take a deeper dive into interesting&#xA;topics.&lt;/p&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-9&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;post-contributions-in-2016&#34;&gt;Post Contributions in 2016 &lt;a href=&#34;#post-contributions-in-2016&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;2016 was the year I created my GitHub account and got serious about switching&#xA;from mechanical engineering to software engineering. All of my 2016 posts are&#xA;backdated GitHub stars.&lt;/p&gt;&#xA;&lt;div class=&#34;contribution-graph-container&#34;&gt;&#xA;  &lt;div id=&#34;contribution-graph-10&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;style&gt;&#xA;.contribution-graph-container {&#xA;  width: 100%;&#xA;  overflow-x: auto;&#xA;  margin: 1rem 0;&#xA;  display: flex;&#xA;  justify-content: center;&#xA;}&#xA;.contribution-graph-container &gt; div {&#xA;  flex-shrink: 0;&#xA;}&#xA;#ch-tooltip {&#xA;  background: var(--color-surface, #333);&#xA;  color: var(--color-text, #fff);&#xA;  padding: 0.5rem 0.75rem;&#xA;  border-radius: 4px;&#xA;  font-size: 0.875rem;&#xA;  box-shadow: 0 2px 8px rgba(0,0,0,0.2);&#xA;  z-index: 10000 !important;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;/assets/vendor/cal-heatmap/cal-heatmap.css&#34;&gt;&#xA;&lt;script src=&#34;https://d3js.org/d3.v7.min.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://unpkg.com/@popperjs/core@2&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;/assets/vendor/cal-heatmap/cal-heatmap.min.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;/assets/vendor/cal-heatmap/plugins/Tooltip.min.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script&gt;&#xA;document.addEventListener(&#39;DOMContentLoaded&#39;, function() {&#xA;  // Initialize graphs&#xA;  &#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-1&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2025-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-2&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2024-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-3&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2023-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-4&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2022-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-5&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2021-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-6&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2020-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-7&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2019-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-8&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2018-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-9&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2017-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  (function() {&#xA;    const graphId = &#39;contribution-graph-10&#39;;&#xA;    const data = null;&#xA;    const options = {date: { start: new Date(&#39;2016-01-01&#39;) }, domain: { type: &#39;year&#39; }, subDomain: { type: &#39;day&#39; }};&#xA;&#xA;    function paintGraph() {&#xA;      // Clear existing graph&#xA;      const container = document.getElementById(graphId);&#xA;      if (!container) return;&#xA;      container.innerHTML = &#39;&#39;;&#xA;&#xA;      // Calculate max value for this graph&#39;s scale&#xA;      const maxValue = Math.max(1, ...data.map(d =&gt; d.value || 0));&#xA;&#xA;      // Get theme colors from CSS variables&#xA;      const styles = getComputedStyle(document.documentElement);&#xA;      const bgColor = styles.getPropertyValue(&#39;--color-background&#39;).trim();&#xA;      const surfaceColor = styles.getPropertyValue(&#39;--color-surface&#39;).trim();&#xA;      const primaryColor = styles.getPropertyValue(&#39;--color-primary&#39;).trim();&#xA;&#xA;      // Use surface color as base, primary as accent&#xA;      const baseColor = surfaceColor || bgColor || &#39;#ebedf0&#39;;&#xA;      const accentColor = primaryColor || &#39;#216e39&#39;;&#xA;&#xA;      const cal = new CalHeatmap();&#xA;      cal.paint(&#xA;        {&#xA;          itemSelector: &#39;#&#39; + graphId,&#xA;          data: {&#xA;            source: data,&#xA;            x: &#39;date&#39;,&#xA;            y: &#39;value&#39;&#xA;          },&#xA;          date: options.date,&#xA;          domain: options.domain || { type: &#39;year&#39; },&#xA;          subDomain: options.subDomain || { type: &#39;day&#39; },&#xA;          range: options.range,&#xA;          scale: {&#xA;            color: {&#xA;              type: &#39;linear&#39;,&#xA;              range: [baseColor, accentColor],&#xA;              domain: [0, maxValue]&#xA;            }&#xA;          }&#xA;        },&#xA;        [&#xA;          [&#xA;            Tooltip,&#xA;            {&#xA;              text: function (date, value, dayjsDate) {&#xA;                return (value ? value : &#39;No&#39;) + &#39; posts on &#39; + dayjsDate.format(&#39;MMM D, YYYY&#39;);&#xA;              },&#xA;            },&#xA;          ],&#xA;        ]&#xA;      );&#xA;    }&#xA;&#xA;    // Initial paint&#xA;    paintGraph();&#xA;&#xA;    // Register for theme changes&#xA;    if (!window._contributionGraphPainters) {&#xA;      window._contributionGraphPainters = [];&#xA;    }&#xA;    window._contributionGraphPainters.push(paintGraph);&#xA;  })();&#xA;&#xA;  // Watch for theme/palette changes and re-paint graphs&#xA;  const observer = new MutationObserver(function(mutations) {&#xA;    mutations.forEach(function(mutation) {&#xA;      if (mutation.attributeName === &#39;data-palette&#39; || mutation.attributeName === &#39;class&#39;) {&#xA;        // Small delay to let CSS variables update&#xA;        setTimeout(function() {&#xA;          if (window._contributionGraphPainters) {&#xA;            window._contributionGraphPainters.forEach(function(paint) {&#xA;              paint();&#xA;            });&#xA;          }&#xA;        }, 50);&#xA;      }&#xA;    });&#xA;  });&#xA;&#xA;  observer.observe(document.documentElement, { attributes: true });&#xA;  observer.observe(document.body, { attributes: true });&#xA;});&#xA;&lt;/script&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>/now</title>
    <id>https://waylonwalker.com/now/</id>
    <updated>2025-01-12T21:07:12Z</updated>
    <published>2025-01-12T21:07:12Z</published>
    <link href="https://waylonwalker.com/now/" rel="alternate" type="text/html"></link>
    <summary type="text">This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.</summary>
    <content type="html">&lt;p&gt;This page is meant to be simple view into what is happening in my life right now. Inspired by &lt;a href=&#34;https://nownownow.com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/nownownow.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/nownownow.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;@NowNowNow&lt;/a&gt;. and Derek Sivers.&lt;/p&gt;&#xA;&lt;p&gt;Last Update 2026-04-04&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;markata-go&lt;/li&gt;&#xA;&lt;li&gt;something else&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;Last Update 2025-10-29&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Silksong has my attention, it’s great&lt;/li&gt;&#xA;&lt;li&gt;Working on new features for dropper&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Vibe coding sucks&lt;/li&gt;&#xA;&lt;li&gt;Images will soon be able to be resized and be more efficient over the network.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Trying to branch out and add more than software to the blog.  Things like design and 3d printing.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;Last Update 2025-05-22 14:27:47&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Working on [[ninesui]]&lt;/li&gt;&#xA;&lt;li&gt;Working on [[krayt]]&lt;/li&gt;&#xA;&lt;li&gt;learning observability with grafana&lt;/li&gt;&#xA;&lt;li&gt;Fairly happy with [[markata]], at the moment, less focus and some small fixes&lt;/li&gt;&#xA;&lt;li&gt;The blog is fully k8s, love the experience&lt;/li&gt;&#xA;&lt;li&gt;replacing Google apps with self hosted apps [[replacing-google-search-apps-with-self-hosted-web-apps]]&lt;/li&gt;&#xA;&lt;li&gt;Doing a second run through [[hollow-knight-home-row-layout]]&lt;/li&gt;&#xA;&lt;li&gt;Also second run of animal well&lt;/li&gt;&#xA;&lt;li&gt;put a pause on the thps gap project [[thps-gaps]]&lt;/li&gt;&#xA;&lt;li&gt;working on a split version of my keyboard&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;Last update Fri Jan 31 08:43:10 PM CST 2025&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Heavy Focus in on [[markata]], upcoming [[ markata-search ]] and [[ markata-didyoumean ]]&lt;/li&gt;&#xA;&lt;li&gt;Moving from Arch to Bazzite, I’m fully here but making everything just that&#xA;much smoother in a container based world.&lt;/li&gt;&#xA;&lt;li&gt;kubernetes - trying to get better&lt;/li&gt;&#xA;&lt;li&gt;k8s in the homelab - All of my services I run in my homelab are currently&#xA;k8s, trying to make it all smooth and consistent&lt;/li&gt;&#xA;&lt;li&gt;k8s in the blog, I’m building this static site in k8s and its never been&#xA;better.&lt;/li&gt;&#xA;&lt;li&gt;learning agentic workflows - I’m trying to build out a few side projects&#xA;minimally touching the code and only instructing windsurf&lt;/li&gt;&#xA;&lt;li&gt;mostly-one-shot-apps - I just built [[ nvim-manager ]] as a mostly&#xA;one-shot-app (i.e. the app was nearly v1 out of the first prompt)&lt;/li&gt;&#xA;&lt;li&gt;markata plugins with chatgpt project using rag - &lt;a href=&#34;/analytics/&#34; class=&#34;wikilink&#34; data-title=&#34;analytics&#34; data-description=&#34;I&amp;#39;ve been posting on this site since 2016, when the company I worked for went through a large round of layoffs. I was worried about being laid off, so I...&#34; data-date=&#34;2025-01-22&#34; data-preview=&#34;I&amp;#39;ve been posting on this site since 2016, when the company I worked for went through a large round of layoffs. I was worried about being laid off, so I...&#34;&gt;analytics&lt;/a&gt; - tag aggregator&lt;/li&gt;&#xA;&lt;li&gt;Family focus - [[ we-beat-trailmakers ]] [[ a-night-of-rounds ]]&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>/start</title>
    <id>https://waylonwalker.com/start/</id>
    <updated>2025-01-03T10:49:47Z</updated>
    <published>2025-01-03T10:49:47Z</published>
    <link href="https://waylonwalker.com/start/" rel="alternate" type="text/html"></link>
    <summary type="text">Welcome to waylonwalker.com, my small corner of the internet. I currently have posts published, here are some links to help you get started around here.</summary>
    <content type="html">&lt;p&gt;Welcome to waylonwalker.com, my small corner of the internet.  I currently have&#xA;59 posts published,&#xA;here are some links to help you get started around here.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/1896de8d-abd9-4652-95df-b41dc7eaf48b.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img src=&#34;https://dropper.waylonwalker.com/api/file/1896de8d-abd9-4652-95df-b41dc7eaf48b.webp&#34; alt=&#34;2fcdafc0-f152-4fa9-ac91-799acd9084d3-239-1.webp&#34; class=&#34;more-cinematic glightbox&#34;/ data-glightbox=&#34;description: 2fcdafc0-f152-4fa9-ac91-799acd9084d3-239-1.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;feeds&#34;&gt;Feeds &lt;a href=&#34;#feeds&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have quite a few different feeds that you can browse or subscribe to in your&#xA;rss reader, you can find them on my &lt;a href=&#34;/feeds/&#34; class=&#34;wikilink&#34; data-title=&#34;feeds&#34; data-description=&#34;I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in...&#34; data-date=&#34;2024-04-02&#34; data-preview=&#34;I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in...&#34;&gt;feeds&lt;/a&gt; page.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slash-posts&#34;&gt;Slash posts &lt;a href=&#34;#slash-posts&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;[[ slashes ]]&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://slashpages.net/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/slashpages.net.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/slashpages.net.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Slash pages&lt;/a&gt; are some evergreen pages that I will do my best to keep up to date,&#xA;they are typically not targeted to a specific moment in time, but designed to&#xA;be ever living.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/about/&#34; class=&#34;wikilink&#34; data-title=&#34;Waylon Walker&#34; data-description=&#34;👋 Hi, I am Waylon Walker. Husband, Father of two, and creator things on the web, learning, and teaching others. I play lots of Minecraft, make art, and...&#34; data-date=&#34;2021-11-20&#34; data-preview=&#34;👋 Hi, I am Waylon Walker. Husband, Father of two, and creator things on the web, learning, and teaching others. I play lots of Minecraft, make art, and...&#34;&gt;Waylon Walker&lt;/a&gt; - 👋 Hi, I am Waylon Walker. Husband, Father of two, and creator things on the web, learning, and teaching others. I play lots of Minecraft, make art, and…&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/ai/&#34; class=&#34;wikilink&#34; data-title=&#34;Ai&#34; data-description=&#34;Last updated Jan 2026.&#34; data-date=&#34;2026-01-11&#34; data-preview=&#34;Last updated Jan 2026.&#34;&gt;Ai&lt;/a&gt; - Last updated Jan 2026.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/analytics/&#34; class=&#34;wikilink&#34; data-title=&#34;analytics&#34; data-description=&#34;I&amp;#39;ve been posting on this site since 2016, when the company I worked for went through a large round of layoffs. I was worried about being laid off, so I...&#34; data-date=&#34;2025-01-22&#34; data-preview=&#34;I&amp;#39;ve been posting on this site since 2016, when the company I worked for went through a large round of layoffs. I was worried about being laid off, so I...&#34;&gt;analytics&lt;/a&gt; - I&amp;#39;ve been posting on this site since 2016, when the company I worked for went through a large round of layoffs. I was worried about being laid off, so I…&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/colophon/&#34; class=&#34;wikilink&#34; data-title=&#34;/colophon&#34; data-description=&#34;Colophon a page that describes how the site &amp;gt; is made, with what tools, supporting what technologies&#34; data-date=&#34;2025-01-02&#34; data-preview=&#34;Colophon a page that describes how the site &amp;gt; is made, with what tools, supporting what technologies&#34;&gt;/colophon&lt;/a&gt; - Colophon a page that describes how the site &amp;gt; is made, with what tools, supporting what technologies&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/feeds/&#34; class=&#34;wikilink&#34; data-title=&#34;feeds&#34; data-description=&#34;I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in...&#34; data-date=&#34;2024-04-02&#34; data-preview=&#34;I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in...&#34;&gt;feeds&lt;/a&gt; - I have several feeds that you can consume my content with. Many posts will cross between them, so if you would like to follow a certain stream of content in…&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/nope/&#34; class=&#34;wikilink&#34; data-title=&#34;/nope&#34; data-description=&#34;Inspired by @baty&amp;#39;s nope slashpage, a list of ** things I don&amp;#39;t like, don&amp;#39;t care, avoid, overhyped, or won&amp;#39;t do in no particular order, updated as I think...&#34; data-date=&#34;2026-02-11&#34; data-preview=&#34;Inspired by @baty&amp;#39;s nope slashpage, a list of ** things I don&amp;#39;t like, don&amp;#39;t care, avoid, overhyped, or won&amp;#39;t do in no particular order, updated as I think...&#34;&gt;/nope&lt;/a&gt; - Inspired by @baty&amp;#39;s nope slashpage, a list of ** things I don&amp;#39;t like, don&amp;#39;t care, avoid, overhyped, or won&amp;#39;t do in no particular order, updated as I think…&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/now/&#34; class=&#34;wikilink&#34; data-title=&#34;/now&#34; data-description=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34; data-date=&#34;2025-01-12&#34; data-preview=&#34;This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&#34;&gt;/now&lt;/a&gt; - This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/start/&#34; class=&#34;wikilink&#34; data-title=&#34;/start&#34; data-description=&#34;Welcome to waylonwalker.com, my small corner of the internet. I currently have posts published, here are some links to help you get started around here.&#34; data-date=&#34;2025-01-03&#34; data-preview=&#34;Welcome to waylonwalker.com, my small corner of the internet. I currently have posts published, here are some links to help you get started around here.&#34;&gt;/start&lt;/a&gt; - Welcome to waylonwalker.com, my small corner of the internet. I currently have posts published, here are some links to help you get started around here.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/top4/&#34; class=&#34;wikilink&#34; data-title=&#34;/top4&#34; data-description=&#34;Definitive ranked lists of my top 3 favorites plus an honorable mention.&#34; data-date=&#34;2026-02-11&#34; data-preview=&#34;Definitive ranked lists of my top 3 favorites plus an honorable mention.&#34;&gt;/top4&lt;/a&gt; - Definitive ranked lists of my top 3 favorites plus an honorable mention.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/verify/&#34; class=&#34;wikilink&#34; data-title=&#34;/verify&#34; data-description=&#34;Inspired by @mollywhite&amp;#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:&#34; data-date=&#34;2026-02-24&#34; data-preview=&#34;Inspired by @mollywhite&amp;#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:&#34;&gt;/verify&lt;/a&gt; - Inspired by @mollywhite&amp;#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/yep/&#34; class=&#34;wikilink&#34; data-title=&#34;/yep&#34; data-description=&#34;Inspired by @fyrio&amp;#39;s yep slashpage, a list of ** things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I...&#34; data-date=&#34;2026-02-11&#34; data-preview=&#34;Inspired by @fyrio&amp;#39;s yep slashpage, a list of ** things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I...&#34;&gt;/yep&lt;/a&gt; - Inspired by @fyrio&amp;#39;s yep slashpage, a list of ** things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I…&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
</feed>