{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Published",
  "home_page_url": "https://waylonwalker.com/published/",
  "feed_url": "https://waylonwalker.com/published/feed.json",
  "description": "All published posts",
  "authors": [
    {
      "name": "Waylon Walker"
    }
  ],
  "items": [
    {
      "id": "https://waylonwalker.com/shots/its-a-trap/",
      "url": "https://waylonwalker.com/shots/its-a-trap/",
      "title": "trailmakers pioneers second run - Its A Trap",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4\" type=\"video/mp4\"\u003eIts A Trap\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIts A Trap, abmush with Adiral Leadhead, During my second trailmakers pioneers run.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![Its A Trap](https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4)\n\n\u003e Its A Trap, abmush with Adiral Leadhead, During my second trailmakers pioneers run.\n",
      "summary": "Its A Trap",
      "image": "https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4",
      "date_published": "2026-03-17T20:22:07Z",
      "date_modified": "2026-03-17T20:22:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots",
        "trailmakers"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/collection-party-balloon/",
      "url": "https://waylonwalker.com/shots/collection-party-balloon/",
      "title": "trailmakers pioneers second run - Collection Party Balloon",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4\" type=\"video/mp4\"\u003eCollection Party Balloon\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eCollecting Party Balloon, During my second trailmakers pioneers run.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![Collection Party Balloon](https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4)\n\n\u003e Collecting Party Balloon, During my second trailmakers pioneers run.\n",
      "summary": "Collection Party Balloon",
      "image": "https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4",
      "date_published": "2026-03-17T20:21:30Z",
      "date_modified": "2026-03-17T20:21:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots",
        "trailmakers"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/collection-l-bracket/",
      "url": "https://waylonwalker.com/shots/collection-l-bracket/",
      "title": "trailmakers pioneers second run - Collection L Bracket",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4\" type=\"video/mp4\"\u003eCollection L Bracket\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eCollecting the L Bracket, During my second trailmakers pioneers run.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![Collection L Bracket](https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4)\n\n\u003e Collecting the L Bracket, During my second trailmakers pioneers run.\n",
      "summary": "Collection L Bracket",
      "image": "https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4",
      "date_published": "2026-03-17T20:20:14Z",
      "date_modified": "2026-03-17T20:20:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots",
        "trailmakers"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/wyatt-hits-the-gap/",
      "url": "https://waylonwalker.com/shots/wyatt-hits-the-gap/",
      "title": "trailmakers pioneers second run - Wyatt Hits The Gap",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4\" type=\"video/mp4\"\u003eWyatt Hits The Gap\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWyatt Hits The Gap, During my second trailmakers pioneers run.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![Wyatt Hits The Gap](https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4)\n\n\u003e Wyatt Hits The Gap, During my second trailmakers pioneers run.\n",
      "summary": "Wyatt Hits The Gap",
      "image": "https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4",
      "date_published": "2026-03-17T20:19:24Z",
      "date_modified": "2026-03-17T20:19:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots",
        "trailmakers"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dummy13-on-a-skateboard/",
      "url": "https://waylonwalker.com/shots/dummy13-on-a-skateboard/",
      "title": "Dummy13 On A Skateboard",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp\" alt=\"dummy13 on a skateboard\"/ data-glightbox=\"description: dummy13 on a skateboard\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTonight 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.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![dummy13 on a skateboard](https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp)\n\n\u003e 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.\n\n",
      "summary": "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.",
      "image": "https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp",
      "date_published": "2026-03-16T20:53:56Z",
      "date_modified": "2026-03-16T20:53:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/",
      "url": "https://waylonwalker.com/",
      "title": "Waylon Walker",
      "content_html": "\u003cdiv class=\"home-shots-section\"\u003e\n\u003ch2 id=\"latest-shotsshots\"\u003eLatest \u003ca href=\"/shots/\"\u003eShots\u003c/a\u003e \u003ca href=\"#latest-shotsshots\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/its-a-trap/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay=\"\" muted=\"\" loop=\"\" playsinline=\"\" poster=\"https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4?w=600\" type=\"video/mp4\"/\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eIts A Trap\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/collection-party-balloon/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay=\"\" muted=\"\" loop=\"\" playsinline=\"\" poster=\"https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4?w=600\" type=\"video/mp4\"/\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eCollection Party Balloon\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/collection-l-bracket/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay=\"\" muted=\"\" loop=\"\" playsinline=\"\" poster=\"https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4?w=600\" type=\"video/mp4\"/\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eCollection L Bracket\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/wyatt-hits-the-gap/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay=\"\" muted=\"\" loop=\"\" playsinline=\"\" poster=\"https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4?w=600\" type=\"video/mp4\"/\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eWyatt Hits The Gap\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"row-span-2 col-span-2\"\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/dummy13-on-a-skateboard/\" class=\"u-url\"\u003e\n\u003cimg src=\"https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp?w=600\" alt=\"Dummy13 On A Skateboard\" class=\"u-photo glightbox\" loading=\"lazy\"/ data-glightbox=\"description: Dummy13 On A Skateboard\"\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eTonight Wyatt gave me a dummy13 that he printed, assembled, and posed all on his own. He\u0026#39;s printed quite a few of these in the past, and none came to this level of completion. I\u0026#39;m so proud of him. This one was a near flawless build with only a few mistakes, that I\u0026#39;d argue were poor design, small vertical pins. More importantly he was able to problem solve and use resin to fix these mistakes.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/div\u003e\n\u003cdiv class=\"col-span-2\"\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/gradient-keycap-results/\" class=\"u-url\"\u003e\n\u003cimg src=\"https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp?w=600\" alt=\"Gradient Keycap Results\" class=\"u-photo glightbox\" loading=\"lazy\"/ data-glightbox=\"description: Gradient Keycap Results\"\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eThe gradient keycaps turned out pretty good, but I\u0026#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.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/div\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/camp-rock-sign/\" class=\"u-url\"\u003e\n\u003cimg src=\"https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp?w=600\" alt=\"Camp Rock Sign\" class=\"u-photo glightbox\" loading=\"lazy\"/ data-glightbox=\"description: Camp Rock Sign\"\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eCamp 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.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/trobio-full/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay=\"\" muted=\"\" loop=\"\" playsinline=\"\" poster=\"https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4?w=600\" type=\"video/mp4\"/\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eTrobio Full\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"/shots/\" class=\"home-see-more\"\u003eSee all shots →\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"home-feeds-grid\"\u003e\n\u003cdiv class=\"home-feeds-grid__col\"\u003e\n\u003ch2 id=\"latest-blog-postsblog\"\u003eLatest \u003ca href=\"/blog/\"\u003eBlog Posts\u003c/a\u003e \u003ca href=\"#latest-blog-postsblog\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\u003carticle class=\"card card-article h-entry\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 id=\"verify\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/verify/\"\u003e/verify\u003c/a\u003e \u003ca href=\"#verify\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInspired by @mollywhite’s \u003ca href=\"https://mollywhite.net/verify/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mollywhite.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mollywhite.net.png\" class=\"has-avatar  has-avatar-before\"\u003everify\u003c/a\u003e \u003ca href=\"https://slashpages.net\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eslashpage\u003c/a\u003e. This page serves as the system of record for my online identity. The best places to follow me are:\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-24T10:36:57Z\"\u003eFebruary 24, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\u003cspan class=\"webmention-counts\"\u003e\n\u003cp\u003e\u003cspan class=\"wm-count wm-likes\" title=\"1 like\"\u003e❤ 1\u003c/span\u003e\u003c/p\u003e\n\u003c/span\u003e\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-article h-entry\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 id=\"top4\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/top4/\"\u003e/top4\u003c/a\u003e \u003ca href=\"#top4\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eDefinitive ranked lists of my top 3 favorites plus an honorable mention.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://ipython.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ipython.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ipython.org.png\" class=\"has-avatar  has-avatar-before\"\u003eipython\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://typer.tiangolo.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/typer.tiangolo.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/typer.tiangolo.com.png\" class=\"has-avatar  has-avatar-before\"\u003etyper\u003c/a\u003e - fast cli apps\u003c/p\u003e\n\u003cp\u003e...\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-11T14:00:00Z\"\u003eFebruary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/favorites/\" class=\"tag p-category\"\u003efavorites\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-article h-entry\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 id=\"yep\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/yep/\"\u003e/yep\u003c/a\u003e \u003ca href=\"#yep\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInspired by @fyrio’s \u003ca href=\"https://fyr.io/yep\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/fyr.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/fyr.io.png\" class=\"has-avatar  has-avatar-before\"\u003eyep\u003c/a\u003e \u003ca href=\"https://slashpages.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eslashpage\u003c/a\u003e, a list of \u003cstrong\u003eS tier\u003c/strong\u003e things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I think about it.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-11T12:00:00Z\"\u003eFebruary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/opinions/\" class=\"tag p-category\"\u003eopinions\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-article h-entry\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 id=\"nope\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/nope/\"\u003e/nope\u003c/a\u003e \u003ca href=\"#nope\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInspired by @baty’s \u003ca href=\"https://baty.net/nope/\"\u003enope\u003c/a\u003e \u003ca href=\"https://slashpages.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eslashpage\u003c/a\u003e, a list of \u003cstrong\u003eF tier\u003c/strong\u003e things I don’t like, don’t care, avoid, overhyped, or won’t do in no particular order, updated as I think about it.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-11T12:00:00Z\"\u003eFebruary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/opinions/\" class=\"tag p-category\"\u003eopinions\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-article h-entry\"\u003e\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 id=\"ai\" class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ai/\"\u003eAi\u003c/a\u003e \u003ca href=\"#ai\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eLast updated Jan 2026.\u003c/p\u003e\n\u003cp\u003eAi 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.\u003c/p\u003e\n\u003cp\u003eThe 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.\u003c/p\u003e\n\u003cp\u003e...\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-01-11T13:48:43Z\"\u003eJanuary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e3 min read\u003c/span\u003e\n\u003cspan class=\"webmention-counts\"\u003e\n\u003c/span\u003e\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"/blog/\" class=\"home-see-more\"\u003eSee all blog posts →\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"home-feeds-grid__col\"\u003e\n\u003ch2 id=\"recent-tiltil\"\u003eRecent \u003ca href=\"/til/\"\u003eTIL\u003c/a\u003e \u003ca href=\"#recent-tiltil\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/vim-gq/\" class=\"card-title p-name u-url\"\u003eVim-gq\u003c/a\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eVim has a handy feature to format text with \u003ccode\u003egq\u003c/code\u003e. You can use it in visual mode, give it a motion, or if you give it \u003ccode\u003egqq\u003c/code\u003e it will format the current line. I use this quite often while writing in markdown, I do not use softwraps in vim, so \u003ccode\u003egqq\u003c/code\u003e 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 \u003ccode\u003egqap\u003c/code\u003e to format the whole paragraph and not just the current line.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2024-08-05T12:22:00Z\"\u003eAugust 5, 2024\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/vim/\" class=\"tag p-category\"\u003evim\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/tags/neovim/\" class=\"tag p-category\"\u003eneovim\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/am-i-vulnerable-to-the-xz-backdoor/\" class=\"card-title p-name u-url\"\u003eAm I vulnerable to the xz backdoor?\u003c/a\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eThe main system that I am concerned about is my arch BTW machine. I found a great \u003ca href=\"https://archlinux.org/news/the-xz-package-has-been-backdoored/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/archlinux.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/archlinux.org.png\" class=\"has-avatar  has-avatar-before\"\u003earticle\u003c/a\u003e from the official archlinux site covering it.\u003c/p\u003e\n\u003cp\u003eFor my machine I am concerned with this line.\u003c/p\u003e\n\u003cp\u003eThe xz packages prior to version 5.6.1-2 (specifically 5.6.0-1 and 5.6.1-1) contain this backdoor.\u003c/p\u003e\n\u003cp\u003eI checked my xz package with paru, and I am good.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2024-04-21T07:53:54Z\"\u003eApril 21, 2024\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/linux/\" class=\"tag p-category\"\u003elinux\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/get-python-package-versions/\" class=\"card-title p-name u-url\"\u003eget the version of any python package | python api\u003c/a\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eA common meta thing that I need in python is to find the version of a package. Most of the time I reach for \u003ccode\u003epackage_name.__version__\u003c/code\u003e, but that does not always work.\u003c/p\u003e\n\u003cp\u003eIn searching the internet for an answer nearly every one of them pointed me to \u003ccode\u003e__version__\u003c/code\u003e. This works for most projects, but is simply a convention, its not required. Not all projects implement a \u003ccode\u003e__version__\u003c/code\u003e, but most do. I’ve never seen it lie to me, but there is nothing stopping someone from shipping mismatched versions.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eI appreciate it\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eWhile 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 \u003ccode\u003e__version__\u003c/code\u003e variable inside your \u003ccode\u003e__init__.py\u003c/code\u003e file.\u003c/p\u003e\n\u003cp\u003e...\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003cp\u003e\u003ctime class=\"dt-published\" datetime=\"2022-07-29T15:48:36Z\"\u003eJuly 29, 2022\u003c/time\u003e\u003c/p\u003e\n\u003cdiv class=\"card-tags\"\u003e\n\u003cp\u003e\u003ca href=\"/tags/python/\" class=\"tag p-category\"\u003epython\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/article\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"/til/\" class=\"home-see-more\"\u003eSee all TIL posts →\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"home-shots-section\"\u003e\n\n## Latest [Shots](/shots/)\n\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/its-a-trap/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay muted loop playsinline poster=\"https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/144212e0-1ed6-4c1a-9630-70ad545145c9.mp4?w=600\" type=\"video/mp4\"\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eIts A Trap\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/collection-party-balloon/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay muted loop playsinline poster=\"https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/e3bc3df8-7ad5-4e29-9878-d71603f3b208.mp4?w=600\" type=\"video/mp4\"\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eCollection Party Balloon\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/collection-l-bracket/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay muted loop playsinline poster=\"https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/00069fdd-0baf-44d0-9102-cfc80f273327.mp4?w=600\" type=\"video/mp4\"\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eCollection L Bracket\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/wyatt-hits-the-gap/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay muted loop playsinline poster=\"https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/69869e1e-7aea-42c7-9d99-321aac67324a.mp4?w=600\" type=\"video/mp4\"\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eWyatt Hits The Gap\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cdiv class=\"row-span-2 col-span-2\"\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/dummy13-on-a-skateboard/\" class=\"u-url\"\u003e\n\u003cimg src=\"https://dropper.waylonwalker.com/file/beb54917-9ffa-458f-aaef-8d0a4b56566f.webp?w=600\" alt=\"Dummy13 On A Skateboard\" class=\"u-photo\" loading=\"lazy\"\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eTonight Wyatt gave me a dummy13 that he printed, assembled, and posed all on his own. He\u0026#39;s printed quite a few of these in the past, and none came to this level of completion. I\u0026#39;m so proud of him. This one was a near flawless build with only a few mistakes, that I\u0026#39;d argue were poor design, small vertical pins. More importantly he was able to problem solve and use resin to fix these mistakes.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003c/div\u003e\n\n\u003cdiv class=\"col-span-2\"\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/gradient-keycap-results/\" class=\"u-url\"\u003e\n\u003cimg src=\"https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp?w=600\" alt=\"Gradient Keycap Results\" class=\"u-photo\" loading=\"lazy\"\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eThe gradient keycaps turned out pretty good, but I\u0026#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.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003c/div\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/camp-rock-sign/\" class=\"u-url\"\u003e\n\u003cimg src=\"https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp?w=600\" alt=\"Camp Rock Sign\" class=\"u-photo\" loading=\"lazy\"\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eCamp 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.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003cfigure class=\"photo-figure h-entry\"\u003e\n\u003ca href=\"/shots/trobio-full/\" class=\"u-url\"\u003e\n\u003cvideo class=\"u-video\" autoplay muted loop playsinline poster=\"https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.webp?w=600\"\u003e\n\u003csource src=\"https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4?w=600\" type=\"video/mp4\"\u003e\n\u003c/video\u003e\n\u003c/a\u003e\n\u003cfigcaption class=\"p-summary\"\u003eTrobio Full\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n[See all shots \u0026rarr;](/shots/){.home-see-more}\n\n\u003c/div\u003e\n\n\u003cdiv class=\"home-feeds-grid\"\u003e\n\n\u003cdiv class=\"home-feeds-grid__col\"\u003e\n\n## Latest [Blog Posts](/blog/)\n\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\n\u003carticle class=\"card card-article h-entry\"\u003e\n\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/verify/\"\u003e/verify\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInspired by @mollywhite\u0026rsquo;s \u003ca href=\"https://mollywhite.net/verify/\"\u003everify\u003c/a\u003e \u003ca href=\"https://slashpages.net\"\u003eslashpage\u003c/a\u003e. This page serves as the system of record for my online identity. The best places to follow me are:\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-24T10:36:57Z\"\u003eFebruary 24, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\n\u003cspan class=\"webmention-counts\"\u003e\n\n\u003cspan class=\"wm-count wm-likes\" title=\"1 like\"\u003e\u0026#10084; 1\u003c/span\u003e\n\n\u003c/span\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-article h-entry\"\u003e\n\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/top4/\"\u003e/top4\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eDefinitive ranked lists of my top 3 favorites plus an honorable mention.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://ipython.org/\"\u003eipython\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://typer.tiangolo.com/\"\u003etyper\u003c/a\u003e - fast cli apps\u003c/p\u003e\n\u003cp\u003e...\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-11T14:00:00Z\"\u003eFebruary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/favorites/\" class=\"tag p-category\"\u003efavorites\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-article h-entry\"\u003e\n\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/yep/\"\u003e/yep\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInspired by @fyrio\u0026rsquo;s \u003ca href=\"https://fyr.io/yep\"\u003eyep\u003c/a\u003e \u003ca href=\"https://slashpages.net/\"\u003eslashpage\u003c/a\u003e, a list of \u003cstrong\u003eS tier\u003c/strong\u003e things I enjoy, use, recommend, want to know more about, or seek out in no particular order, updated as I think about it.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-11T12:00:00Z\"\u003eFebruary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/opinions/\" class=\"tag p-category\"\u003eopinions\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-article h-entry\"\u003e\n\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/nope/\"\u003e/nope\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eInspired by @baty\u0026rsquo;s \u003ca href=\"https://baty.net/nope/\"\u003enope\u003c/a\u003e \u003ca href=\"https://slashpages.net/\"\u003eslashpage\u003c/a\u003e, a list of \u003cstrong\u003eF tier\u003c/strong\u003e things I don\u0026rsquo;t like, don\u0026rsquo;t care, avoid, overhyped, or won\u0026rsquo;t do in no particular order, updated as I think about it.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-02-11T12:00:00Z\"\u003eFebruary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e1 min read\u003c/span\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/opinions/\" class=\"tag p-category\"\u003eopinions\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-article h-entry\"\u003e\n\n\u003cdiv class=\"card-content\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003ch2 class=\"card-title p-name\"\u003e\u003ca class=\"u-url\" href=\"/ai/\"\u003eAi\u003c/a\u003e\u003c/h2\u003e\n\u003c/header\u003e\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eLast updated Jan 2026.\u003c/p\u003e\n\u003cp\u003eAi 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\u0026rsquo;s only one or two posts in this category.\u003c/p\u003e\n\u003cp\u003eThe 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.\u003c/p\u003e\n\u003cp\u003e...\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cfooter class=\"card-meta\"\u003e\n\u003ctime class=\"dt-published\" datetime=\"2026-01-11T13:48:43Z\"\u003eJanuary 11, 2026\u003c/time\u003e\n\u003cspan class=\"reading-time\"\u003e3 min read\u003c/span\u003e\n\n\u003cspan class=\"webmention-counts\"\u003e\n\n\u003c/span\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\u003ca href=\"/tags/slash/\" class=\"tag p-category\"\u003eslash\u003c/a\u003e\u003ca href=\"/tags/ai/\" class=\"tag p-category\"\u003eai\u003c/a\u003e\u003ca href=\"/tags/llm/\" class=\"tag p-category\"\u003ellm\u003c/a\u003e\u003c/div\u003e\n\u003c/footer\u003e\n\u003c/div\u003e\n\u003c/article\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n[See all blog posts \u0026rarr;](/blog/){.home-see-more}\n\n\u003c/div\u003e\n\n\u003cdiv class=\"home-feeds-grid__col\"\u003e\n\n## Recent [TIL](/til/)\n\n\u003cdiv class=\"feed h-feed\"\u003e\n\u003cdiv class=\"posts posts-list\"\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/vim-gq/\" class=\"card-title p-name u-url\"\u003eVim-gq\u003c/a\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eVim has a handy feature to format text with \u003ccode\u003egq\u003c/code\u003e. You can use it in visual mode, give it a motion, or if you give it \u003ccode\u003egqq\u003c/code\u003e it will format the current line. I use this quite often while writing in markdown, I do not use softwraps in vim, so \u003ccode\u003egqq\u003c/code\u003e 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 \u003ccode\u003egqap\u003c/code\u003e to format the whole paragraph and not just the current line.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2024-08-05T12:22:00Z\"\u003eAugust 5, 2024\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/vim/\" class=\"tag p-category\"\u003evim\u003c/a\u003e\n\n\u003ca href=\"/tags/neovim/\" class=\"tag p-category\"\u003eneovim\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/am-i-vulnerable-to-the-xz-backdoor/\" class=\"card-title p-name u-url\"\u003eAm I vulnerable to the xz backdoor?\u003c/a\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eThe main system that I am concerned about is my arch BTW machine. I found a great \u003ca href=\"https://archlinux.org/news/the-xz-package-has-been-backdoored/\"\u003earticle\u003c/a\u003e from the official archlinux site covering it.\u003c/p\u003e\n\u003cp\u003eFor my machine I am concerned with this line.\u003c/p\u003e\n\u003cp\u003eThe xz packages prior to version 5.6.1-2 (specifically 5.6.0-1 and 5.6.1-1) contain this backdoor.\u003c/p\u003e\n\u003cp\u003eI checked my xz package with paru, and I am good.\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2024-04-21T07:53:54Z\"\u003eApril 21, 2024\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/linux/\" class=\"tag p-category\"\u003elinux\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003carticle class=\"card card-link h-entry\"\u003e\n\u003cheader class=\"card-header\"\u003e\n\u003cdiv class=\"card-link-wrapper\"\u003e\n\n\u003cdiv class=\"card-link-content\"\u003e\n\u003ca href=\"/get-python-package-versions/\" class=\"card-title p-name u-url\"\u003eget the version of any python package | python api\u003c/a\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/header\u003e\n\n\u003cdiv class=\"card-body\"\u003e\n\u003cdiv class=\"card-excerpt p-summary\"\u003e\u003cp\u003eA common meta thing that I need in python is to find the version of a package. Most of the time I reach for \u003ccode\u003epackage_name.__version__\u003c/code\u003e, but that does not always work.\u003c/p\u003e\n\u003cp\u003eIn searching the internet for an answer nearly every one of them pointed me to \u003ccode\u003e__version__\u003c/code\u003e. This works for most projects, but is simply a convention, its not required. Not all projects implement a \u003ccode\u003e__version__\u003c/code\u003e, but most do. I\u0026rsquo;ve never seen it lie to me, but there is nothing stopping someone from shipping mismatched versions.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eI appreciate it\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eWhile 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 \u003ccode\u003e__version__\u003c/code\u003e variable inside your \u003ccode\u003e__init__.py\u003c/code\u003e file.\u003c/p\u003e\n\u003cp\u003e...\u003c/p\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cfooter class=\"card-meta\"\u003e\n\n\u003ctime class=\"dt-published\" datetime=\"2022-07-29T15:48:36Z\"\u003eJuly 29, 2022\u003c/time\u003e\n\n\u003cdiv class=\"card-tags\"\u003e\n\n\u003ca href=\"/tags/python/\" class=\"tag p-category\"\u003epython\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003c/footer\u003e\n\u003c/article\u003e\n\n\u003c/div\u003e\n\u003c/div\u003e\n\n[See all TIL posts \u0026rarr;](/til/){.home-see-more}\n\n\u003c/div\u003e\n\n\u003c/div\u003e\n",
      "summary": "Software, automation, and building things on the web.",
      "date_published": "2026-02-28T00:00:00Z",
      "date_modified": "2026-02-28T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/verify/",
      "url": "https://waylonwalker.com/verify/",
      "title": "/verify",
      "content_html": "\u003cp\u003eInspired by @mollywhite’s\n\u003ca href=\"https://mollywhite.net/verify/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mollywhite.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mollywhite.net.png\" class=\"has-avatar  has-avatar-before\"\u003everify\u003c/a\u003e \u003ca href=\"https://slashpages.net\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eslashpage\u003c/a\u003e.\nThis page serves as the system of record for my online identity. The best\nplaces to follow me are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMy Website: \u003ca href=\"https://waylonwalker.com\"\u003ewaylonwalker.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eYouTube: \u003ca href=\"https://youtube.com/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eWaylon Walker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eYouTube Gaming: \u003ca href=\"https://www.youtube.com/channel/UCHuxc1HRsd3aRjvL6C817tQ\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eWaylon Walker Gaming\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTwitch: \u003ca href=\"https://www.twitch.tv/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.twitch.tv.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.twitch.tv.png\" class=\"has-avatar  has-avatar-before\"\u003eWaylon Walker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTwitter: \u003ca href=\"https://twitter.com/_WaylonWalker\"\u003e@_WaylonWalker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLinkedIn: \u003ca href=\"https://www.linkedin.com/in/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.linkedin.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.linkedin.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eWaylon Walker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGitHub: \u003ca href=\"https://github.com/WaylonWalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eWaylonWalker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDev.to: \u003ca href=\"https://dev.to/waylonwalker\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dev.to.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dev.to.ico\" class=\"has-avatar  has-avatar-before\"\u003eWaylon Walker\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBluesky: \u003ca href=\"https://bsky.app/profile/waylonwalker.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/bsky.app.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/bsky.app.png\" class=\"has-avatar  has-avatar-before\"\u003e@waylonwalker.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nInspired by @mollywhite's\n[verify](https://mollywhite.net/verify/) [slashpage](https://slashpages.net).\nThis page serves as the system of record for my online identity. The best\nplaces to follow me are:\n\n* My Website: [waylonwalker.com](https://waylonwalker.com)\n* YouTube: [Waylon Walker](https://youtube.com/waylonwalker)\n* YouTube Gaming: [Waylon Walker Gaming](https://www.youtube.com/channel/UCHuxc1HRsd3aRjvL6C817tQ)\n* Twitch: [Waylon Walker](https://www.twitch.tv/waylonwalker)\n* Twitter: [@_WaylonWalker](https://twitter.com/_WaylonWalker)\n* LinkedIn: [Waylon Walker](https://www.linkedin.com/in/waylonwalker)\n* GitHub: [WaylonWalker](https://github.com/WaylonWalker)\n* Dev.to: [Waylon Walker](https://dev.to/waylonwalker)\n* Bluesky: [@waylonwalker.com](https://bsky.app/profile/waylonwalker.com)\n",
      "summary": "Inspired by @mollywhite's verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:",
      "date_published": "2026-02-24T10:36:57Z",
      "date_modified": "2026-02-24T10:36:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/top4/",
      "url": "https://waylonwalker.com/top4/",
      "title": "/top4",
      "content_html": "\u003cp\u003eDefinitive ranked lists of my top 3 favorites plus an honorable mention.\u003c/p\u003e\n\u003ch2 id=\"terminal-tools\"\u003eTerminal Tools \u003ca href=\"#terminal-tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://neovim.io/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/neovim.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/neovim.io.ico\" class=\"has-avatar  has-avatar-before\"\u003eneovim\u003c/a\u003e\u003c/strong\u003e - modal editing changed how I think about text\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://tmux.github.io/\"\u003etmux\u003c/a\u003e\u003c/strong\u003e - terminal sessions that survive disconnects and allow me to hop between projects at the speed of thought.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://k9scli.io/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/k9scli.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/k9scli.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ek9s\u003c/a\u003e\u003c/strong\u003e - S tier tui interface that all tuis should strive for\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://ipython.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ipython.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ipython.org.png\" class=\"has-avatar  has-avatar-before\"\u003eipython\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"python-tools\"\u003ePython Tools \u003ca href=\"#python-tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://pandas.pydata.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pandas.pydata.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pandas.pydata.org.ico\" class=\"has-avatar  has-avatar-before\"\u003epandas\u003c/a\u003e\u003c/strong\u003e - This is what got me out of corporate spreadsheets and back into code/software.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://kedro.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kedro.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kedro.org.ico\" class=\"has-avatar  has-avatar-before\"\u003ekedro\u003c/a\u003e\u003c/strong\u003e - data pipelines with opinions I agree with\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://fastapi.tiangolo.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/fastapi.tiangolo.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/fastapi.tiangolo.com.png\" class=\"has-avatar  has-avatar-before\"\u003efastapi\u003c/a\u003e\u003c/strong\u003e - my favorite python web framework\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://typer.tiangolo.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/typer.tiangolo.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/typer.tiangolo.com.png\" class=\"has-avatar  has-avatar-before\"\u003etyper\u003c/a\u003e - fast cli apps\u003c/p\u003e\n\u003ch2 id=\"games-to-play-with-kids\"\u003eGames to Play with Kids \u003ca href=\"#games-to-play-with-kids\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003emultiplayer\u003c/em\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://minecraft.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/minecraft.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/minecraft.net.png\" class=\"has-avatar  has-avatar-before\"\u003eMinecraft\u003c/a\u003e\u003c/strong\u003e - infinite creativity, modding potential\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://store.steampowered.com/app/1211020/Wobbly_Life/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/store.steampowered.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/store.steampowered.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eWobbly Life\u003c/a\u003e\u003c/strong\u003e - Open World Co-op\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://www.stardewvalley.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.stardewvalley.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.stardewvalley.net.png\" class=\"has-avatar  has-avatar-before\"\u003eStardew Valley\u003c/a\u003e\u003c/strong\u003e - cozy, collaborative farming\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://www.terraria.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.terraria.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.terraria.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eTerraria\u003c/a\u003e - 2d world builder\u003c/p\u003e\n\u003ch2 id=\"games-to-play-alone\"\u003eGames to Play Alone \u003ca href=\"#games-to-play-alone\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003esingleplayer\u003c/em\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://www.hollowknight.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.hollowknight.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.hollowknight.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eHollow Knight\u003c/a\u003e/\u003ca href=\"https://hollowknightsilksong.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hollowknightsilksong.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hollowknightsilksong.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eHollow Knight Silksong\u003c/a\u003e\u003c/strong\u003e - S tier 2d platformer with adventure, mystery, lore, boss fights.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://store.steampowered.com/app/861650/Session_Skate_Sim/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/store.steampowered.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/store.steampowered.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eSession Skate Sim\u003c/a\u003e\u003c/strong\u003e - The best skate sim\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://www.animalwell.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.animalwell.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.animalwell.net.ico\" class=\"has-avatar  has-avatar-before\"\u003eAnimal Well\u003c/a\u003e\u003c/strong\u003e - epic 2d platformer with the most incredible graphics at 320p ever created and the deepest puzzles Ive seen\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eHonorable mention:\u003c/strong\u003e \u003ca href=\"https://store.steampowered.com/app/400/Portal/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/store.steampowered.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/store.steampowered.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ePortal\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eInspired by \u003ca href=\"https://topfour.net\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/topfour.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/topfour.net.png\" class=\"has-avatar  has-avatar-before\"\u003etopfour.net\u003c/a\u003e and \u003ca href=\"https://slashpages.net\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eslashpages.net\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n",
      "content_text": "\nDefinitive ranked lists of my top 3 favorites plus an honorable mention.\n\n## Terminal Tools\n\n1. **[neovim](https://neovim.io/)** - modal editing changed how I think about text\n1. **[tmux](https://tmux.github.io/)** - terminal sessions that survive disconnects and allow me to hop between projects at the speed of thought.\n1. **[k9s](https://k9scli.io/)** - S tier tui interface that all tuis should strive for\n\n**Honorable mention:** [ipython](https://ipython.org/)\n\n## Python Tools\n\n1. **[pandas](https://pandas.pydata.org/)** - This is what got me out of corporate spreadsheets and back into code/software.\n2. **[kedro](https://kedro.org/)** - data pipelines with opinions I agree with\n3. **[fastapi](https://fastapi.tiangolo.com/)** - my favorite python web framework\n\n**Honorable mention:** [typer](https://typer.tiangolo.com/) - fast cli apps\n\n## Games to Play with Kids\n\n_multiplayer_\n\n1. **[Minecraft](https://minecraft.net/)** - infinite creativity, modding potential\n1. **[Wobbly Life](https://store.steampowered.com/app/1211020/Wobbly_Life/)** - Open World Co-op\n1. **[Stardew Valley](https://www.stardewvalley.net/)** - cozy, collaborative farming\n\n**Honorable mention:** [Terraria](https://www.terraria.org/) - 2d world builder\n\n## Games to Play Alone\n\n_singleplayer_\n\n1. **[Hollow Knight](https://www.hollowknight.com/)/[Hollow Knight Silksong](https://hollowknightsilksong.com/)** - S tier 2d platformer with adventure, mystery, lore, boss fights.\n1. **[Session Skate Sim](https://store.steampowered.com/app/861650/Session_Skate_Sim/)** - The best skate sim\n1. **[Animal Well](https://www.animalwell.net/)** - epic 2d platformer with the most incredible graphics at 320p ever created and the deepest puzzles Ive seen\n\n**Honorable mention:** [Portal](https://store.steampowered.com/app/400/Portal/)\n\n*Inspired by [topfour.net](https://topfour.net) and [slashpages.net](https://slashpages.net)*\n",
      "summary": "Definitive ranked lists of my top 3 favorites plus an honorable mention.",
      "date_published": "2026-02-11T14:00:00Z",
      "date_modified": "2026-02-11T14:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash",
        "favorites"
      ]
    },
    {
      "id": "https://waylonwalker.com/yep/",
      "url": "https://waylonwalker.com/yep/",
      "title": "/yep",
      "content_html": "\u003cp\u003eInspired by @fyrio’s \u003ca href=\"https://fyr.io/yep\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/fyr.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/fyr.io.png\" class=\"has-avatar  has-avatar-before\"\u003eyep\u003c/a\u003e\n\u003ca href=\"https://slashpages.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eslashpage\u003c/a\u003e, a list of \u003cstrong\u003eS tier\u003c/strong\u003e things I enjoy, use,\nrecommend, want to know more about, or seek out in no particular order, updated as I think about it.\u003c/p\u003e\n\u003cdiv class=\"admonition seealso\"\u003e\n\u003cp class=\"admonition-title\"\u003eSeealso\u003c/p\u003e\n\u003cdiv class=\"embed-card\"\u003e\n\u003c/div\u003e\n  \u003ca href=\"/nope/\" class=\"embed-card-link\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e/nope\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInspired by @baty\u0026#39;s nope slashpage, a list of ** things I don\u0026#39;t like, don\u0026#39;t care, avoid, overhyped, or won\u0026#39;t do in no particular order, updated as I think...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eFeb 11, 2026\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 id=\"yep\"\u003e/yep \u003ca href=\"#yep\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecoffee\u003c/li\u003e\n\u003cli\u003esmall web 1.0\u003c/li\u003e\n\u003cli\u003eRSS\u003c/li\u003e\n\u003cli\u003eminecraft\u003c/li\u003e\n\u003cli\u003eHollow Knight\u003c/li\u003e\n\u003cli\u003eSilksong\u003c/li\u003e\n\u003cli\u003eterminals\u003c/li\u003e\n\u003cli\u003epython\u003c/li\u003e\n\u003cli\u003evim keybindings\u003c/li\u003e\n\u003cli\u003eself-hosting\u003c/li\u003e\n\u003cli\u003eopen source\u003c/li\u003e\n\u003cli\u003erunning kubernetes in my basement\u003c/li\u003e\n\u003cli\u003emechanical keyboards\u003c/li\u003e\n\u003cli\u003emarkdown\u003c/li\u003e\n\u003cli\u003edata engineering\u003c/li\u003e\n\u003cli\u003eWoodworking\u003c/li\u003e\n\u003cli\u003eFingerboarding\u003c/li\u003e\n\u003cli\u003eDarts\u003c/li\u003e\n\u003cli\u003eSkateboarding\u003c/li\u003e\n\u003cli\u003eBiking\u003c/li\u003e\n\u003cli\u003eTrampoline\u003c/li\u003e\n\u003cli\u003e3d printing\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nInspired by @fyrio's [yep](https://fyr.io/yep)\n[slashpage](https://slashpages.net/), a list of **S tier** things I enjoy, use,\nrecommend, want to know more about, or seek out in no particular order, updated as I think about it.\n\n!!! seealso\n\n    \u003cdiv class=\"embed-card\"\u003e\n  \u003ca href=\"/nope/\" class=\"embed-card-link\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e/nope\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInspired by @baty\u0026#39;s nope slashpage, a list of ** things I don\u0026#39;t like, don\u0026#39;t care, avoid, overhyped, or won\u0026#39;t do in no particular order, updated as I think...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eFeb 11, 2026\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n## /yep\n\n* coffee\n* small web 1.0\n* RSS\n* minecraft\n* Hollow Knight\n* Silksong\n* terminals\n* python\n* vim keybindings\n* self-hosting\n* open source\n* running kubernetes in my basement\n* mechanical keyboards\n* markdown\n* data engineering\n* Woodworking\n* Fingerboarding\n* Darts\n* Skateboarding\n* Biking\n* Trampoline\n* 3d printing\n\n",
      "summary": "Inspired by @fyrio'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...",
      "date_published": "2026-02-11T12:00:00Z",
      "date_modified": "2026-02-11T12:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash",
        "opinions"
      ]
    },
    {
      "id": "https://waylonwalker.com/nope/",
      "url": "https://waylonwalker.com/nope/",
      "title": "/nope",
      "content_html": "\u003cp\u003eInspired by @baty’s \u003ca href=\"https://baty.net/nope/\"\u003enope\u003c/a\u003e\n\u003ca href=\"https://slashpages.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eslashpage\u003c/a\u003e, a list of \u003cstrong\u003eF tier\u003c/strong\u003e things I don’t like,\ndon’t care, avoid, overhyped, or won’t do in no particular order, updated as I\nthink about it.\u003c/p\u003e\n\u003cdiv class=\"admonition seealso\"\u003e\n\u003cp class=\"admonition-title\"\u003eSeealso\u003c/p\u003e\n\u003cdiv class=\"embed-card\"\u003e\n\u003c/div\u003e\n  \u003ca href=\"/yep/\" class=\"embed-card-link\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e/yep\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInspired by @fyrio\u0026#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...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eFeb 11, 2026\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 id=\"nope\"\u003e/nope \u003ca href=\"#nope\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eroblox\u003c/li\u003e\n\u003cli\u003emobile games\u003c/li\u003e\n\u003cli\u003etelemetry\u003c/li\u003e\n\u003cli\u003eWindows\u003c/li\u003e\n\u003cli\u003eVSCode\u003c/li\u003e\n\u003cli\u003eallow notifications\u003c/li\u003e\n\u003cli\u003esubscription hell\u003c/li\u003e\n\u003cli\u003eads\u003c/li\u003e\n\u003cli\u003esocial media\u003c/li\u003e\n\u003cli\u003eclickbait\u003c/li\u003e\n\u003cli\u003eWYSIWYG editors particularly ones that use proprietary non text formats\u003c/li\u003e\n\u003cli\u003epolitics\u003c/li\u003e\n\u003cli\u003eshort form video\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\nInspired by @baty's [nope](https://baty.net/nope/)\n[slashpage](https://slashpages.net/), a list of **F tier** things I don't like,\ndon't care, avoid, overhyped, or won't do in no particular order, updated as I\nthink about it.\n\n\n!!! seealso\n\n    \u003cdiv class=\"embed-card\"\u003e\n  \u003ca href=\"/yep/\" class=\"embed-card-link\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e/yep\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInspired by @fyrio\u0026#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...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eFeb 11, 2026\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n## /nope\n\n* roblox\n* mobile games\n* telemetry\n* Windows\n* VSCode\n* allow notifications\n* subscription hell\n* ads\n* social media\n* clickbait\n* WYSIWYG editors particularly ones that use proprietary non text formats\n* politics\n* short form video\n\n",
      "summary": "Inspired by @baty's nope slashpage, a list of ** things I don't like, don't care, avoid, overhyped, or won't do in no particular order, updated as I think...",
      "date_published": "2026-02-11T12:00:00Z",
      "date_modified": "2026-02-11T12:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash",
        "opinions"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/gradient-keycap-results/",
      "url": "https://waylonwalker.com/shots/gradient-keycap-results/",
      "title": "Gradient Keycap Results",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp\" alt=\"gradient keycap results\"/ data-glightbox=\"description: gradient keycap results\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe 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 \u003cstrong\u003every\u003c/strong\u003e rough, but the effect works.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![gradient keycap results](https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp)\n\n\u003e 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 **very** rough, but the effect works.\n\n",
      "summary": "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 ** rough, but the effect works.",
      "image": "https://dropper.waylonwalker.com/file/42e82c07-5380-45a8-8cbd-a1b642dbfb3b.webp",
      "date_published": "2026-02-07T19:55:55Z",
      "date_modified": "2026-02-07T19:55:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/camp-rock-sign/",
      "url": "https://waylonwalker.com/shots/camp-rock-sign/",
      "title": "Camp Rock Sign",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp\" alt=\"Camp Rock Sign\"/ data-glightbox=\"description: Camp Rock Sign\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eCamp 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.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![Camp Rock Sign](https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp)\n\n\u003e 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.\n\n",
      "summary": "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.",
      "image": "https://dropper.waylonwalker.com/file/5d9ceac4-8f43-49bf-8bde-2a67dca7cc58.webp",
      "date_published": "2026-02-07T19:51:35Z",
      "date_modified": "2026-02-07T19:51:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/trobio-full/",
      "url": "https://waylonwalker.com/shots/trobio-full/",
      "title": "Trobio Full",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4\" type=\"video/mp4\"\u003eTrobio Full\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTrobio Full\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n![Trobio Full](https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4)\n\n\u003e Trobio Full\n",
      "summary": "Trobio Full",
      "image": "https://dropper.waylonwalker.com/file/7cc6a28b-d471-4a15-8e12-c9d1b8152fa1.mp4",
      "date_published": "2026-01-15T19:10:33Z",
      "date_modified": "2026-01-15T19:10:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots",
        "hollow-knight-silksong"
      ]
    },
    {
      "id": "https://waylonwalker.com/ai/",
      "url": "https://waylonwalker.com/ai/",
      "title": "Ai",
      "content_html": "\u003cp\u003eLast updated Jan 2026.\u003c/p\u003e\n\u003cdiv class=\"admonition seealso\"\u003e\n\u003cp class=\"admonition-title\"\u003eSeealso\u003c/p\u003e\n\u003cp\u003eLooking for all posts tagged with ai see [[ tag/ai ]]\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eAi is a tool I use a lot for code generation, research, image generation, and\ndebugging.  The words I publish on this site are my own unless explicitly\nstated from the top.  There’s only one or two posts in this category.\u003c/p\u003e\n\u003ch2 id=\"words-are-mine\"\u003eWords are mine \u003ca href=\"#words-are-mine\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe core of what this blog is, is my thoughts ideas, sharing experiences.  The\nwords are the important part.  They are not perfect, I often do not spell or\ngrammer check, and what is here is from a flow state of writing and very often\nnot refactored.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNo AI unless explicitly stated\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"code-gen\"\u003ecode gen \u003ca href=\"#code-gen\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eUp till around 2023 all of the code to create the site was hand written by me.\nI have my own site generator that I maintain [[ markata ]].\u003c/p\u003e\n\u003cp\u003eFrom 2023 through 2025 snippets of code, sometimes entire plugins or modules\nwere created in chat apps like chatgpt.  There was no agentic coding, windsurf,\ncursor, claude code, opencode, none of it.  It was all integrated into the site\nby hand.\u003c/p\u003e\n\u003cp\u003eStarting around Dec 2025 I was finding freely available agents through tools\nlike opencode to be more and more useful, making less mistakes, doing better at\ngetting context and making changes.  The flow is relying on heavy planning and\nissue reporting.\u003c/p\u003e\n\u003ch2 id=\"image-gen\"\u003eimage gen \u003ca href=\"#image-gen\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI really got into stable diffusion as it came out.  I thought it was\nfascinating to generate different kinds of images of things that I would\notherwise have no ability to create, for a long time I was generating images\nfor every post.  I’ve moved on from doing it for every post, but still do it\noccasionally.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI’m not an artist, sometimes I like to include art that I would not otherwise\nbe able to.  Most of the art you see on a post is AI generated, and may not\nbe called out.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"-techbrophobic-\"\u003e[[ Techbrophobic ]] \u003ca href=\"#-techbrophobic-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI feel this term strongly.  I find ai tooling useful, but the industry and hype bros bring a bad taste.\u003c/p\u003e\n\u003cp\u003eThe 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.\u003c/p\u003e\n\u003cp\u003eAlso 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.\u003c/p\u003e\n",
      "content_text": "\nLast updated Jan 2026.\n\n!!! seealso\n\n    Looking for all posts tagged with ai see [[ tag/ai ]]\n\nAi is a tool I use a lot for code generation, research, image generation, and\ndebugging.  The words I publish on this site are my own unless explicitly\nstated from the top.  There's only one or two posts in this category.\n\n## Words are mine\n\nThe core of what this blog is, is my thoughts ideas, sharing experiences.  The\nwords are the important part.  They are not perfect, I often do not spell or\ngrammer check, and what is here is from a flow state of writing and very often\nnot refactored.\n\n\u003e No AI unless explicitly stated\n\n## code gen\n\nUp till around 2023 all of the code to create the site was hand written by me.\nI have my own site generator that I maintain [[ markata ]].\n\nFrom 2023 through 2025 snippets of code, sometimes entire plugins or modules\nwere created in chat apps like chatgpt.  There was no agentic coding, windsurf,\ncursor, claude code, opencode, none of it.  It was all integrated into the site\nby hand.\n\nStarting around Dec 2025 I was finding freely available agents through tools\nlike opencode to be more and more useful, making less mistakes, doing better at\ngetting context and making changes.  The flow is relying on heavy planning and\nissue reporting.\n\n## image gen\n\nI really got into stable diffusion as it came out.  I thought it was\nfascinating to generate different kinds of images of things that I would\notherwise have no ability to create, for a long time I was generating images\nfor every post.  I've moved on from doing it for every post, but still do it\noccasionally.\n\n\u003e I'm not an artist, sometimes I like to include art that I would not otherwise\n\u003e be able to.  Most of the art you see on a post is AI generated, and may not\n\u003e be called out.\n\n## [[ Techbrophobic ]]\n\nI feel this term strongly.  I find ai tooling useful, but the industry and hype bros bring a bad taste.\n\nThe 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.\n\nAlso 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.",
      "summary": "Last updated Jan 2026.",
      "date_published": "2026-01-11T13:48:43Z",
      "date_modified": "2026-01-11T13:48:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash",
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/fast-changing-dev-server-today/",
      "url": "https://waylonwalker.com/fast-changing-dev-server-today/",
      "title": "fast changing dev server today",
      "content_html": "\u003cp\u003eThe dev server is cooking today, I’ve dropped markata builds from 2m40s (hot cache) in prod\nto 15s (hot cache) in dev. Currently building 2745 posts and 274 feeds.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/c3e8b9de-d4be-4c7c-ab9b-a13a25c7673c.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/c3e8b9de-d4be-4c7c-ab9b-a13a25c7673c.webp\" alt=\"screenshot of the dev builds from k9s\"/ data-glightbox=\"description: screenshot of the dev builds from k9s\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nThe dev server is cooking today, I've dropped markata builds from 2m40s (hot cache) in prod\nto 15s (hot cache) in dev. Currently building 2745 posts and 274 feeds.\n\n![screenshot of the dev builds from k9s](https://dropper.waylonwalker.com/file/c3e8b9de-d4be-4c7c-ab9b-a13a25c7673c.webp)\n",
      "summary": "The dev server is cooking today, I've dropped markata builds from 2m40s (hot cache) in prod to 15s (hot cache) in dev. Currently building 2745 posts and 274...",
      "date_published": "2025-12-10T13:45:49Z",
      "date_modified": "2025-12-10T13:45:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/git-worktrees-are-needed/",
      "url": "https://waylonwalker.com/git-worktrees-are-needed/",
      "title": "git worktrees are needed",
      "content_html": "\u003cp\u003egit worktrees are goated, and must be leaned on moving forward.\u003c/p\u003e\n",
      "content_text": "\ngit worktrees are goated, and must be leaned on moving forward.\n",
      "summary": "git worktrees are goated, and must be leaned on moving forward.",
      "date_published": "2025-12-06T09:58:06Z",
      "date_modified": "2025-12-06T09:58:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/gpus-are-awesome/",
      "url": "https://waylonwalker.com/gpus-are-awesome/",
      "title": "gpus are awesome",
      "content_html": "\u003cp\u003eGPU’s are awesome.  I just added gpu support to my bambu-studio distrobox and\nits flying!  On my wayland based system the native package has never worked,\n(arch or bazzite), but running in a distrobox does. Outside of distrobox the 3d\nrendering canvas is black, no output.  It used to work fine without gpu\nsupport, was snappy enough, complex models were a bit sluggish, but fine.\nLately something happened and simple models bring it to its knees.  It got\nunusable!\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/a06bbf8b-abea-472e-8d96-4255d522444d.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/a06bbf8b-abea-472e-8d96-4255d522444d.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe print I happen to be working on is some custom designed gumdrops for a\ntheater set.  The ui is working and not lagging 30s between clicks causing\nclicks to happen on the wrong ui element.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nGPU's are awesome.  I just added gpu support to my bambu-studio distrobox and\nits flying!  On my wayland based system the native package has never worked,\n(arch or bazzite), but running in a distrobox does. Outside of distrobox the 3d\nrendering canvas is black, no output.  It used to work fine without gpu\nsupport, was snappy enough, complex models were a bit sluggish, but fine.\nLately something happened and simple models bring it to its knees.  It got\nunusable!\n\n![](https://dropper.waylonwalker.com/file/a06bbf8b-abea-472e-8d96-4255d522444d.webp)\n\n\u003e The print I happen to be working on is some custom designed gumdrops for a\n\u003e theater set.  The ui is working and not lagging 30s between clicks causing\n\u003e clicks to happen on the wrong ui element.\n",
      "summary": "GPU'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,...",
      "date_published": "2025-12-03T20:21:14Z",
      "date_modified": "2025-12-03T20:21:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/analytics/",
      "url": "https://waylonwalker.com/analytics/",
      "title": "analytics",
      "content_html": "\u003cp\u003eI’ve been posting on this site since 2016, when the company I worked for went\nthrough a large round of layoffs. I was worried about being laid off, so I\nstarted looking at what I needed to do to build my resume. A personal blog and\nside projects were at the top of the list, so off I went. This site is built on\n[[ markata ]]. You can read more about that in the \u003ca href=\"/colophon/\" class=\"wikilink\" data-title=\"/colophon\" data-description=\"Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\" data-date=\"2025-01-02\" data-preview=\"Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\"\u003e/colophon\u003c/a\u003e.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7b6cf2c2-2299-4320-b58f-b0bebf2d0504.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/7b6cf2c2-2299-4320-b58f-b0bebf2d0504.png\" alt=\"screenshot-2025-01-31T21-23-13-643Z.png\"/ data-glightbox=\"description: screenshot-2025-01-31T21-23-13-643Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"total-posts-over-time\"\u003eTotal Posts over time \u003ca href=\"#total-posts-over-time\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"/total_posts_over_time.svg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"/total_posts_over_time.svg\" alt=\"Total Cumulative Posts Over Time\"/ data-glightbox=\"description: Total Cumulative Posts Over Time\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"post-contributions-in-2025\"\u003ePost Contributions in 2025 \u003ca href=\"#post-contributions-in-2025\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-1\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2024\"\u003ePost Contributions in 2024 \u003ca href=\"#post-contributions-in-2024\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-2\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2023\"\u003ePost Contributions in 2023 \u003ca href=\"#post-contributions-in-2023\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e2023 was a very busy year, and I started slowing down. About halfway through\nthe year, I felt like I had a lot I wanted to get out, but not enough time to\nturn every idea into a full blog post. I added [[ thoughts ]] on 7/22/2023,\nstarting with this \u003ca href=\"https://waylonwalker.com/thoughts-2/\"\u003efirst thought\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-3\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNotice the huge uptick that starts right after I added [[ thoughts ]].\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"post-contributions-in-2022\"\u003ePost Contributions in 2022 \u003ca href=\"#post-contributions-in-2022\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-4\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2021\"\u003ePost Contributions in 2021 \u003ca href=\"#post-contributions-in-2021\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAt the end of 2021, I started posting [[ til ]]s daily for a few months. This\nis the point when I really started lowering the barrier to entry for publishing.\nA post did not need to be a long essay. It could be the size of a tweet.\u003c/p\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-5\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2020\"\u003ePost Contributions in 2020 \u003ca href=\"#post-contributions-in-2020\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-6\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2019\"\u003ePost Contributions in 2019 \u003ca href=\"#post-contributions-in-2019\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e2019 was a huge learning year for me. I was busy leading a migration to the\ncloud, working on containerized data pipeline orchestration, and setting up new\nprojects and templates with [[ kedro ]].\u003c/p\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-7\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2018\"\u003ePost Contributions in 2018 \u003ca href=\"#post-contributions-in-2018\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis was the year I really started reaching for the terminal, kicking off the\nyear with [[vim-notes]] and rounding it out with [[bash]]. I had been watching\nLuke Smith for a while, and I started managing my first Linux server at work. I\nwas stuck with Windows at the time, but WSL was new and let me run Linux in the\nterminal.\u003c/p\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-8\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2017\"\u003ePost Contributions in 2017 \u003ca href=\"#post-contributions-in-2017\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e2017 was the year of getting started. I was coming up on five years in my\ncareer, and layoffs were hitting hard. I remember first landing the job five\nyears earlier and being told that, in the company’s long history, they had\nnever laid off engineers. It felt like a very safe place to be. This was a wake\nup call that things could turn around and I might take nothing with me.\nBlogging became my way to document what I was learning. It made me better at\ncommunicating and gave me a reason to take a deeper dive into interesting\ntopics.\u003c/p\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-9\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2016\"\u003ePost Contributions in 2016 \u003ca href=\"#post-contributions-in-2016\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e2016 was the year I created my GitHub account and got serious about switching\nfrom mechanical engineering to software engineering. All of my 2016 posts are\nbackdated GitHub stars.\u003c/p\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-10\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cstyle\u003e\n.contribution-graph-container {\n  width: 100%;\n  overflow-x: auto;\n  margin: 1rem 0;\n  display: flex;\n  justify-content: center;\n}\n.contribution-graph-container \u003e div {\n  flex-shrink: 0;\n}\n#ch-tooltip {\n  background: var(--color-surface, #333);\n  color: var(--color-text, #fff);\n  padding: 0.5rem 0.75rem;\n  border-radius: 4px;\n  font-size: 0.875rem;\n  box-shadow: 0 2px 8px rgba(0,0,0,0.2);\n  z-index: 10000 !important;\n}\n\u003c/style\u003e\n\u003clink rel=\"stylesheet\" href=\"/assets/vendor/cal-heatmap/cal-heatmap.css\"\u003e\n\u003cscript src=\"https://d3js.org/d3.v7.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://unpkg.com/@popperjs/core@2\"\u003e\u003c/script\u003e\n\u003cscript src=\"/assets/vendor/cal-heatmap/cal-heatmap.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"/assets/vendor/cal-heatmap/plugins/Tooltip.min.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function() {\n  // Initialize graphs\n  \n  (function() {\n    const graphId = 'contribution-graph-1';\n    const data = null;\n    const options = {date: { start: new Date('2025-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-2';\n    const data = null;\n    const options = {date: { start: new Date('2024-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-3';\n    const data = null;\n    const options = {date: { start: new Date('2023-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-4';\n    const data = null;\n    const options = {date: { start: new Date('2022-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-5';\n    const data = null;\n    const options = {date: { start: new Date('2021-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-6';\n    const data = null;\n    const options = {date: { start: new Date('2020-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-7';\n    const data = null;\n    const options = {date: { start: new Date('2019-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-8';\n    const data = null;\n    const options = {date: { start: new Date('2018-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-9';\n    const data = null;\n    const options = {date: { start: new Date('2017-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-10';\n    const data = null;\n    const options = {date: { start: new Date('2016-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }};\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n\n      // Calculate max value for this graph's scale\n      const maxValue = Math.max(1, ...data.map(d =\u003e d.value || 0));\n\n      // Get theme colors from CSS variables\n      const styles = getComputedStyle(document.documentElement);\n      const bgColor = styles.getPropertyValue('--color-background').trim();\n      const surfaceColor = styles.getPropertyValue('--color-surface').trim();\n      const primaryColor = styles.getPropertyValue('--color-primary').trim();\n\n      // Use surface color as base, primary as accent\n      const baseColor = surfaceColor || bgColor || '#ebedf0';\n      const accentColor = primaryColor || '#216e39';\n\n      const cal = new CalHeatmap();\n      cal.paint(\n        {\n          itemSelector: '#' + graphId,\n          data: {\n            source: data,\n            x: 'date',\n            y: 'value'\n          },\n          date: options.date,\n          domain: options.domain || { type: 'year' },\n          subDomain: options.subDomain || { type: 'day' },\n          range: options.range,\n          scale: {\n            color: {\n              type: 'linear',\n              range: [baseColor, accentColor],\n              domain: [0, maxValue]\n            }\n          }\n        },\n        [\n          [\n            Tooltip,\n            {\n              text: function (date, value, dayjsDate) {\n                return (value ? value : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n    }\n\n    // Initial paint\n    paintGraph();\n\n    // Register for theme changes\n    if (!window._contributionGraphPainters) {\n      window._contributionGraphPainters = [];\n    }\n    window._contributionGraphPainters.push(paintGraph);\n  })();\n\n  // Watch for theme/palette changes and re-paint graphs\n  const observer = new MutationObserver(function(mutations) {\n    mutations.forEach(function(mutation) {\n      if (mutation.attributeName === 'data-palette' || mutation.attributeName === 'class') {\n        // Small delay to let CSS variables update\n        setTimeout(function() {\n          if (window._contributionGraphPainters) {\n            window._contributionGraphPainters.forEach(function(paint) {\n              paint();\n            });\n          }\n        }, 50);\n      }\n    });\n  });\n\n  observer.observe(document.documentElement, { attributes: true });\n  observer.observe(document.body, { attributes: true });\n});\n\u003c/script\u003e",
      "content_text": "\nI've been posting on this site since 2016, when the company I worked for went\nthrough a large round of layoffs. I was worried about being laid off, so I\nstarted looking at what I needed to do to build my resume. A personal blog and\nside projects were at the top of the list, so off I went. This site is built on\n[[ markata ]]. You can read more about that in the \u003ca href=\"/colophon/\" class=\"wikilink\" data-title=\"/colophon\" data-description=\"Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\" data-date=\"2025-01-02\"\u003e/colophon\u003c/a\u003e.\n\n![screenshot-2025-01-31T21-23-13-643Z.png](https://dropper.waylonwalker.com/api/file/7b6cf2c2-2299-4320-b58f-b0bebf2d0504.png)\n\n## Total Posts over time\n\n![Total Cumulative Posts Over Time](/total_posts_over_time.svg)\n\n## Post Contributions in 2025\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2025,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2024\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2024,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2023\n\n2023 was a very busy year, and I started slowing down. About halfway through\nthe year, I felt like I had a lot I wanted to get out, but not enough time to\nturn every idea into a full blog post. I added [[ thoughts ]] on 7/22/2023,\nstarting with this [first thought](https://waylonwalker.com/thoughts-2/).\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2023,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n\u003e Notice the huge uptick that starts right after I added [[ thoughts ]].\n\n## Post Contributions in 2022\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2022,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2021\n\nAt the end of 2021, I started posting [[ til ]]s daily for a few months. This\nis the point when I really started lowering the barrier to entry for publishing.\nA post did not need to be a long essay. It could be the size of a tweet.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2021,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2020\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2020,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2019\n\n2019 was a huge learning year for me. I was busy leading a migration to the\ncloud, working on containerized data pipeline orchestration, and setting up new\nprojects and templates with [[ kedro ]].\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2019,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2018\n\nThis was the year I really started reaching for the terminal, kicking off the\nyear with [[vim-notes]] and rounding it out with [[bash]]. I had been watching\nLuke Smith for a while, and I started managing my first Linux server at work. I\nwas stuck with Windows at the time, but WSL was new and let me run Linux in the\nterminal.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2018,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2017\n\n2017 was the year of getting started. I was coming up on five years in my\ncareer, and layoffs were hitting hard. I remember first landing the job five\nyears earlier and being told that, in the company's long history, they had\nnever laid off engineers. It felt like a very safe place to be. This was a wake\nup call that things could turn around and I might take nothing with me.\nBlogging became my way to document what I was learning. It made me better at\ncommunicating and gave me a reason to take a deeper dive into interesting\ntopics.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2017,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2016\n\n2016 was the year I created my GitHub account and got serious about switching\nfrom mechanical engineering to software engineering. All of my 2016 posts are\nbackdated GitHub stars.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2016,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n",
      "summary": "I'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...",
      "date_published": "2025-01-22T08:36:27Z",
      "date_modified": "2025-01-22T08:36:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash",
        "meta"
      ]
    },
    {
      "id": "https://waylonwalker.com/now/",
      "url": "https://waylonwalker.com/now/",
      "title": "/now",
      "content_html": "\u003cp\u003eThis page is meant to be simple view into what is happening in my life right now. Inspired by \u003ca href=\"https://nownownow.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/nownownow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/nownownow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e@NowNowNow\u003c/a\u003e. and Derek Sivers.\u003c/p\u003e\n\u003cp\u003eLast Update 2026-04-04\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emarkata-go\u003c/li\u003e\n\u003cli\u003esomething else\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eLast Update 2025-10-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSilksong has my attention, it’s great\u003c/li\u003e\n\u003cli\u003eWorking on new features for dropper\n\u003cul\u003e\n\u003cli\u003eVibe coding sucks\u003c/li\u003e\n\u003cli\u003eImages will soon be able to be resized and be more efficient over the network.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eTrying to branch out and add more than software to the blog.  Things like design and 3d printing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eLast Update 2025-05-22 14:27:47\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWorking on [[ninesui]]\u003c/li\u003e\n\u003cli\u003eWorking on [[krayt]]\u003c/li\u003e\n\u003cli\u003elearning observability with grafana\u003c/li\u003e\n\u003cli\u003eFairly happy with [[markata]], at the moment, less focus and some small fixes\u003c/li\u003e\n\u003cli\u003eThe blog is fully k8s, love the experience\u003c/li\u003e\n\u003cli\u003ereplacing Google apps with self hosted apps [[replacing-google-search-apps-with-self-hosted-web-apps]]\u003c/li\u003e\n\u003cli\u003eDoing a second run through [[hollow-knight-home-row-layout]]\u003c/li\u003e\n\u003cli\u003eAlso second run of animal well\u003c/li\u003e\n\u003cli\u003eput a pause on the thps gap project [[thps-gaps]]\u003c/li\u003e\n\u003cli\u003eworking on a split version of my keyboard\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eLast update Fri Jan 31 08:43:10 PM CST 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHeavy Focus in on [[markata]], upcoming [[ markata-search ]] and [[ markata-didyoumean ]]\u003c/li\u003e\n\u003cli\u003eMoving from Arch to Bazzite, I’m fully here but making everything just that\nmuch smoother in a container based world.\u003c/li\u003e\n\u003cli\u003ekubernetes - trying to get better\u003c/li\u003e\n\u003cli\u003ek8s in the homelab - All of my services I run in my homelab are currently\nk8s, trying to make it all smooth and consistent\u003c/li\u003e\n\u003cli\u003ek8s in the blog, I’m building this static site in k8s and its never been\nbetter.\u003c/li\u003e\n\u003cli\u003elearning agentic workflows - I’m trying to build out a few side projects\nminimally touching the code and only instructing windsurf\u003c/li\u003e\n\u003cli\u003emostly-one-shot-apps - I just built [[ nvim-manager ]] as a mostly\none-shot-app (i.e. the app was nearly v1 out of the first prompt)\u003c/li\u003e\n\u003cli\u003emarkata plugins with chatgpt project using rag - \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#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...\" data-date=\"2025-01-22\" data-preview=\"I\u0026#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...\"\u003eanalytics\u003c/a\u003e - tag aggregator\u003c/li\u003e\n\u003cli\u003eFamily focus - [[ we-beat-trailmakers ]] [[ a-night-of-rounds ]]\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nThis page is meant to be simple view into what is happening in my life right now. Inspired by [@NowNowNow](https://nownownow.com/). and Derek Sivers.\n\nLast Update 2026-04-04\n\n- markata-go\n- something else\n\n---\n\nLast Update 2025-10-29\n\n* Silksong has my attention, it's great\n* Working on new features for dropper\n   * Vibe coding sucks\n   * Images will soon be able to be resized and be more efficient over the network.\n* Trying to branch out and add more than software to the blog.  Things like design and 3d printing.\n\n---\n\nLast Update 2025-05-22 14:27:47\n\n* Working on [[ninesui]]\n* Working on [[krayt]]\n* learning observability with grafana\n* Fairly happy with [[markata]], at the moment, less focus and some small fixes\n* The blog is fully k8s, love the experience\n* replacing Google apps with self hosted apps [[replacing-google-search-apps-with-self-hosted-web-apps]]\n* Doing a second run through [[hollow-knight-home-row-layout]]\n* Also second run of animal well\n* put a pause on the thps gap project [[thps-gaps]]\n* working on a split version of my keyboard\n\n---\n\nLast update Fri Jan 31 08:43:10 PM CST 2025\n\n* Heavy Focus in on [[markata]], upcoming [[ markata-search ]] and [[ markata-didyoumean ]]\n* Moving from Arch to Bazzite, I'm fully here but making everything just that\n  much smoother in a container based world.\n* kubernetes - trying to get better\n* k8s in the homelab - All of my services I run in my homelab are currently\n  k8s, trying to make it all smooth and consistent\n* k8s in the blog, I'm building this static site in k8s and its never been\n  better.\n* learning agentic workflows - I'm trying to build out a few side projects\n  minimally touching the code and only instructing windsurf\n* mostly-one-shot-apps - I just built [[ nvim-manager ]] as a mostly\n  one-shot-app (i.e. the app was nearly v1 out of the first prompt)\n* markata plugins with chatgpt project using rag - \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#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...\" data-date=\"2025-01-22\"\u003eanalytics\u003c/a\u003e - tag aggregator\n* Family focus - [[ we-beat-trailmakers ]] [[ a-night-of-rounds ]]\n",
      "summary": "This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.",
      "date_published": "2025-01-12T21:07:12Z",
      "date_modified": "2025-01-12T21:07:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/start/",
      "url": "https://waylonwalker.com/start/",
      "title": "/start",
      "content_html": "\u003cp\u003eWelcome to waylonwalker.com, my small corner of the internet.  I currently have\n59 posts published,\nhere are some links to help you get started around here.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/1896de8d-abd9-4652-95df-b41dc7eaf48b.webp\" class=\"glightbox-link\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/1896de8d-abd9-4652-95df-b41dc7eaf48b.webp\" alt=\"2fcdafc0-f152-4fa9-ac91-799acd9084d3-239-1.webp\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: 2fcdafc0-f152-4fa9-ac91-799acd9084d3-239-1.webp\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"feeds\"\u003eFeeds \u003ca href=\"#feeds\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have quite a few different feeds that you can browse or subscribe to in your\nrss reader, you can find them on my \u003ca href=\"/feeds/\" class=\"wikilink\" data-title=\"feeds\" data-description=\"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...\" data-date=\"2024-04-02\" data-preview=\"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...\"\u003efeeds\u003c/a\u003e page.\u003c/p\u003e\n\u003ch2 id=\"slash-posts\"\u003eSlash posts \u003ca href=\"#slash-posts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e[[ slashes ]]\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://slashpages.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/slashpages.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/slashpages.net.png\" class=\"has-avatar  has-avatar-before\"\u003eSlash pages\u003c/a\u003e are some evergreen pages that I will do my best to keep up to date,\nthey are typically not targeted to a specific moment in time, but designed to\nbe ever living.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/about/\" class=\"wikilink\" data-title=\"Waylon Walker\" data-description=\"👋 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...\" data-date=\"2021-11-20\" data-preview=\"👋 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...\"\u003eWaylon Walker\u003c/a\u003e - 👋 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…\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/ai/\" class=\"wikilink\" data-title=\"Ai\" data-description=\"Last updated Jan 2026.\" data-date=\"2026-01-11\" data-preview=\"Last updated Jan 2026.\"\u003eAi\u003c/a\u003e - Last updated Jan 2026.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#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...\" data-date=\"2025-01-22\" data-preview=\"I\u0026#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...\"\u003eanalytics\u003c/a\u003e - I\u0026#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…\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/colophon/\" class=\"wikilink\" data-title=\"/colophon\" data-description=\"Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\" data-date=\"2025-01-02\" data-preview=\"Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\"\u003e/colophon\u003c/a\u003e - Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/feeds/\" class=\"wikilink\" data-title=\"feeds\" data-description=\"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...\" data-date=\"2024-04-02\" data-preview=\"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...\"\u003efeeds\u003c/a\u003e - 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…\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/nope/\" class=\"wikilink\" data-title=\"/nope\" data-description=\"Inspired by @baty\u0026#39;s nope slashpage, a list of ** things I don\u0026#39;t like, don\u0026#39;t care, avoid, overhyped, or won\u0026#39;t do in no particular order, updated as I think...\" data-date=\"2026-02-11\" data-preview=\"Inspired by @baty\u0026#39;s nope slashpage, a list of ** things I don\u0026#39;t like, don\u0026#39;t care, avoid, overhyped, or won\u0026#39;t do in no particular order, updated as I think...\"\u003e/nope\u003c/a\u003e - Inspired by @baty\u0026#39;s nope slashpage, a list of ** things I don\u0026#39;t like, don\u0026#39;t care, avoid, overhyped, or won\u0026#39;t do in no particular order, updated as I think…\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/now/\" class=\"wikilink\" data-title=\"/now\" data-description=\"This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.\" data-date=\"2025-01-12\" data-preview=\"This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.\"\u003e/now\u003c/a\u003e - This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/start/\" class=\"wikilink\" data-title=\"/start\" data-description=\"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.\" data-date=\"2025-01-03\" data-preview=\"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.\"\u003e/start\u003c/a\u003e - 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.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/top4/\" class=\"wikilink\" data-title=\"/top4\" data-description=\"Definitive ranked lists of my top 3 favorites plus an honorable mention.\" data-date=\"2026-02-11\" data-preview=\"Definitive ranked lists of my top 3 favorites plus an honorable mention.\"\u003e/top4\u003c/a\u003e - Definitive ranked lists of my top 3 favorites plus an honorable mention.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/verify/\" class=\"wikilink\" data-title=\"/verify\" data-description=\"Inspired by @mollywhite\u0026#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:\" data-date=\"2026-02-24\" data-preview=\"Inspired by @mollywhite\u0026#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:\"\u003e/verify\u003c/a\u003e - Inspired by @mollywhite\u0026#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/yep/\" class=\"wikilink\" data-title=\"/yep\" data-description=\"Inspired by @fyrio\u0026#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...\" data-date=\"2026-02-11\" data-preview=\"Inspired by @fyrio\u0026#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...\"\u003e/yep\u003c/a\u003e - Inspired by @fyrio\u0026#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…\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nWelcome to waylonwalker.com, my small corner of the internet.  I currently have\n59 posts published,\nhere are some links to help you get started around here.\n\n![2fcdafc0-f152-4fa9-ac91-799acd9084d3-239-1.webp](https://dropper.waylonwalker.com/api/file/1896de8d-abd9-4652-95df-b41dc7eaf48b.webp){.more-cinematic}\n\n## Feeds\n\nI have quite a few different feeds that you can browse or subscribe to in your\nrss reader, you can find them on my \u003ca href=\"/feeds/\" class=\"wikilink\" data-title=\"feeds\" data-description=\"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...\" data-date=\"2024-04-02\"\u003efeeds\u003c/a\u003e page.\n\n## Slash posts\n\n[[ slashes ]]\n\n[Slash pages](https://slashpages.net/) are some evergreen pages that I will do my best to keep up to date,\nthey are typically not targeted to a specific moment in time, but designed to\nbe ever living.\n\n* \u003ca href=\"/about/\" class=\"wikilink\" data-title=\"Waylon Walker\" data-description=\"👋 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...\" data-date=\"2021-11-20\"\u003eWaylon Walker\u003c/a\u003e - 👋 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...\n* \u003ca href=\"/ai/\" class=\"wikilink\" data-title=\"Ai\" data-description=\"Last updated Jan 2026.\" data-date=\"2026-01-11\"\u003eAi\u003c/a\u003e - Last updated Jan 2026.\n* \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#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...\" data-date=\"2025-01-22\"\u003eanalytics\u003c/a\u003e - I\u0026#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...\n* \u003ca href=\"/colophon/\" class=\"wikilink\" data-title=\"/colophon\" data-description=\"Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\" data-date=\"2025-01-02\"\u003e/colophon\u003c/a\u003e - Colophon a page that describes how the site \u0026gt; is made, with what tools, supporting what technologies\n* \u003ca href=\"/feeds/\" class=\"wikilink\" data-title=\"feeds\" data-description=\"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...\" data-date=\"2024-04-02\"\u003efeeds\u003c/a\u003e - 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...\n* \u003ca href=\"/nope/\" class=\"wikilink\" data-title=\"/nope\" data-description=\"Inspired by @baty\u0026#39;s nope slashpage, a list of ** things I don\u0026#39;t like, don\u0026#39;t care, avoid, overhyped, or won\u0026#39;t do in no particular order, updated as I think...\" data-date=\"2026-02-11\"\u003e/nope\u003c/a\u003e - Inspired by @baty\u0026#39;s nope slashpage, a list of ** things I don\u0026#39;t like, don\u0026#39;t care, avoid, overhyped, or won\u0026#39;t do in no particular order, updated as I think...\n* \u003ca href=\"/now/\" class=\"wikilink\" data-title=\"/now\" data-description=\"This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.\" data-date=\"2025-01-12\"\u003e/now\u003c/a\u003e - This page is meant to be simple view into what is happening in my life right now. Inspired by @NowNowNow. and Derek Sivers.\n* \u003ca href=\"/start/\" class=\"wikilink\" data-title=\"/start\" data-description=\"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.\" data-date=\"2025-01-03\"\u003e/start\u003c/a\u003e - 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.\n* \u003ca href=\"/top4/\" class=\"wikilink\" data-title=\"/top4\" data-description=\"Definitive ranked lists of my top 3 favorites plus an honorable mention.\" data-date=\"2026-02-11\"\u003e/top4\u003c/a\u003e - Definitive ranked lists of my top 3 favorites plus an honorable mention.\n* \u003ca href=\"/verify/\" class=\"wikilink\" data-title=\"/verify\" data-description=\"Inspired by @mollywhite\u0026#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:\" data-date=\"2026-02-24\"\u003e/verify\u003c/a\u003e - Inspired by @mollywhite\u0026#39;s verify slashpage. This page serves as the system of record for my online identity. The best places to follow me are:\n* \u003ca href=\"/yep/\" class=\"wikilink\" data-title=\"/yep\" data-description=\"Inspired by @fyrio\u0026#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...\" data-date=\"2026-02-11\"\u003e/yep\u003c/a\u003e - Inspired by @fyrio\u0026#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...\n\n",
      "summary": "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.",
      "date_published": "2025-01-03T10:49:47Z",
      "date_modified": "2025-01-03T10:49:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta",
        "slash"
      ]
    }
  ]
}